[23.04] re-add s390x vectorized crc32 support to zlib in lunar

Bug #1998470 reported by Frank Heimes
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Fix Released
Medium
Skipper Bug Screeners
zlib (Ubuntu)
Fix Released
Medium
Frank Heimes

Bug Description

At the beginning of Nov a new zlib version (1:1.2.13.dfsg) got merged from Debian sid to Ubuntu lunar.
At this time it was already clear that this new version is no longer compatible with patch d/p/lp1932010-ibm-z-add-vectorized-crc32-implementation.patch
since this depends on zlib upstream PR 335 which has been superseded by upstream PR 478 with significant refactoring.
Hence this patch was dropped and it was decided to backport (or better 'forward port'?) this vectorized crc32 implementation for s390x.
https://launchpad.net/ubuntu/+source/zlib/+changelog

The new patch is now available as
crc32vx-v4: "s390x: vectorize crc32"
https://github.com/iii-i/zlib/commit/05710d5fb8eb1447289ebf11109e149ece95d839

This LP bug is now to track the re-integration of the vectorized crc32 implementation for s390x.

So a few things needed to happen (from the changelog):
  * Re-add vectorized crc32 support for s390x by adding
    d/p/s390x-vectorize-crc32.patch
    (crc32vx-v4: s390x: vectorize crc32).
    This replaces the previously dropped patch:
    lp1932010-ibm-z-add-vectorized-crc32-implementation.patch
  * Remove option '--crc32-vx' for s390x in d/rules, that was previously just
    commented out, since it's no longer needed with the new s390x crc32 code.

And since I bumped into a little build issue, I've also needed to:
  * Update d/p/410.patch to version 26f2c0a4e17e5558d779797d713aa37ebaeef390
    due to unused "const char *endptr;".

Tags: s390x
Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
importance: Undecided → Medium
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
Revision history for this message
Frank Heimes (fheimes) wrote :

Test builds of the updated package are currently running in this PPA:
https://launchpad.net/~fheimes/+archive/ubuntu/lp1998470

description: updated
Frank Heimes (fheimes)
Changed in zlib (Ubuntu):
status: New → Triaged
Changed in ubuntu-z-systems:
status: New → Triaged
status: Triaged → In Progress
Revision history for this message
Frank Heimes (fheimes) wrote :

Cross-referencing Ilya's comment about testing from here:
https://bugs.launchpad.net/ubuntu/+source/zlib/+bug/1982583/comments/7
"
I ran tests 1-3 with Frank's 1:1.2.13.dfsg-1ubuntu3. They all pass; the performance improvement is also measurable.

Test 4 turned out to be meaningless: Ubuntu requires at least z13.
"

Just notice that we have z13 as minimal required Z architecture starting with Ubuntu 20.04/focal anyway.

Revision history for this message
Frank Heimes (fheimes) wrote :

After getting the successful test results, I'm attaching the debdiff ...

Revision history for this message
Steve Langasek (vorlon) wrote :

Uploaded. One fix, you commented in debian/changelog about removing --crc32-vx from debian/rules, but didn't actually do so. So I made that change before uploading. Thanks!

Revision history for this message
Frank Heimes (fheimes) wrote :

Thx for reviewing, uploading and the fix!

Steve Langasek (vorlon)
Changed in zlib (Ubuntu):
status: Triaged → Fix Committed
Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package zlib - 1:1.2.13.dfsg-1ubuntu4

---------------
zlib (1:1.2.13.dfsg-1ubuntu4) lunar; urgency=medium

  * Add d/p/1390.patch to not update strm.adler for raw streams on s390x
    (DFLTCC), otherwise libxml2 gets broken on s390x. LP: #2002511

 -- Frank Heimes <email address hidden> Wed, 11 Jan 2023 18:02:34 +0100

Changed in zlib (Ubuntu):
status: Fix Committed → Fix Released
Frank Heimes (fheimes)
summary: - re-add s390x vectorized crc32 support to zlib in lunar
+ [23.04] re-add s390x vectorized crc32 support to zlib in lunar
Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.