On Tue, 2018-07-31 at 07:29 -0700, Andy Lutomirski wrote: > > On Jul 31, 2018, at 2:12 AM, Peter Zijlstra <[email protected]> > > wrote: > > > > > On Mon, Jul 30, 2018 at 09:05:55PM -0400, Rik van Riel wrote: > > > > On Mon, 2018-07-30 at 18:26 +0200, Peter Zijlstra wrote: > > > > > > > > So for ARCH_NO_ACTIVE_MM we never touch ->active_mm and > > > > therefore > > > > ->active_mm == ->mm. > > > > > > Close, but not true for kernel threads, which have a > > > NULL ->mm, but a non-null ->active_mm that gets passed > > > to enter_lazy_tlb(). > > > > I'm confused on the need for this. We mark the CPU lazy, why do we > > still > > care about this? > > I have considered renaming enter_lazy_tlb() to something like > lazy_switch_to_kernel_mm() (or an irqs_off variant) and making it > take no parameters or maybe just task pointer parameters.
Of all the architectures, only Alpha uses the "mm" parameter to enter_lazy_tlb. It uses it to store the pgd address of the current active_mm context into the thread info of the next task. If it can get that from a per CPU variable, we can get rid of the mm parameter to enter_lazy_tlb. -- All Rights Reversed.
signature.asc
Description: This is a digitally signed message part

