|
|
Subscribe / Log in / New account

squashfs: Add the mount parameter "threads="

From:  Xiaoming Ni <nixiaoming-AT-huawei.com>
To:  <linux-kernel-AT-vger.kernel.org>, <phillip-AT-squashfs.org.uk>
Subject:  [PATCH v5 0/2] squashfs: Add the mount parameter "threads="
Date:  Fri, 30 Sep 2022 17:14:04 +0800
Message-ID:  <20220930091406.50869-1-nixiaoming@huawei.com>
Cc:  <nixiaoming-AT-huawei.com>, <wangle6-AT-huawei.com>, <yi.zhang-AT-huawei.com>, <zhongjubin-AT-huawei.com>, <chenjianguo3-AT-huawei.com>
Archive-link:  Article

Currently, Squashfs supports multiple decompressor parallel modes. However, this
mode can be configured only during kernel building and does not support flexible
selection during runtime.

In the current patch set, the mount parameter "threads=" is added to allow users
to select the parallel decompressor mode and configure the number of decompressors
when mounting a file system.

"threads=<single|multi|percpu|1|2|3|...>"
The upper limit is num_online_cpus() * 2.

v5: fix a low-level mistake in patching:
  fs/squashfs/super.c:492:7: warning: "CONFIG_SQUASHFS_DECOMP_MULTI" is 
  not defined, evaluates to 0 [-Wundef]

v4: https://lore.kernel.org/lkml/20220916083604.33408-1-nixia...
 Based on Philip Lougher's suggestion, make the following updates:
 1. Use static modifiers to avoid changing symbol names.
 2. Fixed some formatting issues

v3: https://lore.kernel.org/lkml/20220902094855.22666-1-nixia...
  Based on Philip Lougher's suggestion, make the following updates:
  1. The default configuration is the same as that before the patch installation.
  2. Compile the three decompression modes when the new configuration is enabled.
  3. "threads=1" supports only the SQUASHFS_DECOMP_SINGLE mode.

v2: https://lore.kernel.org/lkml/20220816010052.15764-1-nixia...
  fix warning: sparse: incorrect type in initializer (different address spaces)
  Reported-by: kernel test robot <lkp@intel.com>

v1: https://lore.kernel.org/lkml/20220815031100.75243-1-nixia...

Xiaoming Ni (2):
  squashfs: add the mount parameter theads=<single|multi|percpu>
  squashfs: Allows users to configure the number of  decompression
    threads

 fs/squashfs/Kconfig                     | 51 ++++++++++++++++--
 fs/squashfs/block.c                     |  2 +-
 fs/squashfs/decompressor.c              |  2 +-
 fs/squashfs/decompressor_multi.c        | 20 ++++---
 fs/squashfs/decompressor_multi_percpu.c | 23 +++++---
 fs/squashfs/decompressor_single.c       | 15 ++++--
 fs/squashfs/squashfs.h                  | 23 ++++++--
 fs/squashfs/squashfs_fs_sb.h            |  4 +-
 fs/squashfs/super.c                     | 93 +++++++++++++++++++++++++++++++--
 9 files changed, 199 insertions(+), 34 deletions(-)

-- 
2.12.3



Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds