-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
The Problem
the zlib accelerators for the IBM S390X (and IBM POWER) platform is in an unclean state. For the sake of easier patch generation for Linux distributions and potential merge into mainline zlib this should be cleaned up.
Analysis
the current open PR #410 is based on the work of the IBM POWER optimization #750. The Power work itself fragmented in the last years into 6 different PRs ( #857 #750 #478 #459 #458 #457 tracked in #847).
The S390X PR has multiple problems:
- it needs rebaseing on the newest development branch.
- it uses ifunc that causes problems with memory sanitizers and musl(critical for alpine linux).
- the CI only runs for configure
- the cmake build does not include the S390X accelerators
- the CI only runs with QEMU. QEMU has actually no support for the instructions used in the optimization and zlib will fall back on testing the software implementation.
- no dedicated crc32 test cases
Tracking
To get the S390X code in the clean state this are the issues and milestones that need to be solved.
- de-mangle the POWER and S390X optimization
- split the PR into chewable chunks
- Added CI worker for native S390X #1052 1
- add S390X cmake target
- remove the use of ifunc for the function mocking
- s390x: vectorize crc32 #1057
- s390x: Add accelerated inflate&deflate #1060
- add crc32 testcases
- create a merged POWER and S390X patch-set for distributions to pickup
- get the different chunks merged 2
I started working on this issues in my fork and will create PR(s) when i think they are ready. I work closely with @iii-i to cleanup and refine the code. Also I talked with a POWER dev and they state their interest in cleaning up their part.
Footnotes
-
There are free native IBM S390X workers for open source projects from Marist University ↩
-
I need input if and under what circumstances the code could be merged. ↩