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