20 Nov, 2013

3 commits

  • Fix static checker complaint that stream is not checked in
    squashfs_decompressor_destroy().

    Reported-by: Dan Carpenter
    Signed-off-by: Phillip Lougher
    Reviewed-by: Minchan Kim

    Phillip Lougher
     
  • Further generalise the decompressors by adding a page handler
    abstraction. This adds helpers to allow the decompressors
    to access and process the output buffers in an implementation
    independant manner.

    This allows different types of output buffer to be passed
    to the decompressors, with the implementation specific
    aspects handled at decompression time, but without the
    knowledge being held in the decompressor wrapper code.

    This will allow the decompressors to handle Squashfs
    cache buffers, and page cache pages.

    This patch adds the abstraction and an implementation for
    the caches.

    Signed-off-by: Phillip Lougher
    Reviewed-by: Minchan Kim

    Phillip Lougher
     
  • Now squashfs have used for only one stream buffer for decompression
    so it hurts parallel read performance so this patch supports
    multiple decompressor to enhance performance parallel I/O.

    Four 1G file dd read on KVM machine which has 2 CPU and 4G memory.

    dd if=test/test1.dat of=/dev/null &
    dd if=test/test2.dat of=/dev/null &
    dd if=test/test3.dat of=/dev/null &
    dd if=test/test4.dat of=/dev/null &

    old : 1m39s -> new : 9s

    * From v1
    * Change comp_strm with decomp_strm - Phillip
    * Change/add comments - Phillip

    Signed-off-by: Minchan Kim
    Signed-off-by: Phillip Lougher

    Minchan Kim