Re: [PATCH v3 00/12] Rework READ_ONCE() to improve codegen

From: Will Deacon
Date: Thu Apr 16 2020 - 08:49:39 EST


On Thu, Apr 16, 2020 at 02:30:36PM +0200, Christian Borntraeger wrote:
>
> On 15.04.20 18:52, Will Deacon wrote:
> > Hi everyone,
> >
> > This is version three of the patches I previously posted for improving
> > the code generation of READ_ONCE() and moving the minimum GCC version
> > to 4.8:
> >
> > RFC: https://lore.kernel.org/lkml/20200110165636.28035-1-will@xxxxxxxxxx
> > v2: https://lore.kernel.org/lkml/20200123153341.19947-1-will@xxxxxxxxxx
> >
> > Although v2 was queued up by Peter in -tip, it was found to break the
> > build for m68k and sparc32. We fixed m68k during the merge window and
> > I've since posted patches to fix sparc32 here:
> >
> > https://lore.kernel.org/lkml/20200414214011.2699-1-will@xxxxxxxxxx
> >
> > This series is a refresh on top of 5.7-rc1, the main changes being:
> >
> > * Fix another issue where 'const' is assigned to non-const via
> > WRITE_ONCE(), this time in the tls code
> >
> > * Fix READ_ONCE_NOCHECK() abuse in arm64 checksum code
> >
> > * Added Reviewed-bys and Acks from v2
> >
> > Hopefully this can be considered for 5.8, along with the sparc32 changes.
> >
> > Cheers,
> >
> > Will
> >
> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx>
> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> > Cc: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx>
> > Cc: Arnd Bergmann <arnd@xxxxxxxx>
> > Cc: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx>
> > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> >
>
> I gave this series a try and s390 seems to compile fine and it also seems to
> properly compile the the ipte_unlock_siif function in arch/s390/kvm/gaccess.c
> This function was miscompiled with gcc4.6 and the trigger for replacing
> ACCESS_ONCE with READ_ONCE

That's good to hear, thanks Christian!

Will