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? > - preempt_enable(); > + put_cpu(); > } > > -- 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>