1. 29 Jul, 2018 1 commit
  2. 09 Sep, 2017 1 commit
    • Sean Purcell's avatar
      squashfs: Add zstd support · 87bf54bb
      Sean Purcell authored
      Add zstd compression and decompression support to SquashFS. zstd is a
      great fit for SquashFS because it can compress at ratios approaching xz,
      while decompressing twice as fast as zlib. For SquashFS in particular,
      it can decompress as fast as lzo and lz4. It also has the flexibility
      to turn down the compression ratio for faster compression times.
      
      The compression benchmark is run on the file tree from the SquashFS archive
      found in ubuntu-16.10-desktop-amd64.iso [1]. It uses `mksquashfs` with the
      default block size (128 KB) and and various compression algorithms/levels.
      xz and zstd are also benchmarked with 256 KB blocks. The decompression
      benchmark times how long it takes to `tar` the file tree into `/dev/null`.
      See the benchmark file in the upstream zstd source repository located under
      `contrib/linux-kernel/squashfs-benchmark.sh` [2] for details.
      
      I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
      The VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,
      16 GB of RAM, and a SSD.
      
      | Method         | Ratio | Compression MB/s | Decompression MB/s |
      |----------------|-------|------------------|--------------------|
      | gzip           |  2.92 |               15 |                128 |
      | lzo            |  2.64 |              9.5 |                217 |
      | lz4            |  2.12 |               94 |                218 |
      | xz             |  3.43 |              5.5 |                 35 |
      | xz 256 KB      |  3.53 |              5.4 |                 40 |
      | zstd 1         |  2.71 |               96 |                210 |
      | zstd 5         |  2.93 |               69 |                198 |
      | zstd 10        |  3.01 |               41 |                225 |
      | zstd 15        |  3.13 |             11.4 |                224 |
      | zstd 16 256 KB |  3.24 |              8.1 |                210 |
      
      This patch was written by Sean Purcell <me@seanp.xyz>, but I will be
      taking over the submission process.
      
      [1] http://releases.ubuntu.com/16.10/
      [2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/squashfs-benchmark.sh
      
      zstd source repository: https://github.com/facebook/zstdSigned-off-by: 's avatarSean Purcell <me@seanp.xyz>
      Signed-off-by: 's avatarNick Terrell <terrelln@fb.com>
      Signed-off-by: 's avatarChris Mason <clm@fb.com>
      Acked-by: 's avatarPhillip Lougher <phillip@squashfs.org.uk>
      87bf54bb
  3. 27 Nov, 2014 1 commit
  4. 06 Sep, 2013 1 commit
  5. 10 Mar, 2012 2 commits
  6. 02 Nov, 2011 1 commit
    • Phillip Lougher's avatar
      Squashfs: Add an option to set dev block size to 4K · 7657cacf
      Phillip Lougher authored
      This commit adds an option to set the device block size used to 4K.
      
      By default Squashfs sets the device block size (sb_min_blocksize) to 1K
      or the smallest block size supported by the block device (if larger).
      This, because blocks are packed together and unaligned in Squashfs,
      should reduce latency.
      
      This, however, gives poor performance on MTD NAND devices where
      the optimal I/O size is 4K (even though the devices can support
      smaller block sizes).
      
      Using a 4K device block size may also improve overall I/O
      performance for some file access patterns (e.g. sequential
      accesses of files in filesystem order) on all media.
      Signed-off-by: 's avatarPhillip Lougher <phillip@squashfs.org.uk>
      7657cacf
  7. 26 May, 2011 1 commit
  8. 28 Feb, 2011 1 commit
    • Phillip Lougher's avatar
      Squashfs: extend decompressor framework to handle compression options · b7fc0ff0
      Phillip Lougher authored
      Extend decompressor framework to handle compression options stored in
      the filesystem.  These options can be used by the relevant decompressor
      at initialisation time to over-ride defaults.
      
      The presence of compression options in the filesystem is indicated by
      the COMP_OPT filesystem flag.  If present the data is read from the
      filesystem and passed to the decompressor init function.  The decompressor
      init function signature has been extended to take this data.
      
      Also update the init function signature in the glib, lzo and xz
      decompressor wrappers.
      Signed-off-by: 's avatarPhillip Lougher <phillip@lougher.demon.co.uk>
      b7fc0ff0
  9. 13 Jan, 2011 1 commit
  10. 08 Aug, 2010 1 commit
  11. 17 May, 2010 3 commits
  12. 05 Mar, 2010 1 commit
  13. 20 Jan, 2010 1 commit
  14. 16 Jan, 2009 1 commit
  15. 05 Jan, 2009 1 commit