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