lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMj1kXGPjFAY0y-SPZv64CRhpo9s1+__z4bya86aMcTs9=f8pw@mail.gmail.com>
Date:   Mon, 25 Jul 2022 14:41:42 +0200
From:   Ard Biesheuvel <ardb@...nel.org>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     "Jason A. Donenfeld" <Jason@...c4.com>,
        kernel test robot <lkp@...el.com>,
        "Justin M. Forbes" <jforbes@...oraproject.org>,
        llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        "Jason A. Donenfeld" <zx2c4@...nel.org>
Subject: Re: [linux-stable-rc:linux-5.15.y 6874/8723] arch/arm/lib/xor-neon.c:30:2:
 warning: This code requires at least version 4.6 of GCC

On Mon, 25 Jul 2022 at 10:49, Greg Kroah-Hartman
<gregkh@...uxfoundation.org> wrote:
>
> On Mon, Jul 25, 2022 at 07:42:07AM +0200, Ard Biesheuvel wrote:
> > On Mon, 25 Jul 2022 at 00:40, Jason A. Donenfeld <Jason@...c4.com> wrote:
> > >
> > > Hi Ard,
> > >
> > > On Mon, Jul 25, 2022 at 04:14:48AM +0800, kernel test robot wrote:
> > > > All warnings (new ones prefixed by >>):
> > > >
> > > > >> arch/arm/lib/xor-neon.c:30:2: warning: This code requires at least version 4.6 of GCC [-W#warnings]
> > > >    #warning This code requires at least version 4.6 of GCC
> > > >     ^
> > > >    1 warning generated.
> > > >
> > > >
> > > > vim +30 arch/arm/lib/xor-neon.c
> > > >
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  16
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  17  /*
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  18   * Pull in the reference implementations while instructing GCC (through
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  19   * -ftree-vectorize) to attempt to exploit implicit parallelism and emit
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  20   * NEON instructions.
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  21   */
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  22  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  23  #pragma GCC optimize "tree-vectorize"
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  24  #else
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  25  /*
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  26   * While older versions of GCC do not generate incorrect code, they fail to
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  27   * recognize the parallel nature of these functions, and emit plain ARM code,
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  28   * which is known to be slower than the optimized ARM code in asm-arm/xor.h.
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  29   */
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17 @30  #warning This code requires at least version 4.6 of GCC
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  31  #endif
> > > > 01956597cbc46d Ard Biesheuvel 2013-05-17  32
> > >
> > > Does this file need a depends on ≥4.6 thing in Kconfig? Or is something
> > > else happening here since 4.6 isn't even supported by the kernel these
> > > days?
> > >
> >
> > Hi Jason,
> >
> > This is explained/fixed in
> >
> > commit a69cb445f7d129abf7c50d48c8a8eca7c8d5df15
> > Author: Ard Biesheuvel <ardb@...nel.org>
> > Date:   Sat Feb 5 16:23:46 2022 +0100
> >
> >     crypto: arm/xor - make vectorized C code Clang-friendly
> >
> >     The ARM version of the accelerated XOR routines are simply the 8-way C
> >     routines passed through the auto-vectorizer with SIMD codegen enabled.
> >     This used to require GCC version 4.6 at least, but given that 5.1 is now
> >     the baseline, this check is no longer necessary, and actually
> >     misidentifies Clang as GCC < 4.6 as Clang defines the GCC major/minor as
> >     well, but makes no attempt at doing this in a way that conveys feature
> >     parity with a certain version of GCC (which would not be a great idea in
> >     the first place).
> >
> > which landed in v5.18. Note that the patch depends on its parent,
> > which touches many different architectures, so it may not be
> > backportable cleanly.
>
> I would love to backport this as it bugs me to no end on some various
> gerrit systems all the time.  I'll look into it later this week unless
> someone beats me to it :)
>

If backporting is an issue, we could just drop this warning - GCC
before 4.6 hasn't been supported for a while anyway, and Clang never
had the SIMD accelerated XOR to begin with (it needs the __restrict
annotations that the parent patch introduces)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ