Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / fs / squashfs / Kconfig
diff --git a/kernel/fs/squashfs/Kconfig b/kernel/fs/squashfs/Kconfig
new file mode 100644 (file)
index 0000000..ffb093e
--- /dev/null
@@ -0,0 +1,210 @@
+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_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.