powerpc/mm/radix: Optimise Page Walk Cache flush
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Wed, 26 Apr 2017 11:38:30 +0000 (21:38 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 27 Apr 2017 12:20:05 +0000 (22:20 +1000)
commitcf4f08bed876fbc50e64da92d2e1cfdf7653ddb2
tree40135afefaf8b0d3378f16296c89c4661d8ebfe7
parent45b21cfeb22087795f0b49397fbe529efeb99baf
powerpc/mm/radix: Optimise Page Walk Cache flush

Currently we implement flushing of the page walk cache (PWC) by calling
_tlbiel_pid() with a RIC (Radix Invalidation Control) value of 1 which says to
only flush the PWC.

But _tlbiel_pid() loops over each set (congruence class) of the TLB, which is
not necessary when we're just flushing the PWC.

In fact the set argument is ignored for a PWC flush, so essentially we're just
flushing the PWC 127 extra times for no benefit.

Fix it by adding tlbiel_pwc() which just does a single flush of the PWC.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
[mpe: Split out of combined patch, drop _ in name, rewrite change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/tlb-radix.c