~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/squashfs/Kconfig

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only
  2 config SQUASHFS
  3         tristate "SquashFS 4.0 - Squashed file system support"
  4         depends on BLOCK
  5         help
  6           Saying Y here includes support for SquashFS 4.0 (a Compressed
  7           Read-Only File System).  Squashfs is a highly compressed read-only
  8           filesystem for Linux.  It uses zlib, lzo or xz compression to
  9           compress both files, inodes and directories.  Inodes in the system
 10           are very small and all blocks are packed to minimise data overhead.
 11           Block sizes greater than 4K are supported up to a maximum of 1 Mbytes
 12           (default block size 128K).  SquashFS 4.0 supports 64 bit filesystems
 13           and files (larger than 4GB), full uid/gid information, hard links and
 14           timestamps.
 15 
 16           Squashfs is intended for general read-only filesystem use, for
 17           archival use (i.e. in cases where a .tar.gz file may be used), and in
 18           embedded systems where low overhead is needed.  Further information
 19           and tools are available from http://squashfs.sourceforge.net.
 20 
 21           If you want to compile this as a module ( = code which can be
 22           inserted in and removed from the running kernel whenever you want),
 23           say M here.  The module will be called squashfs.  Note that the root
 24           file system (the one containing the directory /) cannot be compiled
 25           as a module.
 26 
 27           If unsure, say N.
 28 
 29 choice
 30         prompt "File decompression options"
 31         depends on SQUASHFS
 32         help
 33           Squashfs now supports two options for decompressing file
 34           data.  Traditionally Squashfs has decompressed into an
 35           intermediate buffer and then memcopied it into the page cache.
 36           Squashfs now supports the ability to decompress directly into
 37           the page cache.
 38 
 39           If unsure, select "Decompress file data into an intermediate buffer"
 40 
 41 config SQUASHFS_FILE_CACHE
 42         bool "Decompress file data into an intermediate buffer"
 43         help
 44           Decompress file data into an intermediate buffer and then
 45           memcopy it into the page cache.
 46 
 47 config SQUASHFS_FILE_DIRECT
 48         bool "Decompress files directly into the page cache"
 49         help
 50           Directly decompress file data into the page cache.
 51           Doing so can significantly improve performance because
 52           it eliminates a memcpy and it also removes the lock contention
 53           on the single buffer.
 54 
 55 endchoice
 56 
 57 config SQUASHFS_DECOMP_SINGLE
 58         depends on SQUASHFS
 59         def_bool n
 60 
 61 config SQUASHFS_DECOMP_MULTI
 62         depends on SQUASHFS
 63         def_bool n
 64 
 65 config SQUASHFS_DECOMP_MULTI_PERCPU
 66         depends on SQUASHFS
 67         def_bool n
 68 
 69 config SQUASHFS_CHOICE_DECOMP_BY_MOUNT
 70         bool "Select the parallel decompression mode during mount"
 71         depends on SQUASHFS
 72         default n
 73         select SQUASHFS_DECOMP_SINGLE
 74         select SQUASHFS_DECOMP_MULTI
 75         select SQUASHFS_DECOMP_MULTI_PERCPU
 76         select SQUASHFS_MOUNT_DECOMP_THREADS
 77         help
 78           Compile all parallel decompression modes and specify the
 79           decompression mode by setting "threads=" during mount.
 80           default Decompressor parallelisation is SQUASHFS_DECOMP_SINGLE
 81 
 82 choice
 83         prompt "Select decompression parallel mode at compile time"
 84         depends on SQUASHFS
 85         depends on !SQUASHFS_CHOICE_DECOMP_BY_MOUNT
 86         help
 87           Squashfs now supports three parallelisation options for
 88           decompression.  Each one exhibits various trade-offs between
 89           decompression performance and CPU and memory usage.
 90 
 91           If in doubt, select "Single threaded compression"
 92 
 93 config SQUASHFS_COMPILE_DECOMP_SINGLE
 94         bool "Single threaded compression"
 95         select SQUASHFS_DECOMP_SINGLE
 96         help
 97           Traditionally Squashfs has used single-threaded decompression.
 98           Only one block (data or metadata) can be decompressed at any
 99           one time.  This limits CPU and memory usage to a minimum.
100 
101 config SQUASHFS_COMPILE_DECOMP_MULTI
102         bool "Use multiple decompressors for parallel I/O"
103         select SQUASHFS_DECOMP_MULTI
104         help
105           By default Squashfs uses a single decompressor but it gives
106           poor performance on parallel I/O workloads when using multiple CPU
107           machines due to waiting on decompressor availability.
108 
109           If you have a parallel I/O workload and your system has enough memory,
110           using this option may improve overall I/O performance.
111 
112           This decompressor implementation uses up to two parallel
113           decompressors per core.  It dynamically allocates decompressors
114           on a demand basis.
115 
116 config SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU
117         bool "Use percpu multiple decompressors for parallel I/O"
118         select SQUASHFS_DECOMP_MULTI_PERCPU
119         help
120           By default Squashfs uses a single decompressor but it gives
121           poor performance on parallel I/O workloads when using multiple CPU
122           machines due to waiting on decompressor availability.
123 
124           This decompressor implementation uses a maximum of one
125           decompressor per core.  It uses percpu variables to ensure
126           decompression is load-balanced across the cores.
127 endchoice
128 
129 config SQUASHFS_MOUNT_DECOMP_THREADS
130         bool "Add the mount parameter 'threads=' for squashfs"
131         depends on SQUASHFS
132         depends on SQUASHFS_DECOMP_MULTI
133         default n
134         help
135           Use threads= to set the decompression parallel mode and the number of threads.
136           If SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
137               threads=<single|multi|percpu|1|2|3|...>
138           else
139               threads=<2|3|...>
140           The upper limit is num_online_cpus() * 2.
141 
142 config SQUASHFS_XATTR
143         bool "Squashfs XATTR support"
144         depends on SQUASHFS
145         help
146           Saying Y here includes support for extended attributes (xattrs).
147           Xattrs are name:value pairs associated with inodes by
148           the kernel or by users (see the attr(5) manual page).
149 
150           If unsure, say N.
151 
152 config SQUASHFS_ZLIB
153         bool "Include support for ZLIB compressed file systems"
154         depends on SQUASHFS
155         select ZLIB_INFLATE
156         default y
157         help
158           ZLIB compression is the standard compression used by Squashfs
159           file systems.  It offers a good trade-off between compression
160           achieved and the amount of CPU time and memory necessary to
161           compress and decompress.
162 
163           If unsure, say Y.
164 
165 config SQUASHFS_LZ4
166         bool "Include support for LZ4 compressed file systems"
167         depends on SQUASHFS
168         select LZ4_DECOMPRESS
169         help
170           Saying Y here includes support for reading Squashfs file systems
171           compressed with LZ4 compression.  LZ4 compression is mainly
172           aimed at embedded systems with slower CPUs where the overheads
173           of zlib are too high.
174 
175           LZ4 is not the standard compression used in Squashfs and so most
176           file systems will be readable without selecting this option.
177 
178           If unsure, say N.
179 
180 config SQUASHFS_LZO
181         bool "Include support for LZO compressed file systems"
182         depends on SQUASHFS
183         select LZO_DECOMPRESS
184         help
185           Saying Y here includes support for reading Squashfs file systems
186           compressed with LZO compression.  LZO compression is mainly
187           aimed at embedded systems with slower CPUs where the overheads
188           of zlib are too high.
189 
190           LZO is not the standard compression used in Squashfs and so most
191           file systems will be readable without selecting this option.
192 
193           If unsure, say N.
194 
195 config SQUASHFS_XZ
196         bool "Include support for XZ compressed file systems"
197         depends on SQUASHFS
198         select XZ_DEC
199         help
200           Saying Y here includes support for reading Squashfs file systems
201           compressed with XZ compression.  XZ gives better compression than
202           the default zlib compression, at the expense of greater CPU and
203           memory overhead.
204 
205           XZ is not the standard compression used in Squashfs and so most
206           file systems will be readable without selecting this option.
207 
208           If unsure, say N.
209 
210 config SQUASHFS_ZSTD
211         bool "Include support for ZSTD compressed file systems"
212         depends on SQUASHFS
213         select ZSTD_DECOMPRESS
214         help
215           Saying Y here includes support for reading Squashfs file systems
216           compressed with ZSTD compression.  ZSTD gives better compression than
217           the default ZLIB compression, while using less CPU.
218 
219           ZSTD is not the standard compression used in Squashfs and so most
220           file systems will be readable without selecting this option.
221 
222           If unsure, say N.
223 
224 config SQUASHFS_4K_DEVBLK_SIZE
225         bool "Use 4K device block size?"
226         depends on SQUASHFS
227         help
228           By default Squashfs sets the dev block size (sb_min_blocksize)
229           to 1K or the smallest block size supported by the block device
230           (if larger).  This, because blocks are packed together and
231           unaligned in Squashfs, should reduce latency.
232 
233           This, however, gives poor performance on MTD NAND devices where
234           the optimal I/O size is 4K (even though the devices can support
235           smaller block sizes).
236 
237           Using a 4K device block size may also improve overall I/O
238           performance for some file access patterns (e.g. sequential
239           accesses of files in filesystem order) on all media.
240 
241           Setting this option will force Squashfs to use a 4K device block
242           size by default.
243 
244           If unsure, say N.
245 
246 config SQUASHFS_EMBEDDED
247         bool "Additional option for memory-constrained systems"
248         depends on SQUASHFS
249         help
250           Saying Y here allows you to specify cache size.
251 
252           If unsure, say N.
253 
254 config SQUASHFS_FRAGMENT_CACHE_SIZE
255         int "Number of fragments cached" if SQUASHFS_EMBEDDED
256         depends on SQUASHFS
257         default "3"
258         help
259           By default SquashFS caches the last 3 fragments read from
260           the filesystem.  Increasing this amount may mean SquashFS
261           has to re-read fragments less often from disk, at the expense
262           of extra system memory.  Decreasing this amount will mean
263           SquashFS uses less memory at the expense of extra reads from disk.
264 
265           Note there must be at least one cached fragment.  Anything
266           much more than three will probably not make much difference.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php