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
supporting zstd #67
Comments
|
Looks like limiting compression level is done from cli tool: https://github.com/facebook/zstd/blob/d1cc9d279704057c08ab976618c8bd629bc18f7e/programs/zstdcli.c#L1162 |
|
Can you check size if you specify Lines 497 to 507 in 81e9fe7
|
|
This issue has been unresolved for over a year. It is also unclear whether there is a bug here, or whether it is expected behaviour. What is clear, however, is this isn't an issue with Mksquashfs pe se, but with the Facebook supplied zstd wrapper code. As such the issue should really be directed at the Facebook zstd developers, as they're the only people who can give a definitive answer. Closing this due to lack of information. |
Downstream Fedora bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1743029
Summary: I'm getting very close resulting size (but not identical) when using -Xcompression-level 19 vs -Xcompression-level 22. Also the memory consumption isn't changed, and time is alone slightly different. I can't account for the small differences (caching? nothing else was running on the test system), but also I'd expect level 22 to be a lot slower and use a lot more memory and produce something very close to xz, yet it's ~5-7% larger. I used 256K block size for zstd, and default 128K blocksize for xz.
bytes
1877843968 30min squashfsxzbcj.img
2033696768 13min squashfsz15.img
2020720640 31min squashfsz19.img
2020712448 41min squashfsz22.img
My suspicion based on the zstd man page and CLI interface, is that --ultra needs to be passed to unlock compression levels 20+, otherwise compression level 19 is used. I'm not certain this applies to the libzstd interface mksquashfs uses. Bruno also expressed confusion about the interface.
Downstream work supporting zstd since squashfs-tools-4.3-21
https://src.fedoraproject.org/rpms/squashfs-tools/c/258bc8ea26b48e872f6d886bd830f774634e6fc9?branch=master
Vaguely interesting, Facebook's XAR project, which leverages squashfs, are using level 16 by default.
https://github.com/facebookincubator/xar/blob/master/xar/commands/bdist_xar.py
Just to make it clear, I'm asking a question if what I'm seeing is expected and level 22 is really being used. I'm not asking for levels 20+ to be enabled, necessarily. The resource requirements are so much higher for both compression and decompression, in particular level 22, that I'm not certain, one way or another, they should be made available.
The text was updated successfully, but these errors were encountered: