-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Block splitter #4136
Merged
Block splitter #4136
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
a5bce4a
XP: add a pre-splitter
Cyan4973 9e52789
fixed strict C90 semantic
Cyan4973 586ca96
do not use `new` as variable name
Cyan4973 e2d7d08
use ZSTD_memset()
Cyan4973 6021b66
minor C++-ism
Cyan4973 fa147cb
more ZSTD_memset() to apply
Cyan4973 83a3402
fix overlap write scenario in presence of incompressible data
Cyan4973 f83ed08
fixed RLE detection test
Cyan4973 8b3887f
fixed kernel build
Cyan4973 dd38c67
fixed single-library build
Cyan4973 0d4b520
only split full blocks
Cyan4973 20c3d17
fix assert
Cyan4973 6dc5212
fixed c90 comment style
Cyan4973 80a912d
fixed zstreamtest
Cyan4973 6939235
fixed meson build
Cyan4973 cdddcaa
new Makefile target mesonbuild
Cyan4973 76ad1d6
fixed VS2010 solution
Cyan4973 31d48e9
fixing minor formatting issue in 32-bit mode with logs enabled
Cyan4973 7f015c2
replaced uasan32 test by asan32 test
Cyan4973 73a6653
ZSTD_splitBlock_4k() uses externally provided workspace
Cyan4973 433f459
fixed minor conversion warnings on Visual
Cyan4973 4685eaf
fix alignment test
Cyan4973 cae8d13
splitter workspace is now provided by ZSTD_CCtx*
Cyan4973 4ce91cb
fixed workspace alignment on non 64-bit systems
Cyan4973 dac26ea
updated regression test results
Cyan4973 1c62e71
minor split optimization
Cyan4973 a167571
added a faster block splitter variant
Cyan4973 7bad787
made ZSTD_isPower2() an inline function
Cyan4973 5ae34e4
ensure `lastBlock` is correctly determined
Cyan4973 ea85dc7
conservatively estimate over-splitting in presence of incompressible …
Cyan4973 4662f6e
renamed: FingerPrint => Fingerprint
Cyan4973 1ec5f9f
changed loop exit condition so that there is no need to assert() with…
Cyan4973 16450d0
rewrite penalty update
Cyan4973 06b7cfa
rewrote ZSTD_cwksp_initialAllocStart() to be easier to read
Cyan4973 0be334d
fixes static state allocation check
Cyan4973 d2eeed5
updated compression results
Cyan4973 18b1e67
fixed extraneous return
Cyan4973 57239c4
fixed minor strict pedantic C90 issue
Cyan4973 b68ddce
rewrite fingerprint storage to no longer need 64-bit members
Cyan4973 7d3e5e3
split all full 128 KB blocks
Cyan4973 c80645a
stricter limits to ensure expansion factor with blind-split strategy
Cyan4973 bbda1ac
update regression results
Cyan4973 90095f0
apply limit conditions for all splitting strategies
Cyan4973 70c77d2
update regression results
Cyan4973 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it have issues before this PR, or only after? If it is the latter, this might also have issues in the kernel, and we would need to do something similar to what we do with
ZSTD_div64()
zstd/lib/common/zstd_deps.h
Line 82 in b880f20
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this might be a compiler bug.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the issue doesn't reproduce on my local linux workstation.
I suspect a bug in the version of
ubsan
forclang
currently deployed within github ci.It's likely that this issue will be fixed at some unspecified time in the future.
We just can't wait for this issue to be fixed, the CI needs to continue running.
We'll re-enable this test when it can work properly on Github CI again.
Also, dropping temporarily the
ubsan
test forclang
for 32-bitx86
targets seems like a minor inconvenience, given that:x64
ubsan
32-bit is still running in CI withgcc
asan
test for 32-bit onclang