(Sorry about the double send) Hi Andrew, This series improves scalability of context switching between user and kernel threads on large systems with a threaded process spread across a lot of CPUs. Please consider these patches for mm. Discussion of v6 here: https://lore.kernel.org/linux-mm/20230118080011.2258375-1-npiggin@xxxxxxxxx/ No objections so far, Linus think they look okay in principle but has not reviewed in detail. With the exception of patch 1, there should be no functional change on non-powerpc archs with this series. Changes since v6: - Dropped the final patch to optimise powerpc more, as mentioned this will be taken through the powerpc tree after the base series is upstream. - Split the first patch into patch 1 and 2 in this series so the functional change is isolated to minimal patch. - Removed ifdefs and churn from sched/core.c that were not required because ifdefs in .h refcount functions do the same job. - Split DEBUG_VM option out to its own sub-option because it IPIs all CPUs on on every process exit which is pretty heavy. - Changed comment style as noted by Nadav. - Added description about how to test it, requested by Linus. - Added link and credit to Rik's earlier work in the same vein. - Did a pass over comments and changelogs to improve readability. Nicholas Piggin (5): kthread: simplify kthread_use_mm refcounting lazy tlb: introduce lazy tlb mm refcount helper functions lazy tlb: allow lazy tlb mm refcounting to be configurable lazy tlb: shoot lazies, non-refcounting lazy tlb mm reference handling scheme powerpc/64s: enable MMU_LAZY_TLB_SHOOTDOWN Documentation/mm/active_mm.rst | 6 +++ arch/Kconfig | 32 ++++++++++++++ arch/arm/mach-rpc/ecard.c | 2 +- arch/powerpc/Kconfig | 1 + arch/powerpc/kernel/smp.c | 2 +- arch/powerpc/mm/book3s64/radix_tlb.c | 4 +- fs/exec.c | 2 +- include/linux/sched/mm.h | 28 ++++++++++++ kernel/cpu.c | 2 +- kernel/exit.c | 2 +- kernel/fork.c | 65 ++++++++++++++++++++++++++++ kernel/kthread.c | 22 ++++++---- kernel/sched/core.c | 15 ++++--- lib/Kconfig.debug | 10 +++++ 14 files changed, 170 insertions(+), 23 deletions(-) -- 2.37.2