On Thu, Jan 25, 2018 at 05:21:30AM -0800, Arjan van de Ven wrote: > > > > This means that 'A -> idle -> A' should never pass through switch_mm to > > begin with. > > > > Please clarify how you think it does. > > > > the idle code does leave_mm() to avoid having to IPI CPUs in deep sleep states > for a tlb flush.
The intel_idle code does, not the idle code. This is squirreled away in some driver :/ > (trust me, that you really want, sequentially IPI's a pile of cores in a deep > sleep > state to just flush a tlb that's empty, the performance of that is horrific) Hurmph. I'd rather fix that some other way than leave_mm(), this is piling special on special.