Re: [PATCH] mm/mmu_gather: send tlb_remove_table_smp_sync IPI only to MM CPUs

From: Will Deacon
Date: Fri Mar 24 2023 - 11:26:08 EST


On Wed, Mar 22, 2023 at 04:11:44PM +0200, ypodemsk@xxxxxxxxxx wrote:
> On Mon, 2023-03-20 at 09:49 +0100, Peter Zijlstra wrote:
> > On Sun, Mar 12, 2023 at 10:09:45AM +0200, Yair Podemsky wrote:
> > > Currently the tlb_remove_table_smp_sync IPI is sent to all CPUs
> > > indiscriminately, this causes unnecessary work and delays notable
> > > in
> > > real-time use-cases and isolated cpus, this patch will limit this
> > > IPI to
> > > only be sent to cpus referencing the effected mm and are currently
> > > in
> > > kernel space.
> >
> > Did you validate that all architectures for which this is relevant
> > actually set bits in mm_cpumask() ?
> >
> Hi Peter,
> Thank you for bringing this to my attention.
> I reviewed the architectures using the MMU_GATHER_RCU_TABLE_FREE:
> arm, powerpc, s390, sparc and x86 set the bit when switching process
> in.
> for arm64 removed set/clear bit in 38d96287504a ("arm64: mm: kill
> mm_cpumask usage")
> The reason given was that mm_cpumask was not used.
> Given that we now have a use for it, I will add a patch to revert.

Maintaining the mask is also not free, so I'm not keen on adding it back
unless there's a net win.

Will