- Sep 27, 2022
-
-
Avi Drissman authored
This is forked and this repo is authoritative for the fork. The methodology used to generate this CL is documented in https://crbug.com/1098010#c95. No-Try: true Bug: 1098010 Change-Id: I4698084a28dda86210e9dba6ddac76c13377e687 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3921823 Auto-Submit: Avi Drissman <avi@chromium.org> Reviewed-by:
Adam Langley <agl@chromium.org> Commit-Queue: Adam Langley <agl@chromium.org> Cr-Commit-Position: refs/heads/main@{#1051972} NOKEYCHECK=True GitOrigin-RevId: 9fc44ce454cc889b603900ccd14b7024ea2c284c
-
- May 02, 2022
-
-
Noel Gordon authored
In zlib, hash_size is 1 << s->hash_bits or 65536 (at most) at maximum memory level which makes the Assert(hash_size == (ush)hash_size) fail at maximum zlib memory level (issue 1321435). Fix this incorrect Assert: test that hash_size is bounded viz., 1<<16 at most, and 1<<8 at least. Bug: 1316541, 1321435 Change-Id: Id1d28b1901905dcfdb889fcd5d3cdbc2a3d478a1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3617306 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#998237} NOKEYCHECK=True GitOrigin-RevId: 0e8968867160101c6726e979fae136b560e54def
-
- Apr 30, 2022
-
-
Noel Gordon authored
If USE_ZLIB_RABIN_KARP_ROLLING_HASH build-time option is defined, use the Rabin-Karp hash. This disables CRC SIMD hashing on ARM and Intel, which will degrade compression speed. However, the compressed output matches canonical zlib output, for the same input, and that should resolve ASOP OTA issue 1316541. To ensure the Rabin-Karp hash is used correctly in chromium zlib, the first step is to go back to using canonical fill_window(). To do this combine the ARM NEON and Intel SSE2 slide_hash() routines in a common framework called slide_hash_simd(). Remove fill_window_sse.c and undo deflate_read_buf() rename: name it back to canonical read_buf(). Change insert_string(): by default it uses CRC32C hashes on all ports (ARM, Intel) so add code comments to state that. If Rabin-Karp hashes are enabled, disable CRC32C hashes. Add a new deflate internal state variable chromium_zlib_hash, used to detect which type of hashing is enabled (Rabin-Karp, CRC32C). Set the state variable in deflateInit2_ after cpu_check_features() detection, with #ifdef guards matching the #ifdef logic of insert_string(). Change canonical fill_window() to insert hashes into {hash,prev} hash chains based on hash type (Rabin-Karp, CRC32C). Prior to this change, the ARM port was inserting Rabin-Karp hashes into hash chains even if CRC32 hashing was active when s->insert was > 0. Change longest_match() and deflate_fast(): update them to use the new deflate state variable chromium_zlib_hash. Compression performance degrades when Rabin-Karp hashing is used, but is unchanged when CRC32C hashing is enabled (chromium zlib default). Compat: if Rabin-Karp hashing is enabled, zlib-bench --check built as normal and against canonical zlib 1.2.11, produce the same compressed output for the snappy corpora for gzip,zlib,raw types and compression levels 1..9. Bug: 1316541 Change-Id: I0d5ee6240f0b7eac4653d60a29d459d994c3871f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3596671 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#998062} NOKEYCHECK=True GitOrigin-RevId: 2bd100e46361a459b41a29212ea8f97a4837a06c
-