Re: [PATCH 0/3] Squashfs: Directly decompress into the page cachefor file data

From: Minchan Kim
Date: Fri Oct 11 2013 - 04:04:04 EST


Hello Phillip,

I looked at the patchset roughly and I feel it's really awesome
so I have to rebase decompressor_multi.c on it.
But before that, could you review it?
I think you may have some stuff to hate like naming and even more.

Thanks.

On Fri, Oct 11, 2013 at 07:19:37AM +0100, Phillip Lougher wrote:
> This patch-set introduces an implementation of
> squashfs_readpage() that directly decompresses into the
> page cache.
>
> It first generalises 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.
>
> It then adds a read_page() implementation for file data that
> uses the page handler abstraction to push down the necessary
> kmap_atomic/kunmap_atomic operations on the page cache buffers into
> the decompressors. This enables direct copying into the page cache
> without using the slow kmap/kunmap calls.
>
> The code detects when multiple threads are racing in
> squashfs_readpage() to decompress the same block, and avoids
> this regression by falling back to using an intermediate
> buffer.
>
> This patch enhances the performance of Squashfs significantly
> when multiple processes are accessing the filesystem simultaneously
> because it not only reduces memcopying, but it more importantly
> eliminates the lock contention on the intermediate buffer.
>
> Using single-threaded decompression.
>
> dd if=file1 of=/dev/null bs=4096 &
> dd if=file2 of=/dev/null bs=4096 &
> dd if=file3 of=/dev/null bs=4096 &
> dd if=file4 of=/dev/null bs=4096
>
> Before:
>
> 629145600 bytes (629 MB) copied, 45.8046 s, 13.7 MB/s
>
> After:
>
> 629145600 bytes (629 MB) copied, 9.29414 s, 67.7 MB/s
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Kind regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/