1 # SPDX-License-Identifier: GPL-2.0-only << 2 config SQUASHFS 1 config SQUASHFS 3 tristate "SquashFS 4.0 - Squashed file 2 tristate "SquashFS 4.0 - Squashed file system support" 4 depends on BLOCK 3 depends on BLOCK >> 4 select ZLIB_INFLATE 5 help 5 help 6 Saying Y here includes support for S 6 Saying Y here includes support for SquashFS 4.0 (a Compressed 7 Read-Only File System). Squashfs is 7 Read-Only File System). Squashfs is a highly compressed read-only 8 filesystem for Linux. It uses zlib, !! 8 filesystem for Linux. It uses zlib compression to compress both 9 compress both files, inodes and dire !! 9 files, inodes and directories. Inodes in the system are very small 10 are very small and all blocks are pa !! 10 and all blocks are packed to minimise data overhead. Block sizes 11 Block sizes greater than 4K are supp !! 11 greater than 4K are supported up to a maximum of 1 Mbytes (default 12 (default block size 128K). SquashFS !! 12 block size 128K). SquashFS 4.0 supports 64 bit filesystems and files 13 and files (larger than 4GB), full ui !! 13 (larger than 4GB), full uid/gid information, hard links and 14 timestamps. !! 14 timestamps. 15 15 16 Squashfs is intended for general rea 16 Squashfs is intended for general read-only filesystem use, for 17 archival use (i.e. in cases where a 17 archival use (i.e. in cases where a .tar.gz file may be used), and in 18 embedded systems where low overhead 18 embedded systems where low overhead is needed. Further information 19 and tools are available from http:// 19 and tools are available from http://squashfs.sourceforge.net. 20 20 21 If you want to compile this as a mod 21 If you want to compile this as a module ( = code which can be 22 inserted in and removed from the run 22 inserted in and removed from the running kernel whenever you want), 23 say M here. The module will be call !! 23 say M here and read <file:Documentation/modules.txt>. The module 24 file system (the one containing the !! 24 will be called squashfs. Note that the root file system (the one 25 as a module. !! 25 containing the directory /) cannot be compiled as a module. 26 26 27 If unsure, say N. 27 If unsure, say N. 28 28 29 choice !! 29 config SQUASHFS_EMBEDDED 30 prompt "File decompression options" << 31 depends on SQUASHFS << 32 help << 33 Squashfs now supports two options fo << 34 data. Traditionally Squashfs has de << 35 intermediate buffer and then memcopi << 36 Squashfs now supports the ability to << 37 the page cache. << 38 << 39 If unsure, select "Decompress file d << 40 << 41 config SQUASHFS_FILE_CACHE << 42 bool "Decompress file data into an int << 43 help << 44 Decompress file data into an interme << 45 memcopy it into the page cache. << 46 << 47 config SQUASHFS_FILE_DIRECT << 48 bool "Decompress files directly into t << 49 help << 50 Directly decompress file data into t << 51 Doing so can significantly improve p << 52 it eliminates a memcpy and it also r << 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 decompressio << 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 m << 79 decompression mode by setting "threa << 80 default Decompressor parallelisation << 81 << 82 choice << 83 prompt "Select decompression parallel << 84 depends on SQUASHFS << 85 depends on !SQUASHFS_CHOICE_DECOMP_BY_ << 86 help << 87 Squashfs now supports three parallel << 88 decompression. Each one exhibits va << 89 decompression performance and CPU an << 90 << 91 If in doubt, select "Single threaded << 92 << 93 config SQUASHFS_COMPILE_DECOMP_SINGLE << 94 bool "Single threaded compression" << 95 select SQUASHFS_DECOMP_SINGLE << 96 help << 97 Traditionally Squashfs has used sing << 98 Only one block (data or metadata) ca << 99 one time. This limits CPU and memor << 100 << 101 config SQUASHFS_COMPILE_DECOMP_MULTI << 102 bool "Use multiple decompressors for p << 103 select SQUASHFS_DECOMP_MULTI << 104 help << 105 By default Squashfs uses a single de << 106 poor performance on parallel I/O wor << 107 machines due to waiting on decompres << 108 << 109 If you have a parallel I/O workload << 110 using this option may improve overal << 111 << 112 This decompressor implementation use << 113 decompressors per core. It dynamica << 114 on a demand basis. << 115 << 116 config SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU << 117 bool "Use percpu multiple decompressor << 118 select SQUASHFS_DECOMP_MULTI_PERCPU << 119 help << 120 By default Squashfs uses a single de << 121 poor performance on parallel I/O wor << 122 machines due to waiting on decompres << 123 << 124 This decompressor implementation use << 125 decompressor per core. It uses perc << 126 decompression is load-balanced acros << 127 endchoice << 128 30 129 config SQUASHFS_MOUNT_DECOMP_THREADS !! 31 bool "Additional option for memory-constrained systems" 130 bool "Add the mount parameter 'threads << 131 depends on SQUASHFS 32 depends on SQUASHFS 132 depends on SQUASHFS_DECOMP_MULTI << 133 default n 33 default n 134 help << 135 Use threads= to set the decompressio << 136 If SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y << 137 threads=<single|multi|percpu|1|2 << 138 else << 139 threads=<2|3|...> << 140 The upper limit is num_online_cpus() << 141 << 142 config SQUASHFS_XATTR << 143 bool "Squashfs XATTR support" << 144 depends on SQUASHFS << 145 help << 146 Saying Y here includes support for e << 147 Xattrs are name:value pairs associat << 148 the kernel or by users (see the attr << 149 << 150 If unsure, say N. << 151 << 152 config SQUASHFS_ZLIB << 153 bool "Include support for ZLIB compres << 154 depends on SQUASHFS << 155 select ZLIB_INFLATE << 156 default y << 157 help << 158 ZLIB compression is the standard com << 159 file systems. It offers a good trad << 160 achieved and the amount of CPU time << 161 compress and decompress. << 162 << 163 If unsure, say Y. << 164 << 165 config SQUASHFS_LZ4 << 166 bool "Include support for LZ4 compress << 167 depends on SQUASHFS << 168 select LZ4_DECOMPRESS << 169 help << 170 Saying Y here includes support for r << 171 compressed with LZ4 compression. LZ << 172 aimed at embedded systems with slowe << 173 of zlib are too high. << 174 << 175 LZ4 is not the standard compression << 176 file systems will be readable withou << 177 << 178 If unsure, say N. << 179 << 180 config SQUASHFS_LZO << 181 bool "Include support for LZO compress << 182 depends on SQUASHFS << 183 select LZO_DECOMPRESS << 184 help << 185 Saying Y here includes support for r << 186 compressed with LZO compression. LZ << 187 aimed at embedded systems with slowe << 188 of zlib are too high. << 189 << 190 LZO is not the standard compression << 191 file systems will be readable withou << 192 << 193 If unsure, say N. << 194 << 195 config SQUASHFS_XZ << 196 bool "Include support for XZ compresse << 197 depends on SQUASHFS << 198 select XZ_DEC << 199 help << 200 Saying Y here includes support for r << 201 compressed with XZ compression. XZ << 202 the default zlib compression, at the << 203 memory overhead. << 204 << 205 XZ is not the standard compression u << 206 file systems will be readable withou << 207 << 208 If unsure, say N. << 209 << 210 config SQUASHFS_ZSTD << 211 bool "Include support for ZSTD compres << 212 depends on SQUASHFS << 213 select ZSTD_DECOMPRESS << 214 help << 215 Saying Y here includes support for r << 216 compressed with ZSTD compression. Z << 217 the default ZLIB compression, while << 218 << 219 ZSTD is not the standard compression << 220 file systems will be readable withou << 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 blo << 229 to 1K or the smallest block size sup << 230 (if larger). This, because blocks a << 231 unaligned in Squashfs, should reduce << 232 << 233 This, however, gives poor performanc << 234 the optimal I/O size is 4K (even tho << 235 smaller block sizes). << 236 << 237 Using a 4K device block size may als << 238 performance for some file access pat << 239 accesses of files in filesystem orde << 240 << 241 Setting this option will force Squas << 242 size by default. << 243 << 244 If unsure, say N. << 245 << 246 config SQUASHFS_EMBEDDED << 247 bool "Additional option for memory-con << 248 depends on SQUASHFS << 249 help 34 help 250 Saying Y here allows you to specify 35 Saying Y here allows you to specify cache size. 251 36 252 If unsure, say N. 37 If unsure, say N. 253 38 254 config SQUASHFS_FRAGMENT_CACHE_SIZE 39 config SQUASHFS_FRAGMENT_CACHE_SIZE 255 int "Number of fragments cached" if SQ 40 int "Number of fragments cached" if SQUASHFS_EMBEDDED 256 depends on SQUASHFS 41 depends on SQUASHFS 257 default "3" 42 default "3" 258 help 43 help 259 By default SquashFS caches the last 44 By default SquashFS caches the last 3 fragments read from 260 the filesystem. Increasing this amo 45 the filesystem. Increasing this amount may mean SquashFS 261 has to re-read fragments less often 46 has to re-read fragments less often from disk, at the expense 262 of extra system memory. Decreasing 47 of extra system memory. Decreasing this amount will mean 263 SquashFS uses less memory at the exp 48 SquashFS uses less memory at the expense of extra reads from disk. 264 49 265 Note there must be at least one cach 50 Note there must be at least one cached fragment. Anything 266 much more than three will probably n 51 much more than three will probably not make much difference.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.