(Pull request made) |
(More tweaking after pull request) |
||
Line 22: | Line 22: | ||
== Scope == | == Scope == | ||
* kernel | * kernel | ||
*** We are still waiting for Lougher to have a chance to get an acceptable patch (to Linus) for the Linus kernel. If it gets into 2.6.38 we will have no trouble getting this into F15. | *** We are still waiting for Lougher to have a chance to get an acceptable patch (to Linus) for the Linus kernel. If it gets into 2.6.38 we will have no trouble getting this into F15. | ||
*** Statements from Lougher: | *** Statements from Lougher: | ||
**** https://bugzilla.redhat.com/show_bug.cgi?id=504425#c19 | **** https://bugzilla.redhat.com/show_bug.cgi?id=504425#c19 | ||
**** http://marc.info/?l=linux-kernel&m=127190194229951&w=2 | **** http://marc.info/?l=linux-kernel&m=127190194229951&w=2 | ||
*** Lougher has made a [http://marc.info/?l=linux-kernel&m=129514821913191&w=2 pull request] for XZ support for squashfs for 2.6.38. | *** Lougher has made a [http://marc.info/?l=linux-kernel&m=129514821913191&w=2 pull request] for [http://git.kernel.org/?p=linux/kernel/git/pkl/squashfs-linus.git;a=summary XZ support] for squashfs for 2.6.38. | ||
** [http://sourceforge.net/mailarchive/forum.php?forum_name=squashfs-devel&max_rows=25&style=nested&viewmonth=201011 Discussion] about lzma / xz support in the kernel on the squashfs-devel list. | ** [http://sourceforge.net/mailarchive/forum.php?forum_name=squashfs-devel&max_rows=25&style=nested&viewmonth=201011 Discussion] about lzma / xz support in the kernel on the squashfs-devel list. | ||
** New development related to xz (lzma2) and squashfs kernel support: | ** New development related to xz (lzma2) and squashfs kernel support: | ||
Line 33: | Line 32: | ||
*** [http://marc.info/?l=linux-kernel&m=129131729423308&w=2 Lasse Collin's XZ patch thread] on lkml. | *** [http://marc.info/?l=linux-kernel&m=129131729423308&w=2 Lasse Collin's XZ patch thread] on lkml. | ||
**** This set of patches is now in 2.6.38. This makes it seem pretty likely that the xz squashfs patches will get included. | **** This set of patches is now in 2.6.38. This makes it seem pretty likely that the xz squashfs patches will get included. | ||
*** [http://sourceforge.net/projects/squashfs/develop Development version of squashfs-tools] which includes XZ support. | *** [http://sourceforge.net/projects/squashfs/develop Development version of squashfs-tools] which includes XZ support. | ||
** Fallback plan for the kernel is to do nothing. | ** Fallback plan for the kernel is to do nothing. |
Revision as of 05:28, 16 January 2011
LZMA for Live Images
Summary
Enabling LZMA for compression to allow us ship more software on our live images.
Owner
- Name: Bruno Wolff III
- Email: <bruno@wolff.to>
Current status
- Targeted release: Fedora 15
- Last updated: 2010-12-26
- Percentage of completion: 15%
Detailed Description
LZMA compression typically provides better compression than gzip while still providing relatively fast uncompression. Once squashfs file systems are supported by the kernel we can use them for building live images. A test with the games spin resulted in a 8.7% reduction (from 4242538496 bytes to 3873439744 bytes) in size of the resulting live image.
Benefit to Fedora
By allowing more packages to be put on a Live Image, we can make a few of our space constrained images better. For other images, having them be smaller will make them faster to download.
Scope
- kernel
- We are still waiting for Lougher to have a chance to get an acceptable patch (to Linus) for the Linus kernel. If it gets into 2.6.38 we will have no trouble getting this into F15.
- Statements from Lougher:
- Lougher has made a pull request for XZ support for squashfs for 2.6.38.
- Discussion about lzma / xz support in the kernel on the squashfs-devel list.
- New development related to xz (lzma2) and squashfs kernel support:
- Lougher's patch thread on lkml.
- Lasse Collin's XZ patch thread on lkml.
- This set of patches is now in 2.6.38. This makes it seem pretty likely that the xz squashfs patches will get included.
- Development version of squashfs-tools which includes XZ support.
- Fallback plan for the kernel is to do nothing.
- livecd-creator
- Changes to livecd-creator:
- Change the default compression type to xz.
- Update the documentation to reflect the changed default.
- These changes won't be made until after the kernel feature is available, so no fallback is needed.
- Changes to livecd-creator:
- squashfs-tools
- squashfs-tools is back on the table as XZ (LZMA2) will be separate from LZMA.
- The development version needs to get built and tested.
- A 4.2 prerelease build is now in rawhide.
- The squashfs-tools 4.2 release is tentatively planned for mid-February.
- A test case has been created to make it easier to get critical path testing.
How To Test
- We need to make sure live images work.
- We need to make sure live images are smaller using LZMA2 (XZ) compression.
- We need to make sure performance is acceptable.
- Using a live image needs to not be noticeably slower (hopefully it will be faster with typcial hardware) with LZMA than with GZIP compression.
- It is OK if making a compressed file system using xz is somewhat slower than with gzip, because commonly time isn't as critical when making the image (compared to using it).
- squashfs-tools should be tested to make sure all of the compression methods work.
- Specific test cases: (Note in early testing, the default will be gzip rather than xz.)
- Squashfs 4.2
- No --compression-type
- Should build using xz and image should work.
- --compression-type=gzip
- Should build using gzip and image should work.
- --compression-type=xz
- Should build using xz and image should work with a kernel that supports xz squashfs.
- The image should be smaller than with gzip compression.
- The image should run nearly as fast or faster than when using gzip compression on common hardware.
- The time needed to build the image should not be inordinately longer than when using gzip on common hardware.
- --compression-type=garbage
- A reasonable error message should be displayed
- No --compression-type
- man livecd-creator
- Should have the --compression-type option documented with the correct default. (gzip in eary testing, xz in later testing.)
- livecd-creator --help
- Should have the --compression-type option documented with the correct default. (gzip in eary testing, xz in later testing.)
- Squashfs 4.2
User Experience
Live images will be smaller or have more included packages.
Dependencies
- kernel (may need to ask for backport)
- This is unlikely. If the patches don't make it into 2.6.38, then due to kernel release timing it will be better to slip to F16.
- livecd-tools
Contingency Plan
- Since there isn't really anything further to do until the kernel feature is available, the fallback is pretty much not to do anything.
Documentation
- Most likely livecd-creator would be getting a new option and would need its help updated along with the code changes.
Release Notes
- Mention the squashfs version change, that it supports XZ (LZMA2) compression, point to its documentation and note that it is supported in the kernel as well.
- Mention that livecd-creator uses XZ by default, how to get GZIP compression if desired for use with older kernels or other reasons.
Thanks
I would like to thank Phillip Lougher for his work on squashfs. The key work needed for this feature was done by Phillip upstream.