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 majord...@vger.kernel.org > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/