On Tue, Jul 31, 2018 at 11:03:03AM -0400, Rik van Riel wrote: > On Tue, 2018-07-31 at 07:29 -0700, Andy Lutomirski wrote: > > > On Jul 31, 2018, at 2:12 AM, Peter Zijlstra <pet...@infradead.org> > > > 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.
We only really care for arches that select this new ARCH_NO_ACTIVE_MM thingy. And x86 (the only one so far) really doesn't give a crap about the argument. We should just list/document that being one of the requirements for selecting that symbol. All this will need semi decent documentation anyway, otherwise the poor sod trying to understand this all in about 6 months time will go crazy :-)
signature.asc
Description: PGP signature