On Thu, 22 Feb 2018 23:35:45 +1100 Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote: > From: Nicholas Piggin <npiggin@xxxxxxxxx> > > 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@xxxxxxxxx> > [mpe: Backport to 4.9] > Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Thanks for doing these. They all look okay to me. Thanks, Nick