Re: [PATCH 5/9] x86/mm/tlb: Optimize local TLB flushes

From: Dave Hansen
Date: Tue Jun 25 2019 - 17:36:47 EST


On 6/12/19 11:48 PM, Nadav Amit wrote:
> While the updated smp infrastructure is capable of running a function on
> a single local core, it is not optimized for this case.

OK, so flush_tlb_multi() is optimized for flushing local+remote at the
same time and is also (near?) the most optimal way to flush remote-only.
But, it's not as optimized at doing local-only flushes. But,
flush_tlb_on_cpus() *is* optimized for local-only flushes.

Right?

Can we distill that down to any particular advise that we can comment
these suckers with? For instance, flush_tlb_multi() is apparently not
safe to call ever by itself without a 'flush_tlb_multi_enabled' check
first. It's also, suboptimal for local flushes apparently.