On Mon, Jul 29, 2019 at 12:10:12PM -0400, Rik van Riel wrote: > On Mon, 2019-07-29 at 17:44 +0200, Peter Zijlstra wrote: > > On Mon, Jul 29, 2019 at 11:28:04AM -0400, Rik van Riel wrote: > > > On Mon, 2019-07-29 at 17:03 +0200, Peter Zijlstra wrote: > > > > > > > The 'sad' part is that x86 already switches to init_mm on idle > > > > and we > > > > only keep the active_mm around for 'stupid'. > > > > > > Wait, where do we do that? > > > > drivers/idle/intel_idle.c: leave_mm(cpu); > > drivers/acpi/processor_idle.c: acpi_unlazy_tlb(smp_processor_id()); > > This is only done for deeper c-states, isn't it? Not C1 but I forever forget where it starts doing that. IIRC it isn't too hard to hit it often, and I'm fairly sure we always do it when we hit NOHZ. > > > > Rik and Andy were working on getting that 'fixed' a while ago, > > > > not > > > > sure > > > > where that went. > > > > > > My lazy TLB stuff got merged last year. > > > > Yes, but we never got around to getting rid of active_mm for x86, > > right? > > True, we still use active_mm. Getting rid of the > active_mm refcounting alltogether did not look > entirely worthwhile the hassle. OK, clearly I forgot some of the details ;-)