zlib: improve crc32 performance on P8
Bug #1742941 reported by
bugproxy
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
Low
|
Ubuntu on IBM Power Systems Bug Triage | ||
zlib (Ubuntu) |
Fix Released
|
Low
|
Canonical Foundations Team |
Bug Description
Calculate the checksum of data that is 16 byte aligned and a multiple of 16 bytes.
The first step is to reduce it to 1024 bits. We do this in 8 parallel
chunks in order to mask the latency of the vpmsum instructions. If we
have more than 32 kB of data to checksum we repeat this step multiple
times, passing in the previous 1024 bits.
The next step is to reduce the 1024 bits to 64 bits. This step adds
32 bits of 0s to the end - this matches what a CRC does. We just
calculate constants that land the data in this 32 bits.
We then use fixed point Barrett reduction to compute a mod n over GF(2)
for n = CRC using POWER8 instructions. We use x = 32.
Changed in ubuntu-power-systems: | |
importance: | Undecided → Low |
assignee: | nobody → David Britton (davidpbritton) |
tags: | added: triage-g |
Changed in zlib (Ubuntu): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → David Britton (davidpbritton) |
importance: | Undecided → Low |
Changed in ubuntu-power-systems: | |
status: | New → Triaged |
Changed in zlib (Ubuntu): | |
assignee: | David Britton (davidpbritton) → Patricia Gaughen (gaughen) |
Changed in ubuntu-power-systems: | |
assignee: | David Britton (davidpbritton) → nobody |
Changed in zlib (Ubuntu): | |
assignee: | Patricia Gaughen (gaughen) → Canonical Foundations Team (canonical-foundations) |
Changed in ubuntu-power-systems: | |
status: | Triaged → Incomplete |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
summary: |
- zlib: improve crc32 performance on P8 + [18.10] zlib: improve crc32 performance on P8 |
Changed in zlib (Ubuntu): | |
status: | New → Incomplete |
Changed in ubuntu-power-systems: | |
assignee: | Canonical Foundations Team (canonical-foundations) → nobody |
Changed in zlib (Ubuntu): | |
assignee: | Canonical Foundations Team (canonical-foundations) → nobody |
Changed in ubuntu-power-systems: | |
importance: | Low → Medium |
Changed in zlib (Ubuntu): | |
importance: | Low → Medium |
Changed in ubuntu-power-systems: | |
importance: | Medium → Low |
Changed in zlib (Ubuntu): | |
importance: | Medium → Low |
Changed in zlib (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in ubuntu-power-systems: | |
status: | Incomplete → Triaged |
Changed in zlib (Ubuntu): | |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
tags: | added: rls-ff-incoming |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
Changed in zlib (Ubuntu): | |
status: | Triaged → In Progress |
Changed in ubuntu-power-systems: | |
status: | Triaged → In Progress |
Changed in ubuntu-power-systems: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Default Comment by Bridge