• future of the libc6.1-alphaev67 package

    From Aurelien Jarno@21:1/5 to All on Tue Aug 24 23:20:02 2021
    Dear alpha porters,

    With the removal of the libc6-xen package in glibc 2.32, the only
    package still using the hwcap infrastructure is libc6.1-alphaev67. The
    hwcap infrastructure consists in upstream support for looking for
    libraries in the hwcap directories, plus Debian specific patches to
    support disabling hwcap with the /etc/ld.so.nohwcap, plus some mechanism
    in the maintainer scripts to disable hwcap support until all libc6
    packages are configured.

    The various optimized packages have been replaced with time by other
    mechanisms such as indirect function support (IFUNC), or runtime atomic selection in GCC (-moutline-atomics).

    I would therefore like to discuss the future of the libc6.1-alphaev67
    package on alpha. According to popcon, to take with a grain of salt
    given the low number of submissions, this package is installed on 20% of
    the installations. I wonder if this package is really useful in terms of performance, or if the architecture baseline can be raised to ev67, or
    to a ev6 as a compromise. The goal is to stop building this package.

    Regards,
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net

    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEEUryGlb40+QrX1Ay4E4jA+JnoM2sFAmElXbIACgkQE4jA+Jno M2viGw/+MMl5UZG5XGZukqYzEj7u/RN2cZdyfnEK79irEmhHlRoZ5pLOz9UJZZK2 k9CLZcLh5QjktGL+y0RJV6YhoPBZIByCC1cSJcjdy9Hravo3mzbfbbk0hwRL945U 1xwxhXAYZLNm1CNHggLnckaLHDswLnD/MATHpSm40Mo45l61WtCf7GpT29gy93dq ac8rKiYhaTopAxgEVZlYObor0gOO7ZHSi//xnnR5wkhZ+Ivai4/A7nQUsVJ9H7T0 Xs4L5R3nPC5my4NUdGom6DnG1FAxpLdKb7o7GgGEw1ycGuW7JiDK349iS/VQ8Wy6 HZSQqNd4fzD0w2yzYeKG46j33POX6+SgVx3Wgbp8etVHAiFvs+t/40/2ROzbqL7v D9ftqQaSeWhYZ0e4+FjWEVchuDHaddlXeFEpd6aKDvw4M1mAguZZgj8CAwmqVQSr 0S9dW8XrL0fMUOJbDnhciUOadb064U+DGbdOd4f7sBtZLgnhSEvCVdNlujzYbMNy RMSKm+7yX42m43q78PYcllO4iHx2mfFxaMrOcbi12qayN1wLPg/bt5yrDDci+Sty 8Dn5yb42xymDR1PwaacPo11jQ12GhyXHGRn2e/AREE9sVr4b6UEaqEKX+uMTz757 nXIhfyLj0+ZAoo3JJXmkrTHlHWqQzDQvvLyPpous68XtSKW9TkI=
    =pH67
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet
  • From Michael Cree@21:1/5 to Aurelien Jarno on Wed Aug 25 04:10:02 2021
    On Tue, Aug 24, 2021 at 10:59:32PM +0200, Aurelien Jarno wrote:
    I would therefore like to discuss the future of the libc6.1-alphaev67
    package on alpha. According to popcon, to take with a grain of salt
    given the low number of submissions, this package is installed on 20% of
    the installations. I wonder if this package is really useful in terms of performance, or if the architecture baseline can be raised to ev67, or
    to a ev6 as a compromise. The goal is to stop building this package.

    I think we should raise the baseline to include the byte-word
    extension (BWX) which I think would be EV56. In addition to
    giving some optimisations generally to libc it would eliminate
    a class of unaligned access bugs across the archive where gcc
    performs an optimisation based on a flawed determination that
    certain alignment exists in the memory access of a byte or
    16-bit word.

    Cheers,
    Michael.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Paul Adrian Glaubitz@21:1/5 to Aurelien Jarno on Wed Aug 25 07:50:01 2021
    Hello!

    On 8/24/21 10:59 PM, Aurelien Jarno wrote:
    With the removal of the libc6-xen package in glibc 2.32, the only
    package still using the hwcap infrastructure is libc6.1-alphaev67. The
    hwcap infrastructure consists in upstream support for looking for
    libraries in the hwcap directories, plus Debian specific patches to
    support disabling hwcap with the /etc/ld.so.nohwcap, plus some mechanism
    in the maintainer scripts to disable hwcap support until all libc6
    packages are configured.

    The various optimized packages have been replaced with time by other mechanisms such as indirect function support (IFUNC), or runtime atomic selection in GCC (-moutline-atomics).

    Isn't this type of architecture optimization support currently seeing a
    revival due to many distributions looking into providing optimized x86_64 variants? [1]

    Adrian

    [1] https://www.phoronix.com/scan.php?page=news_item&px=Fedora-2021-x86_64-Level

    --
    .''`. John Paul Adrian Glaubitz
    : :' : Debian Developer - glaubitz@debian.org
    `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
    `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to Michael Cree on Thu Sep 2 23:40:01 2021
    Hi,

    On 2021-08-25 13:47, Michael Cree wrote:
    On Tue, Aug 24, 2021 at 10:59:32PM +0200, Aurelien Jarno wrote:
    I would therefore like to discuss the future of the libc6.1-alphaev67 package on alpha. According to popcon, to take with a grain of salt
    given the low number of submissions, this package is installed on 20% of the installations. I wonder if this package is really useful in terms of performance, or if the architecture baseline can be raised to ev67, or
    to a ev6 as a compromise. The goal is to stop building this package.

    I think we should raise the baseline to include the byte-word
    extension (BWX) which I think would be EV56. In addition to
    giving some optimisations generally to libc it would eliminate
    a class of unaligned access bugs across the archive where gcc
    performs an optimisation based on a flawed determination that
    certain alignment exists in the memory access of a byte or
    16-bit word.

    That's really interesting. If raising the baseline to EV56 also helps to eliminate other bugs, it's something worth considering. Do you know if
    there is a lot of hardware not compatible with this baseline? Also do
    you have an idea if there is a big difference between EV56 and EV67
    optimized code?

    Regards,
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to John Paul Adrian Glaubitz on Thu Sep 2 23:30:03 2021
    On 2021-08-25 07:46, John Paul Adrian Glaubitz wrote:
    Hello!

    On 8/24/21 10:59 PM, Aurelien Jarno wrote:
    With the removal of the libc6-xen package in glibc 2.32, the only
    package still using the hwcap infrastructure is libc6.1-alphaev67. The hwcap infrastructure consists in upstream support for looking for
    libraries in the hwcap directories, plus Debian specific patches to
    support disabling hwcap with the /etc/ld.so.nohwcap, plus some mechanism
    in the maintainer scripts to disable hwcap support until all libc6
    packages are configured.

    The various optimized packages have been replaced with time by other mechanisms such as indirect function support (IFUNC), or runtime atomic selection in GCC (-moutline-atomics).

    Isn't this type of architecture optimization support currently seeing a revival due to many distributions looking into providing optimized x86_64 variants? [1]

    Yes, but that's unrelated. The plan is not to drop the hwcap mechanism
    from upstream code (which btw got extended in glibc 2.33). That will
    still be supported for instance for scientific libraries like in the
    link you provided. The goal is to stop providing optimized glibc through
    the hwcap mechanism (as the optimization is done using GCC or GNU IFUNC
    for many architectures), so that we can get rid of all the code enabling
    safe upgrade of the libc6 package. This part is Debian specific because
    we need to support online upgrades, so version version mismatch between
    base and hwcap libraries must not happen.

    If optimizations for the ev67 CPU is essential, an alternative is to
    ship both the base and hwcap versions in the same libc6.1 package. This
    causes an additional 4 MiB of possibly useless files to be installed on
    a system, something that has been considered too big for other
    architectures. Before going that way, we should check if the resulting optimization is worth the hassle, especially that we have to disable bit rotting assembly code from upstream (both baseline and alphaev67
    optimized) to get the testsuite passing.

    Regards,
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to Aurelien Jarno on Sun May 14 22:00:01 2023
    Hi,

    On 2021-09-02 23:29, Aurelien Jarno wrote:
    Hi,

    On 2021-08-25 13:47, Michael Cree wrote:
    On Tue, Aug 24, 2021 at 10:59:32PM +0200, Aurelien Jarno wrote:
    I would therefore like to discuss the future of the libc6.1-alphaev67 package on alpha. According to popcon, to take with a grain of salt
    given the low number of submissions, this package is installed on 20% of the installations. I wonder if this package is really useful in terms of performance, or if the architecture baseline can be raised to ev67, or
    to a ev6 as a compromise. The goal is to stop building this package.

    I think we should raise the baseline to include the byte-word
    extension (BWX) which I think would be EV56. In addition to
    giving some optimisations generally to libc it would eliminate
    a class of unaligned access bugs across the archive where gcc
    performs an optimisation based on a flawed determination that
    certain alignment exists in the memory access of a byte or
    16-bit word.

    That's really interesting. If raising the baseline to EV56 also helps to eliminate other bugs, it's something worth considering. Do you know if
    there is a lot of hardware not compatible with this baseline? Also do
    you have an idea if there is a big difference between EV56 and EV67
    optimized code?

    The legacy hwcap code, that was deprecated since glibc 2.33 has been
    removed from glibc 2.37, and there is no support for the new mechanism
    for the alpha architecture.

    Therefore the libc6.1-alphaev67 package will be removed from the debian
    package with glibc 2.37. We can take the opportunity to raise the
    baseline if needed.

    Regards
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://aurel32.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Paul Adrian Glaubitz@21:1/5 to Aurelien Jarno on Sun May 14 22:10:01 2023
    Hello!

    On Sun, 2023-05-14 at 21:53 +0200, Aurelien Jarno wrote:
    Therefore the libc6.1-alphaev67 package will be removed from the debian package with glibc 2.37. We can take the opportunity to raise the
    baseline if needed.

    I think we agreed on raising it to EV56, didn't we?

    Adrian

    --
    .''`. John Paul Adrian Glaubitz
    : :' : Debian Developer
    `. `' Physicist
    `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to John Paul Adrian Glaubitz on Sun May 14 22:50:02 2023
    On 2023-05-14 22:06, John Paul Adrian Glaubitz wrote:
    Hello!

    On Sun, 2023-05-14 at 21:53 +0200, Aurelien Jarno wrote:
    Therefore the libc6.1-alphaev67 package will be removed from the debian package with glibc 2.37. We can take the opportunity to raise the
    baseline if needed.

    I think we agreed on raising it to EV56, didn't we?

    It was not clear to me from the current thread, but I guess the
    discussion have been continued somewhere else.

    Could you please take care of raising the baseline at the GCC level? In
    the meantime, I'll force -mcpu=ev56 at the glibc level.

    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://aurel32.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Paul Adrian Glaubitz@21:1/5 to Aurelien Jarno on Mon May 15 12:20:01 2023
    Hi Aurelien!

    On Sun, 2023-05-14 at 22:47 +0200, Aurelien Jarno wrote:
    On 2023-05-14 22:06, John Paul Adrian Glaubitz wrote:
    Hello!

    On Sun, 2023-05-14 at 21:53 +0200, Aurelien Jarno wrote:
    Therefore the libc6.1-alphaev67 package will be removed from the debian package with glibc 2.37. We can take the opportunity to raise the baseline if needed.

    I think we agreed on raising it to EV56, didn't we?

    It was not clear to me from the current thread, but I guess the
    discussion have been continued somewhere else.

    Could you please take care of raising the baseline at the GCC level? In
    the meantime, I'll force -mcpu=ev56 at the glibc level.

    Yes, absolutely. I will file a bug report against GCC asking for the baseline raise.

    Adrian

    --
    .''`. John Paul Adrian Glaubitz
    : :' : Debian Developer
    `. `' Physicist
    `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Cree@21:1/5 to John Paul Adrian Glaubitz on Fri May 19 23:30:01 2023
    On Mon, May 15, 2023 at 12:13:04PM +0200, John Paul Adrian Glaubitz wrote:
    Hi Aurelien!

    On Sun, 2023-05-14 at 22:47 +0200, Aurelien Jarno wrote:
    On 2023-05-14 22:06, John Paul Adrian Glaubitz wrote:
    Hello!

    On Sun, 2023-05-14 at 21:53 +0200, Aurelien Jarno wrote:
    Therefore the libc6.1-alphaev67 package will be removed from the debian package with glibc 2.37. We can take the opportunity to raise the baseline if needed.

    I think we agreed on raising it to EV56, didn't we?

    It was not clear to me from the current thread, but I guess the
    discussion have been continued somewhere else.

    Could you please take care of raising the baseline at the GCC level? In
    the meantime, I'll force -mcpu=ev56 at the glibc level.

    Yes, absolutely. I will file a bug report against GCC asking for the baseline raise.

    Thanks for doing this!

    Cheers,
    Michael.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)