[Bug 1982583] Re: Fix for zlib CRC32 optimization for s390x

Steve Langasek 1982583 at bugs.launchpad.net
Fri Nov 18 20:11:18 UTC 2022


> The fixes are each limited to one line, hence there are not many
issues to expect

Except that one of these one-line changes is stated to enable a new
optimization path in the shared library which was accidentally not
enabled before.  Since almost everything in Ubuntu uses the shared
library and not the static library, this code is basically untested in
Ubuntu up until now, and this is a core library with many reverse-
dependencies!

The code was originally introduced in impish, and the related bug LP:
#1932010 doesn't show anything in the way of a test plan.

I am holding this SRU until the change a) has landed in the devel
series, b) there is a more comprehensive test plan to check for
regressions (including on non-z15 hardware) than a small test program.

** Changed in: zlib (Ubuntu Kinetic)
       Status: New => Incomplete

** Changed in: zlib (Ubuntu Jammy)
       Status: New => Incomplete

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

Title:
  Fix for zlib CRC32 optimization for s390x

Status in Ubuntu on IBM z Systems:
  In Progress
Status in zlib package in Ubuntu:
  In Progress
Status in zlib source package in Jammy:
  Incomplete
Status in zlib source package in Kinetic:
  Incomplete

Bug description:
  SRU Justification:
  ------------------

  [ Impact ]

   * There were two issues identified in the current
     zlib CRC32 optimization for s390x implementation:

   * 1) s390_crc32_vx() signature mismatch
        which causes a warning

   * 2) '-DS390_CRC32_VX' was not added to SFLAGS
        which results in vectorization being enabled only in the static library.

   * The fixes are quite small and affect each only one line:

   * 1) by using unsigned longs instead of uint32_t in s390_crc32_vx
  declaration

   * 2) by add line 'SFLAGS="$SFLAGS -DS390_CRC32_VX"'

  [ Test Plan ]

   * An affected Ubuntu release ([20.04], 22.04 and 22.10) installed
     on a z15/LinuxONE III or newer system is needed.

   * Then it's possible to test the updated package with the help
     of a small test program (in C) that checks for
     s390_crc32_vx() signature mismatches.

   * The bug reporter has a set of s390x-specific tests that will be
  executed.

   * Test will be done by IBM.

  [ Where problems could occur ]

   * The fixes are each limited to one line, hence there are
     not many issues to expect, other than:

   * Typos (e.g. in the flags), mixing of CFLAGS and SFLAGS,

   * in case the changed data type in s390_crc32_vx is causing issues
     inside of s390_crc32_vx or in other parts of the code.

   * Structural and syntactical issues can be identified with a test build
     that was done for all affected Ubuntu releases and for all major archs:
     https://launchpad.net/~fheimes/+archive/ubuntu/lp1990379+lp1982583

  [ Other Info ]

   * This bug (LP#1982583) is solved in combination with LP#1990379,
     so that only one package update is needed.
     However, LP#1990379 also affects Focal, but this bug only Jammy and Kinetic.

   * To fix LP#1990379 also for focal the debdiff mentioned there is needed, too.
  __________

  'zlib CRC32 optimization for s390x works only in a static library'

  I've discovered two issues in lp1932010-ibm-z-add-vectorized-
  crc32-implementation.patch:

  1) s390_crc32_vx() signature mismatch, resulting in a warning.
  2) -DS390_CRC32_VX is not added to SFLAGS, resulting in vectorization being enabled only in the static library.

  I've attached the updated patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1982583/+subscriptions




More information about the foundations-bugs mailing list