)]}'
{
  "commit": "5226fcac7841f66e5c141d27f0d099b5fd0d626f",
  "tree": "10044251c85acbcda2ced8d2794bcdc99ba36b1e",
  "parents": [
    "ff108ad6692a629a991e57ac9d4ad4c2cac4c0fd"
  ],
  "author": {
    "name": "Sean Purcell",
    "email": "me@seanp.xyz",
    "time": "Wed Aug 09 19:42:36 2017 -0700"
  },
  "committer": {
    "name": "Chris Mason",
    "email": "clm@fb.com",
    "time": "Tue Aug 22 11:17:55 2017 -0700"
  },
  "message": "squashfs: Add zstd support\n\nAdd zstd compression and decompression support to SquashFS. zstd is a\ngreat fit for SquashFS because it can compress at ratios approaching xz,\nwhile decompressing twice as fast as zlib. For SquashFS in particular,\nit can decompress as fast as lzo and lz4. It also has the flexibility\nto turn down the compression ratio for faster compression times.\n\nThe compression benchmark is run on the file tree from the SquashFS archive\nfound in ubuntu-16.10-desktop-amd64.iso [1]. It uses `mksquashfs` with the\ndefault block size (128 KB) and and various compression algorithms/levels.\nxz and zstd are also benchmarked with 256 KB blocks. The decompression\nbenchmark times how long it takes to `tar` the file tree into `/dev/null`.\nSee the benchmark file in the upstream zstd source repository located under\n`contrib/linux-kernel/squashfs-benchmark.sh` [2] for details.\n\nI ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.\nThe VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,\n16 GB of RAM, and a SSD.\n\n| Method         | Ratio | Compression MB/s | Decompression MB/s |\n|----------------|-------|------------------|--------------------|\n| gzip           |  2.92 |               15 |                128 |\n| lzo            |  2.64 |              9.5 |                217 |\n| lz4            |  2.12 |               94 |                218 |\n| xz             |  3.43 |              5.5 |                 35 |\n| xz 256 KB      |  3.53 |              5.4 |                 40 |\n| zstd 1         |  2.71 |               96 |                210 |\n| zstd 5         |  2.93 |               69 |                198 |\n| zstd 10        |  3.01 |               41 |                225 |\n| zstd 15        |  3.13 |             11.4 |                224 |\n| zstd 16 256 KB |  3.24 |              8.1 |                210 |\n\nThis patch was written by Sean Purcell \u003cme@seanp.xyz\u003e, but I will be\ntaking over the submission process.\n\n[1] http://releases.ubuntu.com/16.10/\n[2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/squashfs-benchmark.sh\n\nzstd source repository: https://github.com/facebook/zstd\n\nSigned-off-by: Sean Purcell \u003cme@seanp.xyz\u003e\nSigned-off-by: Nick Terrell \u003cterrelln@fb.com\u003e\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\nAcked-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ffb093e72b6ca89a0f8d339dfad3f04da0c97e8e",
      "old_mode": 33188,
      "old_path": "fs/squashfs/Kconfig",
      "new_id": "1adb3346b9d6aa659cf5aaf5f82afe1d81a8118f",
      "new_mode": 33188,
      "new_path": "fs/squashfs/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "246a6f329d8957df4b3bf48129b3f0e415be2611",
      "old_mode": 33188,
      "old_path": "fs/squashfs/Makefile",
      "new_id": "6655631c53ae78573c3f88d14d6f60d134ed1639",
      "new_mode": 33188,
      "new_path": "fs/squashfs/Makefile"
    },
    {
      "type": "modify",
      "old_id": "d2bc13636f7927a7485bb153c4d0883a7b2ea1e2",
      "old_mode": 33188,
      "old_path": "fs/squashfs/decompressor.c",
      "new_id": "836639810ea01720982176ddd1aeb22d7e40835a",
      "new_mode": 33188,
      "new_path": "fs/squashfs/decompressor.c"
    },
    {
      "type": "modify",
      "old_id": "a25713c031a51213edc9dd5a32de73f64f75c44f",
      "old_mode": 33188,
      "old_path": "fs/squashfs/decompressor.h",
      "new_id": "0f5a8e4e58dae999fae44f95e232738cf0bebe7c",
      "new_mode": 33188,
      "new_path": "fs/squashfs/decompressor.h"
    },
    {
      "type": "modify",
      "old_id": "506f4ba5b98309b9041cc99103312837b2724e58",
      "old_mode": 33188,
      "old_path": "fs/squashfs/squashfs_fs.h",
      "new_id": "24d12fd1417767689778302abf77b21f1efd6350",
      "new_mode": 33188,
      "new_path": "fs/squashfs/squashfs_fs.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eeaabf8811591d1980ed507a307732c69afe2dd0",
      "new_mode": 33188,
      "new_path": "fs/squashfs/zstd_wrapper.c"
    }
  ]
}
