[PATCH v4.4 backport 3/3] powerpc/64s: Improve RFI L1-D cache flush fallback

Nicholas Piggin npiggin at gmail.com
Fri Feb 23 01:26:58 AEDT 2018


On Thu, 22 Feb 2018 23:35:45 +1100
Michael Ellerman <mpe at ellerman.id.au> wrote:

> From: Nicholas Piggin <npiggin at gmail.com>
> 
> commit bdcb1aefc5b3f7d0f1dc8b02673602bca2ff7a4b upstream.
> 
> The fallback RFI flush is used when firmware does not provide a way
> to flush the cache. It's a "displacement flush" that evicts useful
> data by displacing it with an uninteresting buffer.
> 
> The flush has to take care to work with implementation specific cache
> replacment policies, so the recipe has been in flux. The initial
> slow but conservative approach is to touch all lines of a congruence
> class, with dependencies between each load. It has since been
> determined that a linear pattern of loads without dependencies is
> sufficient, and is significantly faster.
> 
> Measuring the speed of a null syscall with RFI fallback flush enabled
> gives the relative improvement:
> 
> P8 - 1.83x
> P9 - 1.75x
> 
> The flush also becomes simpler and more adaptable to different cache
> geometries.
> 
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> [mpe: Backport to 4.9]
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>

Thanks for doing these. They all look okay to me.

Thanks,
Nick



More information about the Linuxppc-dev mailing list