On Mon, 2019-08-19 at 08:10 -0700, h...@infradead.org wrote: > On Mon, Aug 19, 2019 at 08:39:02PM +0530, Anup Patel wrote: > > If we were using ASID then yes we don't need to flush anything > > but currently we don't use ASID due to lack of HW support and > > HW can certainly do speculatively page table walks so flushing > > local TLB when MM mask is empty might help. > > > > This just my theory and we need to stress test more. > > Well, when we context switch away from a mm we always flush the > local tlb. So either the mm_struct has never been scheduled in,
Looking at the stack dump, it looks like this is the case. cpumask is empty possibly after a fork/exec situation where forked child is being replaced with actual program that is about to run. I also looked at x86 & powerpc implementation which doesn't seem to do anything special if cpumask is empty. I will send a v2 with no tlb flushing if cpumask is empty. > or we alrady did a local_tlb_flush and we context switched it up. Regards, Atish