[RFC PATCH v2 00/11] erofs: introduce the new unzip subsystem

Gao Xiang gaoxiang25 at huawei.com
Fri Jul 20 12:52:35 AEST 2018


TODO List:
 - further minor cleanup
 - bugfix
 - will be stable this week

change log v2:
 - fill the commit messages for all patches
 - fix reference count bug in some case
 - code cleanup

change log v1:
 - introduce cached decompression in order to boost random read
 - several bugfix
 *******************************************************************
 * In this version, we have an amazing seq & rand read performance *
 *******************************************************************
change log v0.7:
 - several bugfix ( buffer overflow, shrinker, ownership, etc... )
 - all features available
 - it works now, and need do more for the random read compared
   with the old decompression version.

change log v0.6:
 - preliminary works (could boot into launcher)
 - still have minor buges to fix

change log v0.5:
 - add reclaim path
 - almost work, still debugging

change log v0.4:
 - bugfix (runable now for small files)
 - separate into one more patch
[RESEND]
 - fix according to:
   Link: https://lists.01.org/pipermail/kbuild-all/2018-July/049774.html
 - fix compiling warning:
   Link: https://lists.01.org/pipermail/kbuild-all/2018-June/049647.html
 - rebase code

change log v0.3:
 - separate to several small patches, maybe more in the future patchset

change log v0.2:
 - use the recent introduced tagptr_t type to manage tagged pointers.
 - bugfix


Gao Xiang (11):
  <linux/tagptr.h>: Introduce tagged pointer
  erofs: introduce pagevec for unzip subsystem
  erofs: add erofs_map_blocks_iter
  erofs: add erofs_allocpage
  erofs: globalize prepare_bio and __submit_bio
  erofs: add a generic z_erofs VLE decompressor
  erofs: introduce superblock registration
  erofs: introduce erofs shrinker
  erofs: introduce workstation for decompression
  erofs: introduce VLE decompression support
  erofs: introduce cached decompression

 fs/erofs/Kconfig         |   62 ++
 fs/erofs/Makefile        |    3 +-
 fs/erofs/data.c          |   41 +-
 fs/erofs/inode.c         |    6 +-
 fs/erofs/internal.h      |  200 ++++++
 fs/erofs/staging.h       |   50 ++
 fs/erofs/super.c         |  132 +++-
 fs/erofs/unzip_pagevec.h |  172 +++++
 fs/erofs/unzip_vle.c     | 1572 ++++++++++++++++++++++++++++++++++++++++++++++
 fs/erofs/unzip_vle.h     |  219 +++++++
 fs/erofs/unzip_vle_lz4.c |  209 ++++++
 fs/erofs/utils.c         |  270 ++++++++
 fs/file.c                |   24 +-
 include/linux/file.h     |   15 +-
 include/linux/tagptr.h   |  110 ++++
 15 files changed, 3034 insertions(+), 51 deletions(-)
 create mode 100644 fs/erofs/unzip_pagevec.h
 create mode 100644 fs/erofs/unzip_vle.c
 create mode 100644 fs/erofs/unzip_vle.h
 create mode 100644 fs/erofs/unzip_vle_lz4.c
 create mode 100644 fs/erofs/utils.c
 create mode 100644 include/linux/tagptr.h

-- 
1.9.1



More information about the Linux-erofs mailing list