powerpc/64s/radix: combine final TLB flush and lazy tlb mm shootdown IPIs
authorNicholas Piggin <npiggin@gmail.com>
Wed, 24 May 2023 06:08:21 +0000 (16:08 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 2 Aug 2023 12:22:19 +0000 (22:22 +1000)
commite43c0a0c3c2870e1ee29519dc249471adf19ab5f
tree3e21a8f011129677e957b0f83a93b4e40e1cd738
parent177255afb40548fdf504384b361d18d6cbe35d1e
powerpc/64s/radix: combine final TLB flush and lazy tlb mm shootdown IPIs

This performs lazy tlb mm shootdown when doing the exit TLB flush when
all mm users go away and user mappings are removed, which avoids having
to do the lazy tlb mm shootdown IPIs on the final mmput when all kernel
references disappear.

powerpc/64s uses a broadcast TLBIE for the exit TLB flush if remote CPUs
need to be invalidated (unless TLBIE is disabled), so this doesn't
necessarily save IPIs but it does avoid a broadcast TLBIE which is quite
expensive.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Squash in preempt_disable/enable() fix from Nick]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230524060821.148015-5-npiggin@gmail.com
arch/powerpc/mm/book3s64/radix_tlb.c