On Mon, 2017-05-29 at 19:49 -0400, Rik van Riel wrote: > On Sun, 2017-05-28 at 10:00 -0700, Andy Lutomirski wrote: > > > + > > + if (mm == current->active_mm) > > + flush_tlb_func_local(&info, > > TLB_LOCAL_MM_SHOOTDOWN); > > + if (cpumask_any_but(mm_cpumask(mm), cpu) < nr_cpu_ids) > > flush_tlb_others(mm_cpumask(mm), &info); > > What excludes "cpu" from the cpumask before calling > (native_)flush_tlb_others? > > Otherwise smp_call_function_many will simply call > flush_tbl_func_remote for the local CPU as well, and > you get local CPU TLB flushing overhead twice. > > What am I missing? Never mind, I just re-read smp_call_function_many for the third time, and spotted what I missed. That function will not execute flush_tlb_func_remote on the local cpu, and I should stop looking at code for the day. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>