Activity log for bug #1885012

Date Who What changed Old value New value Message
2020-06-24 19:19:13 Balint Reczey bug added bug
2020-06-24 19:20:07 Balint Reczey glibc (Ubuntu): status New Fix Released
2020-06-25 12:55:13 Francis Ginther tags id-5ed6b0877aa3de39fa0b89e6
2020-09-03 16:40:18 Balint Reczey nominated for series Ubuntu Bionic
2020-09-03 16:40:18 Balint Reczey bug task added glibc (Ubuntu Bionic)
2020-09-04 18:01:38 Balint Reczey description . [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use [Regression Potential] TODO [Other Info]
2020-09-09 21:41:43 Balint Reczey description [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use [Regression Potential] TODO [Other Info] [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info]
2020-09-09 21:42:03 Balint Reczey description [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info] [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info]
2020-09-09 21:46:08 Balint Reczey attachment added pthread test program https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1885012/+attachment/5409192/+files/a.c
2020-09-09 21:47:33 Balint Reczey description [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info] [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 * Compile and run the attached a.c test program and observe it running much faster on high (>= 8) core count capable HW than with the standard libc6 package. [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info]
2020-09-10 23:05:16 Steve Langasek glibc (Ubuntu Bionic): status New Fix Committed
2020-09-10 23:05:17 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2020-09-10 23:05:20 Steve Langasek bug added subscriber SRU Verification
2020-09-10 23:05:25 Steve Langasek tags id-5ed6b0877aa3de39fa0b89e6 id-5ed6b0877aa3de39fa0b89e6 verification-needed verification-needed-bionic
2020-10-09 16:04:29 Balint Reczey tags id-5ed6b0877aa3de39fa0b89e6 verification-needed verification-needed-bionic id-5ed6b0877aa3de39fa0b89e6 verification-done verification-done-bionic
2020-11-02 18:30:56 Ɓukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team
2020-11-02 18:40:35 Launchpad Janitor glibc (Ubuntu Bionic): status Fix Committed Fix Released
2020-11-02 18:40:35 Launchpad Janitor cve linked 2017-18269
2021-03-24 16:59:15 Balint Reczey description [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 * Compile and run the attached a.c test program and observe it running much faster on high (>= 8) core count capable HW than with the standard libc6 package. [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. [Other Info] [Impact] * libc6 is not using LSE atomics even on capable HW causing poor performance in heavily threaded application [Test Case] * install libc6-lse on capable arm64 * verify that the library is in use: $ strace -eopenat ls openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/atomics/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 * Compile and run the attached a.c test program and observe it running much faster on high (>= 8) core count capable HW than with the standard libc6 package. [Regression Potential] * The libraries in libc6-lse can't be run on not LSE capable HW and trying to use them results in crashes due to the illegal instructions. The fix includes proper checking for HW capabilities and selecting the libraries in /lib/aarch64-linux-gnu/atomics/ only when LSE instructions are supported. * The package build can also fail when trying to run tests of libc6-lse on not LSE capable HW but this is avoided by detecting LSE instructions and running the tests only if the HW supports them. * Initramfs-tools could break when generating intramfs when the new libc6-lse package is installed (LP: #1880853), but this regression is fixed in initramfs-tools and Breaks: is added against affected initramfs-tools versions. * Upgrading libc6-lse packge to a newer version breaks on systems with LSE support (LP: #1912652). [Other Info]