[PATCH v2 0/2] send tlb_remove_table_smp_sync IPI only to necessary CPUs

From: Yair Podemsky
Date: Tue Jun 20 2023 - 10:53:25 EST


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.
By limiting the IPI to only be sent to cpus referencing the effected
mm.
a config to differentiate architectures that support mm_cpumask from
those that don't will allow safe usage of this feature.

changes from -v1:
- Previous version included a patch to only send the IPI to CPU's with
context_tracking in the kernel space, this was removed due to race
condition concerns.
- for archs that do not maintain mm_cpumask the mask used should be
cpu_online_mask (Peter Zijlstra).

v1: https://lore.kernel.org/all/20230404134224.137038-1-ypodemsk@xxxxxxxxxx/

Yair Podemsky (2):
arch: Introduce ARCH_HAS_CPUMASK_BITS
mm/mmu_gather: send tlb_remove_table_smp_sync IPI only to MM CPUs

arch/Kconfig | 8 ++++++++
arch/arm/Kconfig | 1 +
arch/powerpc/Kconfig | 1 +
arch/s390/Kconfig | 1 +
arch/sparc/Kconfig | 1 +
arch/x86/Kconfig | 1 +
include/asm-generic/tlb.h | 4 ++--
mm/khugepaged.c | 4 ++--
mm/mmu_gather.c | 17 ++++++++++++-----
9 files changed, 29 insertions(+), 9 deletions(-)

--
2.39.3