[Bug 1885012] Re: Provide libc6-lse binary package optimized for Large System Extensions (LSE)

Launchpad Bug Tracker 1885012 at bugs.launchpad.net
Mon Nov 2 18:40:35 UTC 2020


This bug was fixed in the package glibc - 2.27-3ubuntu1.3

---------------
glibc (2.27-3ubuntu1.3) bionic; urgency=medium

  [ Balint Reczey ]
  * debian/gbp.conf: Add initial configuration
  * debian/control.in/main: Add Vcs-* pointing to Ubuntu packaging repository
  * arm64: Enable searching shared libraries in atomics/ on LSE HW
  * Ship arm64 variant with LSE support in libc6-lse (LP: #1885012)
  * Run tests of libc6-lse on HW supporting LSE
  * debian/patches/git-updates.diff: update from upstream stable branch
    - pthread_cond_broadcast: Fix waiters-after-spinning case
    - Fix SSe2-based memmove corrupting memory (CVE-2017-18269)
    - Fix strstr() performance regression on Haswell processors
    - Support Japanese new era "令和 (Reiwa)"
    - io: Remove copy_file_range emulation
    (LP: #1851263, #1858203, #1838327, #1797335, #1756209, #1853193)
  * XFAIL stdlib/tst-getrandom (LP: #1891403)
  * debian/testsuite-xfail-debian.mk: XFAIL new tst-support_descriptors

  [ Thadeu Lima de Souza Cascardo ]
  * tests: Make preadwritev2 invalid flags tests unsupported (LP: #1770480)

  [ Andreas Hasenack ]
  * branch-pthread_rwlock_trywrlock-hang-23844.patch:
    nptl: Fix pthread_rwlock_try*lock stalls (Bug 23844) (LP: #1864864)

 -- Balint Reczey <rbalint at ubuntu.com>  Wed, 02 Sep 2020 11:18:37 +0200

** Changed in: glibc (Ubuntu Bionic)
       Status: Fix Committed => Fix Released

** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-18269

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1885012

Title:
  Provide libc6-lse binary package optimized for Large System Extensions
  (LSE)

Status in glibc package in Ubuntu:
  Fix Released
Status in glibc source package in Bionic:
  Fix Released

Bug 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]

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1885012/+subscriptions



More information about the foundations-bugs mailing list