cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (10129B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2#
      3# File system configuration
      4#
      5
      6menu "File systems"
      7
      8# Use unaligned word dcache accesses
      9config DCACHE_WORD_ACCESS
     10       bool
     11
     12config VALIDATE_FS_PARSER
     13	bool "Validate filesystem parameter description"
     14	help
     15	  Enable this to perform validation of the parameter description for a
     16	  filesystem when it is registered.
     17
     18config FS_IOMAP
     19	bool
     20
     21if BLOCK
     22
     23source "fs/ext2/Kconfig"
     24source "fs/ext4/Kconfig"
     25source "fs/jbd2/Kconfig"
     26
     27config FS_MBCACHE
     28# Meta block cache for Extended Attributes (ext2/ext3/ext4)
     29	tristate
     30	default y if EXT2_FS=y && EXT2_FS_XATTR
     31	default y if EXT4_FS=y
     32	default m if EXT2_FS_XATTR || EXT4_FS
     33
     34source "fs/reiserfs/Kconfig"
     35source "fs/jfs/Kconfig"
     36
     37source "fs/xfs/Kconfig"
     38source "fs/gfs2/Kconfig"
     39source "fs/ocfs2/Kconfig"
     40source "fs/btrfs/Kconfig"
     41source "fs/nilfs2/Kconfig"
     42source "fs/f2fs/Kconfig"
     43source "fs/zonefs/Kconfig"
     44
     45endif # BLOCK
     46
     47config FS_DAX
     48	bool "File system based Direct Access (DAX) support"
     49	depends on MMU
     50	depends on !(ARM || MIPS || SPARC)
     51	depends on ZONE_DEVICE || FS_DAX_LIMITED
     52	select FS_IOMAP
     53	select DAX
     54	help
     55	  Direct Access (DAX) can be used on memory-backed block devices.
     56	  If the block device supports DAX and the filesystem supports DAX,
     57	  then you can avoid using the pagecache to buffer I/Os.  Turning
     58	  on this option will compile in support for DAX.
     59
     60	  For a DAX device to support file system access it needs to have
     61	  struct pages.  For the nfit based NVDIMMs this can be enabled
     62	  using the ndctl utility:
     63
     64		# ndctl create-namespace --force --reconfig=namespace0.0 \
     65			--mode=fsdax --map=mem
     66
     67	  See the 'create-namespace' man page for details on the overhead of
     68	  --map=mem:
     69	  https://docs.pmem.io/ndctl-user-guide/ndctl-man-pages/ndctl-create-namespace
     70
     71          For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. For most
     72	  file systems DAX support needs to be manually enabled globally or
     73	  per-inode using a mount option as well.  See the file documentation in
     74	  Documentation/filesystems/dax.rst for details.
     75
     76	  If you do not have a block device that is capable of using this,
     77	  or if unsure, say N.  Saying Y will increase the size of the kernel
     78	  by about 5kB.
     79
     80config FS_DAX_PMD
     81	bool
     82	default FS_DAX
     83	depends on FS_DAX
     84	depends on ZONE_DEVICE
     85	depends on TRANSPARENT_HUGEPAGE
     86
     87# Selected by DAX drivers that do not expect filesystem DAX to support
     88# get_user_pages() of DAX mappings. I.e. "limited" indicates no support
     89# for fork() of processes with MAP_SHARED mappings or support for
     90# direct-I/O to a DAX mapping.
     91config FS_DAX_LIMITED
     92	bool
     93
     94# Posix ACL utility routines
     95#
     96# Note: Posix ACLs can be implemented without these helpers.  Never use
     97# this symbol for ifdefs in core code.
     98#
     99config FS_POSIX_ACL
    100	def_bool n
    101
    102config EXPORTFS
    103	tristate
    104
    105config EXPORTFS_BLOCK_OPS
    106	bool "Enable filesystem export operations for block IO"
    107	help
    108	  This option enables the export operations for a filesystem to support
    109	  external block IO.
    110
    111config FILE_LOCKING
    112	bool "Enable POSIX file locking API" if EXPERT
    113	default y
    114	help
    115	  This option enables standard file locking support, required
    116          for filesystems like NFS and for the flock() system
    117          call. Disabling this option saves about 11k.
    118
    119source "fs/crypto/Kconfig"
    120
    121source "fs/verity/Kconfig"
    122
    123source "fs/notify/Kconfig"
    124
    125source "fs/quota/Kconfig"
    126
    127source "fs/autofs/Kconfig"
    128source "fs/fuse/Kconfig"
    129source "fs/overlayfs/Kconfig"
    130
    131menu "Caches"
    132
    133source "fs/netfs/Kconfig"
    134source "fs/fscache/Kconfig"
    135source "fs/cachefiles/Kconfig"
    136
    137endmenu
    138
    139if BLOCK
    140menu "CD-ROM/DVD Filesystems"
    141
    142source "fs/isofs/Kconfig"
    143source "fs/udf/Kconfig"
    144
    145endmenu
    146endif # BLOCK
    147
    148if BLOCK
    149menu "DOS/FAT/EXFAT/NT Filesystems"
    150
    151source "fs/fat/Kconfig"
    152source "fs/exfat/Kconfig"
    153source "fs/ntfs/Kconfig"
    154source "fs/ntfs3/Kconfig"
    155
    156endmenu
    157endif # BLOCK
    158
    159menu "Pseudo filesystems"
    160
    161source "fs/proc/Kconfig"
    162source "fs/kernfs/Kconfig"
    163source "fs/sysfs/Kconfig"
    164
    165config TMPFS
    166	bool "Tmpfs virtual memory file system support (former shm fs)"
    167	depends on SHMEM
    168	help
    169	  Tmpfs is a file system which keeps all files in virtual memory.
    170
    171	  Everything in tmpfs is temporary in the sense that no files will be
    172	  created on your hard drive. The files live in memory and swap
    173	  space. If you unmount a tmpfs instance, everything stored therein is
    174	  lost.
    175
    176	  See <file:Documentation/filesystems/tmpfs.rst> for details.
    177
    178config TMPFS_POSIX_ACL
    179	bool "Tmpfs POSIX Access Control Lists"
    180	depends on TMPFS
    181	select TMPFS_XATTR
    182	select FS_POSIX_ACL
    183	help
    184	  POSIX Access Control Lists (ACLs) support additional access rights
    185	  for users and groups beyond the standard owner/group/world scheme,
    186	  and this option selects support for ACLs specifically for tmpfs
    187	  filesystems.
    188
    189	  If you've selected TMPFS, it's possible that you'll also need
    190	  this option as there are a number of Linux distros that require
    191	  POSIX ACL support under /dev for certain features to work properly.
    192	  For example, some distros need this feature for ALSA-related /dev
    193	  files for sound to work properly.  In short, if you're not sure,
    194	  say Y.
    195
    196config TMPFS_XATTR
    197	bool "Tmpfs extended attributes"
    198	depends on TMPFS
    199	default n
    200	help
    201	  Extended attributes are name:value pairs associated with inodes by
    202	  the kernel or by users (see the attr(5) manual page for details).
    203
    204	  Currently this enables support for the trusted.* and
    205	  security.* namespaces.
    206
    207	  You need this for POSIX ACL support on tmpfs.
    208
    209	  If unsure, say N.
    210
    211config TMPFS_INODE64
    212	bool "Use 64-bit ino_t by default in tmpfs"
    213	depends on TMPFS && 64BIT
    214	default n
    215	help
    216	  tmpfs has historically used only inode numbers as wide as an unsigned
    217	  int. In some cases this can cause wraparound, potentially resulting
    218	  in multiple files with the same inode number on a single device. This
    219	  option makes tmpfs use the full width of ino_t by default, without
    220	  needing to specify the inode64 option when mounting.
    221
    222	  But if a long-lived tmpfs is to be accessed by 32-bit applications so
    223	  ancient that opening a file larger than 2GiB fails with EINVAL, then
    224	  the INODE64 config option and inode64 mount option risk operations
    225	  failing with EOVERFLOW once 33-bit inode numbers are reached.
    226
    227	  To override this configured default, use the inode32 or inode64
    228	  option when mounting.
    229
    230	  If unsure, say N.
    231
    232config ARCH_SUPPORTS_HUGETLBFS
    233	def_bool n
    234
    235config HUGETLBFS
    236	bool "HugeTLB file system support"
    237	depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN
    238	help
    239	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
    240	  ramfs. For architectures that support it, say Y here and read
    241	  <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
    242
    243	  If unsure, say N.
    244
    245config HUGETLB_PAGE
    246	def_bool HUGETLBFS
    247
    248#
    249# Select this config option from the architecture Kconfig, if it is preferred
    250# to enable the feature of minimizing overhead of struct page associated with
    251# each HugeTLB page.
    252#
    253config ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
    254	bool
    255
    256config HUGETLB_PAGE_OPTIMIZE_VMEMMAP
    257	def_bool HUGETLB_PAGE
    258	depends on ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
    259	depends on SPARSEMEM_VMEMMAP
    260
    261config HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON
    262	bool "Default optimizing vmemmap pages of HugeTLB to on"
    263	default n
    264	depends on HUGETLB_PAGE_OPTIMIZE_VMEMMAP
    265	help
    266	  When using HUGETLB_PAGE_OPTIMIZE_VMEMMAP, the optimizing unused vmemmap
    267	  pages associated with each HugeTLB page is default off. Say Y here
    268	  to enable optimizing vmemmap pages of HugeTLB by default. It can then
    269	  be disabled on the command line via hugetlb_free_vmemmap=off.
    270
    271config MEMFD_CREATE
    272	def_bool TMPFS || HUGETLBFS
    273
    274config ARCH_HAS_GIGANTIC_PAGE
    275	bool
    276
    277source "fs/configfs/Kconfig"
    278source "fs/efivarfs/Kconfig"
    279
    280endmenu
    281
    282menuconfig MISC_FILESYSTEMS
    283	bool "Miscellaneous filesystems"
    284	default y
    285	help
    286	  Say Y here to get to see options for various miscellaneous
    287	  filesystems, such as filesystems that came from other
    288	  operating systems.
    289
    290	  This option alone does not add any kernel code.
    291
    292	  If you say N, all options in this submenu will be skipped and
    293	  disabled; if unsure, say Y here.
    294
    295if MISC_FILESYSTEMS
    296
    297source "fs/orangefs/Kconfig"
    298source "fs/adfs/Kconfig"
    299source "fs/affs/Kconfig"
    300source "fs/ecryptfs/Kconfig"
    301source "fs/hfs/Kconfig"
    302source "fs/hfsplus/Kconfig"
    303source "fs/befs/Kconfig"
    304source "fs/bfs/Kconfig"
    305source "fs/efs/Kconfig"
    306source "fs/jffs2/Kconfig"
    307# UBIFS File system configuration
    308source "fs/ubifs/Kconfig"
    309source "fs/cramfs/Kconfig"
    310source "fs/squashfs/Kconfig"
    311source "fs/freevxfs/Kconfig"
    312source "fs/minix/Kconfig"
    313source "fs/omfs/Kconfig"
    314source "fs/hpfs/Kconfig"
    315source "fs/qnx4/Kconfig"
    316source "fs/qnx6/Kconfig"
    317source "fs/romfs/Kconfig"
    318source "fs/pstore/Kconfig"
    319source "fs/sysv/Kconfig"
    320source "fs/ufs/Kconfig"
    321source "fs/erofs/Kconfig"
    322source "fs/vboxsf/Kconfig"
    323
    324endif # MISC_FILESYSTEMS
    325
    326menuconfig NETWORK_FILESYSTEMS
    327	bool "Network File Systems"
    328	default y
    329	depends on NET
    330	help
    331	  Say Y here to get to see options for network filesystems and
    332	  filesystem-related networking code, such as NFS daemon and
    333	  RPCSEC security modules.
    334
    335	  This option alone does not add any kernel code.
    336
    337	  If you say N, all options in this submenu will be skipped and
    338	  disabled; if unsure, say Y here.
    339
    340if NETWORK_FILESYSTEMS
    341
    342source "fs/nfs/Kconfig"
    343source "fs/nfsd/Kconfig"
    344
    345config GRACE_PERIOD
    346	tristate
    347
    348config LOCKD
    349	tristate
    350	depends on FILE_LOCKING
    351	select GRACE_PERIOD
    352
    353config LOCKD_V4
    354	bool
    355	depends on NFSD || NFS_V3
    356	depends on FILE_LOCKING
    357	default y
    358
    359config NFS_ACL_SUPPORT
    360	tristate
    361	select FS_POSIX_ACL
    362
    363config NFS_COMMON
    364	bool
    365	depends on NFSD || NFS_FS || LOCKD
    366	default y
    367
    368config NFS_V4_2_SSC_HELPER
    369	bool
    370	default y if NFS_V4_2
    371
    372source "net/sunrpc/Kconfig"
    373source "fs/ceph/Kconfig"
    374
    375source "fs/cifs/Kconfig"
    376source "fs/ksmbd/Kconfig"
    377
    378config SMBFS_COMMON
    379	tristate
    380	default y if CIFS=y || SMB_SERVER=y
    381	default m if CIFS=m || SMB_SERVER=m
    382
    383source "fs/coda/Kconfig"
    384source "fs/afs/Kconfig"
    385source "fs/9p/Kconfig"
    386
    387endif # NETWORK_FILESYSTEMS
    388
    389source "fs/nls/Kconfig"
    390source "fs/dlm/Kconfig"
    391source "fs/unicode/Kconfig"
    392
    393config IO_WQ
    394	bool
    395
    396endmenu