| From: Ariel Miculas <amiculas@cisco.com> |
| Subject: docs: filesystems: document the squashfs specific mount options |
| Date: Fri, 17 Nov 2023 18:12:14 +0200 |
| |
| When SQUASHFS_CHOICE_DECOMP_BY_MOUNT is set, the "threads" mount option |
| can be used to specify the decompression mode: single-threaded, |
| multi-threaded, percpu or the number of threads used for decompression. |
| When SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set, SQUASHFS_DECOMP_MULTI and |
| SQUASHFS_MOUNT_DECOMP_THREADS are both set, the "threads" option can also |
| be used to specify the number of threads used for decompression. This |
| mount option is only mentioned in fs/squashfs/Kconfig, which makes it |
| difficult to find. |
| |
| Another mount option available is "errors", which can be configured to |
| panic the kernel when squashfs errors are encountered. |
| |
| Add both these options to the squashfs documentation, making them more |
| noticeable. |
| |
| Link: https://lkml.kernel.org/r/20231117161215.140282-1-amiculas@cisco.com |
| Signed-off-by: Ariel Miculas <amiculas@cisco.com> |
| Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com> |
| Reviewed-by: Phillip Lougher <phillip@squashfs.org.uk> |
| Cc: Jonathan Corbet <corbet@lwn.net> |
| Cc: Serge Hallyn <serge@hallyn.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/filesystems/squashfs.rst | 60 +++++++++++++++++++++++ |
| 1 file changed, 60 insertions(+) |
| |
| --- a/Documentation/filesystems/squashfs.rst~docs-filesystems-document-the-squashfs-specific-mount-options |
| +++ a/Documentation/filesystems/squashfs.rst |
| @@ -64,6 +64,66 @@ obtained from this site also. |
| The squashfs-tools development tree is now located on kernel.org |
| git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git |
| |
| +2.1 Mount options |
| +----------------- |
| +=================== ========================================================= |
| +errors=%s Specify whether squashfs errors trigger a kernel panic |
| + or not |
| + |
| + ========== ============================================= |
| + continue errors don't trigger a panic (default) |
| + panic trigger a panic when errors are encountered, |
| + similar to several other filesystems (e.g. |
| + btrfs, ext4, f2fs, GFS2, jfs, ntfs, ubifs) |
| + |
| + This allows a kernel dump to be saved, |
| + useful for analyzing and debugging the |
| + corruption. |
| + ========== ============================================= |
| +threads=%s Select the decompression mode or the number of threads |
| + |
| + If SQUASHFS_CHOICE_DECOMP_BY_MOUNT is set: |
| + |
| + ========== ============================================= |
| + single use single-threaded decompression (default) |
| + |
| + Only one block (data or metadata) can be |
| + decompressed at any one time. This limits |
| + CPU and memory usage to a minimum, but it |
| + also gives poor performance on parallel I/O |
| + workloads when using multiple CPU machines |
| + due to waiting on decompressor availability. |
| + multi use up to two parallel decompressors per core |
| + |
| + If you have a parallel I/O workload and your |
| + system has enough memory, using this option |
| + may improve overall I/O performance. It |
| + dynamically allocates decompressors on a |
| + demand basis. |
| + percpu use a maximum of one decompressor per core |
| + |
| + It uses percpu variables to ensure |
| + decompression is load-balanced across the |
| + cores. |
| + 1|2|3|... configure the number of threads used for |
| + decompression |
| + |
| + The upper limit is num_online_cpus() * 2. |
| + ========== ============================================= |
| + |
| + If SQUASHFS_CHOICE_DECOMP_BY_MOUNT is **not** set and |
| + SQUASHFS_DECOMP_MULTI, SQUASHFS_MOUNT_DECOMP_THREADS are |
| + both set: |
| + |
| + ========== ============================================= |
| + 2|3|... configure the number of threads used for |
| + decompression |
| + |
| + The upper limit is num_online_cpus() * 2. |
| + ========== ============================================= |
| + |
| +=================== ========================================================= |
| + |
| 3. Squashfs Filesystem Design |
| ----------------------------- |
| |
| _ |