android_kernel_sony_sdm845/fs/squashfs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Adrien Schildknecht 60cc09a9e3 ANDROID: Squashfs: optimize reading uncompressed data
When dealing with uncompressed data, there is no need to read a whole
block (default 128K) to get the desired page: the pages are
independent from each others.

This patch change the readpages logic so that reading uncompressed
data only read the number of pages advised by the readahead algorithm.

Moreover, if the page actor contains holes (i.e. pages that are already
up-to-date), squashfs skips the buffer_head associated to those pages.

This patch greatly improve the performance of random reads for
uncompressed files because squashfs only read what is needed. It also
reduces the number of unnecessary reads.

Change-Id: I90a77343bb994a1de7482eb43eaf6d2021502c22
Signed-off-by: Adrien Schildknecht <adriens@google.com>
2017-09-21 13:52:32 -07:00
..
block.c ANDROID: Squashfs: optimize reading uncompressed data 2017-09-21 13:52:32 -07:00
cache.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
decompressor.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
decompressor.h Squashfs: Add LZ4 compression configuration option 2014-11-27 18:48:44 +00:00
decompressor_multi.c Squashfs: Check stream is not NULL in decompressor_multi.c 2013-11-20 03:59:20 +00:00
decompressor_multi_percpu.c Squashfs: Generalise paging handling in the decompressors 2013-11-20 03:59:01 +00:00
decompressor_single.c Squashfs: Generalise paging handling in the decompressors 2013-11-20 03:59:01 +00:00
dir.c romfs, squashfs: switch to ->iterate_shared() 2016-05-09 11:41:15 -04:00
export.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
file.c ANDROID: Squashfs: implement .readpages() 2017-09-21 13:52:31 -07:00
file_direct.c ANDROID: Squashfs: optimize reading uncompressed data 2017-09-21 13:52:32 -07:00
fragment.c Squashfs: Fix sanity check patches on big-endian systems 2011-05-29 10:03:09 +01:00
id.c Squashfs: Fix sanity check patches on big-endian systems 2011-05-29 10:03:09 +01:00
inode.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
Kconfig ANDROID: Squashfs: remove the FILE_CACHE option 2017-09-21 13:52:31 -07:00
lz4_wrapper.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
lzo_wrapper.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
Makefile ANDROID: Squashfs: remove the FILE_CACHE option 2017-09-21 13:52:31 -07:00
namei.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
page_actor.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
page_actor.h ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
squashfs.h ANDROID: Squashfs: implement .readpages() 2017-09-21 13:52:31 -07:00
squashfs_fs.h Squashfs: add LZ4 compression support 2014-11-27 07:44:11 +00:00
squashfs_fs_i.h fs: cleanup slight list_entry abuse 2015-06-23 18:01:59 -04:00
squashfs_fs_sb.h ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
super.c ANDROID: Squashfs: replace buffer_head with BIO 2017-09-21 13:52:31 -07:00
symlink.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
xattr.c xattr_handler: pass dentry and inode as separate arguments of ->get() 2016-04-10 20:48:24 -04:00
xattr.h vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
xattr_id.c Squashfs: update email address 2011-05-26 10:49:11 +01:00
xz_wrapper.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00
zlib_wrapper.c ANDROID: Squashfs: refactor page_actor 2017-09-21 13:52:31 -07:00