123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- config SQUASHFS
- tristate "SquashFS 4.0 - Squashed file system support"
- depends on BLOCK
- help
- Saying Y here includes support for SquashFS 4.0 (a Compressed
- Read-Only File System). Squashfs is a highly compressed read-only
- filesystem for Linux. It uses zlib, lzo or xz compression to
- compress both files, inodes and directories. Inodes in the system
- are very small and all blocks are packed to minimise data overhead.
- Block sizes greater than 4K are supported up to a maximum of 1 Mbytes
- (default block size 128K). SquashFS 4.0 supports 64 bit filesystems
- and files (larger than 4GB), full uid/gid information, hard links and
- timestamps.
- Squashfs is intended for general read-only filesystem use, for
- archival use (i.e. in cases where a .tar.gz file may be used), and in
- embedded systems where low overhead is needed. Further information
- and tools are available from http://squashfs.sourceforge.net.
- If you want to compile this as a module ( = code which can be
- inserted in and removed from the running kernel whenever you want),
- say M here. The module will be called squashfs. Note that the root
- file system (the one containing the directory /) cannot be compiled
- as a module.
- If unsure, say N.
- choice
- prompt "File decompression options"
- depends on SQUASHFS
- help
- Squashfs now supports two options for decompressing file
- data. Traditionally Squashfs has decompressed into an
- intermediate buffer and then memcopied it into the page cache.
- Squashfs now supports the ability to decompress directly into
- the page cache.
- If unsure, select "Decompress file data into an intermediate buffer"
- config SQUASHFS_FILE_CACHE
- bool "Decompress file data into an intermediate buffer"
- help
- Decompress file data into an intermediate buffer and then
- memcopy it into the page cache.
- config SQUASHFS_FILE_DIRECT
- bool "Decompress files directly into the page cache"
- help
- Directly decompress file data into the page cache.
- Doing so can significantly improve performance because
- it eliminates a memcpy and it also removes the lock contention
- on the single buffer.
- endchoice
- choice
- prompt "Decompressor parallelisation options"
- depends on SQUASHFS
- help
- Squashfs now supports three parallelisation options for
- decompression. Each one exhibits various trade-offs between
- decompression performance and CPU and memory usage.
- If in doubt, select "Single threaded compression"
- config SQUASHFS_DECOMP_SINGLE
- bool "Single threaded compression"
- help
- Traditionally Squashfs has used single-threaded decompression.
- Only one block (data or metadata) can be decompressed at any
- one time. This limits CPU and memory usage to a minimum.
- config SQUASHFS_DECOMP_MULTI
- bool "Use multiple decompressors for parallel I/O"
- help
- By default Squashfs uses a single decompressor but it gives
- poor performance on parallel I/O workloads when using multiple CPU
- machines due to waiting on decompressor availability.
- If you have a parallel I/O workload and your system has enough memory,
- using this option may improve overall I/O performance.
- This decompressor implementation uses up to two parallel
- decompressors per core. It dynamically allocates decompressors
- on a demand basis.
- config SQUASHFS_DECOMP_MULTI_PERCPU
- bool "Use percpu multiple decompressors for parallel I/O"
- help
- By default Squashfs uses a single decompressor but it gives
- poor performance on parallel I/O workloads when using multiple CPU
- machines due to waiting on decompressor availability.
- This decompressor implementation uses a maximum of one
- decompressor per core. It uses percpu variables to ensure
- decompression is load-balanced across the cores.
- endchoice
- config SQUASHFS_XATTR
- bool "Squashfs XATTR support"
- depends on SQUASHFS
- help
- Saying Y here includes support for extended attributes (xattrs).
- Xattrs are name:value pairs associated with inodes by
- the kernel or by users (see the attr(5) manual page).
- If unsure, say N.
- config SQUASHFS_ZLIB
- bool "Include support for ZLIB compressed file systems"
- depends on SQUASHFS
- select ZLIB_INFLATE
- default y
- help
- ZLIB compression is the standard compression used by Squashfs
- file systems. It offers a good trade-off between compression
- achieved and the amount of CPU time and memory necessary to
- compress and decompress.
- If unsure, say Y.
- config SQUASHFS_LZ4
- bool "Include support for LZ4 compressed file systems"
- depends on SQUASHFS
- select LZ4_DECOMPRESS
- help
- Saying Y here includes support for reading Squashfs file systems
- compressed with LZ4 compression. LZ4 compression is mainly
- aimed at embedded systems with slower CPUs where the overheads
- of zlib are too high.
- LZ4 is not the standard compression used in Squashfs and so most
- file systems will be readable without selecting this option.
- If unsure, say N.
- config SQUASHFS_LZO
- bool "Include support for LZO compressed file systems"
- depends on SQUASHFS
- select LZO_DECOMPRESS
- help
- Saying Y here includes support for reading Squashfs file systems
- compressed with LZO compression. LZO compression is mainly
- aimed at embedded systems with slower CPUs where the overheads
- of zlib are too high.
- LZO is not the standard compression used in Squashfs and so most
- file systems will be readable without selecting this option.
- If unsure, say N.
- config SQUASHFS_XZ
- bool "Include support for XZ compressed file systems"
- depends on SQUASHFS
- select XZ_DEC
- help
- Saying Y here includes support for reading Squashfs file systems
- compressed with XZ compression. XZ gives better compression than
- the default zlib compression, at the expense of greater CPU and
- memory overhead.
- XZ is not the standard compression used in Squashfs and so most
- file systems will be readable without selecting this option.
- If unsure, say N.
- config SQUASHFS_ZSTD
- bool "Include support for ZSTD compressed file systems"
- depends on SQUASHFS
- select ZSTD_DECOMPRESS
- help
- Saying Y here includes support for reading Squashfs file systems
- compressed with ZSTD compression. ZSTD gives better compression than
- the default ZLIB compression, while using less CPU.
- ZSTD is not the standard compression used in Squashfs and so most
- file systems will be readable without selecting this option.
- If unsure, say N.
- config SQUASHFS_4K_DEVBLK_SIZE
- bool "Use 4K device block size?"
- depends on SQUASHFS
- help
- By default Squashfs sets the dev block size (sb_min_blocksize)
- to 1K or the smallest block size supported by the block device
- (if larger). This, because blocks are packed together and
- unaligned in Squashfs, should reduce latency.
- This, however, gives poor performance on MTD NAND devices where
- the optimal I/O size is 4K (even though the devices can support
- smaller block sizes).
- Using a 4K device block size may also improve overall I/O
- performance for some file access patterns (e.g. sequential
- accesses of files in filesystem order) on all media.
- Setting this option will force Squashfs to use a 4K device block
- size by default.
- If unsure, say N.
- config SQUASHFS_EMBEDDED
- bool "Additional option for memory-constrained systems"
- depends on SQUASHFS
- help
- Saying Y here allows you to specify cache size.
- If unsure, say N.
- config SQUASHFS_FRAGMENT_CACHE_SIZE
- int "Number of fragments cached" if SQUASHFS_EMBEDDED
- depends on SQUASHFS
- default "3"
- help
- By default SquashFS caches the last 3 fragments read from
- the filesystem. Increasing this amount may mean SquashFS
- has to re-read fragments less often from disk, at the expense
- of extra system memory. Decreasing this amount will mean
- SquashFS uses less memory at the expense of extra reads from disk.
- Note there must be at least one cached fragment. Anything
- much more than three will probably not make much difference.
|