powerpc/64s/hash: Use POWER9 SLBIA IH=3 variant in switch_slb
authorNicholas Piggin <npiggin@gmail.com>
Fri, 14 Sep 2018 15:30:50 +0000 (01:30 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 19 Sep 2018 11:59:44 +0000 (21:59 +1000)
commit82d8f4c22f3514eface7e082750bc917193d91f9
treefb4623b052c28a5caf07bd2ff128d7931fe3ce30
parent5141c182d75b4004c41ac2dc5af081b457b3e8cb
powerpc/64s/hash: Use POWER9 SLBIA IH=3 variant in switch_slb

POWER9 introduces SLBIA IH=3, which invalidates all SLB entries and
associated lookaside information that have a class value of 1, which
Linux assigns to user addresses. This matches what switch_slb wants,
and allows a simple fast implementation that avoids the slb_cache
complexity.

As a side-effect, the POWER5 < DD2.1 SLB invalidation workaround is
also avoided on POWER9.

Process context switching rate is improved about 2.2% for a small
process that hits the slb cache which is the best case for the current
code.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/slb.c
arch/powerpc/xmon/xmon.c