Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    2) config DEFCONFIG_LIST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    3) 	string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    4) 	depends on !UML
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    5) 	option defconfig_list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    6) 	default "/lib/modules/$(shell,uname -r)/.config"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    7) 	default "/etc/kernel-config"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    8) 	default "/boot/config-$(shell,uname -r)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    9) 	default "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   11) config CC_VERSION_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   12) 	string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   13) 	default "$(CC_VERSION_TEXT)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   14) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   15) 	  This is used in unclear ways:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   17) 	  - Re-run Kconfig when the compiler is updated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   18) 	    The 'default' property references the environment variable,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   19) 	    CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   20) 	    When the compiler is updated, Kconfig will be invoked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   22) 	  - Ensure full rebuild when the compier is updated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   23) 	    include/linux/kconfig.h contains this option in the comment line so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   24) 	    fixdep adds include/config/cc/version/text.h into the auto-generated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   25) 	    dependency. When the compiler is updated, syncconfig will touch it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   26) 	    and then every file will be rebuilt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   28) config CC_IS_GCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   29) 	def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q gcc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   31) config GCC_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   32) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   33) 	default $(shell,$(srctree)/scripts/gcc-version.sh $(CC)) if CC_IS_GCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   34) 	default 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   36) config LD_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   37) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   38) 	default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   39) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   40) config CC_IS_CLANG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   41) 	def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q clang)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   43) config LD_IS_LLD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   44) 	def_bool $(success,$(LD) -v | head -n 1 | grep -q LLD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   46) config CLANG_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   47) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   48) 	default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   50) config LLD_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   51) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   52) 	default $(shell,$(srctree)/scripts/lld-version.sh $(LD))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   54) config CC_CAN_LINK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   55) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   56) 	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   57) 	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   59) config CC_CAN_LINK_STATIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   60) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   61) 	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   62) 	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   64) config CC_HAS_ASM_GOTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   65) 	def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   67) config CC_HAS_ASM_GOTO_OUTPUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   68) 	depends on CC_HAS_ASM_GOTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   69) 	def_bool $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   71) config TOOLS_SUPPORT_RELR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   72) 	def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   74) config CC_HAS_ASM_INLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   75) 	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   77) config CONSTRUCTORS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   78) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   79) 	depends on !UML
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   81) config IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   82) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   84) config BUILDTIME_TABLE_SORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   85) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   87) config THREAD_INFO_IN_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   88) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   89) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   90) 	  Select this to move thread_info off the stack into task_struct.  To
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   91) 	  make this work, an arch will need to remove all thread_info fields
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   92) 	  except flags and fix any runtime bugs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   94) 	  One subtle change that will be needed is to use try_get_task_stack()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   95) 	  and put_task_stack() in save_thread_stack_tsk() and get_wchan().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   97) menu "General setup"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   99) config BROKEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  100) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  102) config BROKEN_ON_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  103) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  104) 	depends on BROKEN || !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  105) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  107) config INIT_ENV_ARG_LIMIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  108) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  109) 	default 32 if !UML
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  110) 	default 128 if UML
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  111) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  112) 	  Maximum of each of the number of arguments and environment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  113) 	  variables passed to init from the kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  115) config COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  116) 	bool "Compile also drivers which will not load"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  117) 	depends on HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  118) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  119) 	  Some drivers can be compiled on a different platform than they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  120) 	  intended to be run on. Despite they cannot be loaded there (or even
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  121) 	  when they load they cannot be used due to missing HW support),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  122) 	  developers still, opposing to distributors, might want to build such
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  123) 	  drivers to compile-test them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  125) 	  If you are a developer and want to build everything available, say Y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  126) 	  here. If you are a user/distributor, say N here to exclude useless
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  127) 	  drivers to be distributed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  129) config UAPI_HEADER_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  130) 	bool "Compile test UAPI headers"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  131) 	depends on HEADERS_INSTALL && CC_CAN_LINK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  132) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  133) 	  Compile test headers exported to user-space to ensure they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  134) 	  self-contained, i.e. compilable as standalone units.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  136) 	  If you are a developer or tester and want to ensure the exported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  137) 	  headers are self-contained, say Y here. Otherwise, choose N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  139) config LOCALVERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  140) 	string "Local version - append to kernel release"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  141) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  142) 	  Append an extra string to the end of your kernel version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  143) 	  This will show up when you type uname, for example.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  144) 	  The string you set here will be appended after the contents of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  145) 	  any files with a filename matching localversion* in your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  146) 	  object and source tree, in that order.  Your total string can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  147) 	  be a maximum of 64 characters.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  149) config LOCALVERSION_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  150) 	bool "Automatically append version information to the version string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  151) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  152) 	depends on !COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  153) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  154) 	  This will try to automatically determine if the current tree is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  155) 	  release tree by looking for git tags that belong to the current
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  156) 	  top of tree revision.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  157) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  158) 	  A string of the format -gxxxxxxxx will be added to the localversion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  159) 	  if a git-based tree is found.  The string generated by this will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  160) 	  appended after any matching localversion* files, and after the value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  161) 	  set in CONFIG_LOCALVERSION.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  163) 	  (The actual string used here is the first eight characters produced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  164) 	  by running the command:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  166) 	    $ git rev-parse --verify HEAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  168) 	  which is done within the script "scripts/setlocalversion".)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  170) config BUILD_SALT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  171) 	string "Build ID Salt"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  172) 	default ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  173) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  174) 	  The build ID is used to link binaries and their debug info. Setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  175) 	  this option will use the value in the calculation of the build id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  176) 	  This is mostly useful for distributions which want to ensure the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  177) 	  build is unique between builds. It's safe to leave the default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  179) config HAVE_KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  180) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  182) config HAVE_KERNEL_BZIP2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  183) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  185) config HAVE_KERNEL_LZMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  186) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  188) config HAVE_KERNEL_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  189) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  190) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  191) config HAVE_KERNEL_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  192) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  193) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  194) config HAVE_KERNEL_LZ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  195) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  197) config HAVE_KERNEL_ZSTD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  198) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  200) config HAVE_KERNEL_UNCOMPRESSED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  201) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  203) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  204) 	prompt "Kernel compression mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  205) 	default KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  206) 	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_ZSTD || HAVE_KERNEL_UNCOMPRESSED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  207) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  208) 	  The linux kernel is a kind of self-extracting executable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  209) 	  Several compression algorithms are available, which differ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  210) 	  in efficiency, compression and decompression speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  211) 	  Compression speed is only relevant when building a kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  212) 	  Decompression speed is relevant at each boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  214) 	  If you have any problems with bzip2 or lzma compressed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  215) 	  kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  216) 	  version of this functionality (bzip2 only), for 2.4, was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  217) 	  supplied by Christian Ludwig)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  218) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  219) 	  High compression options are mostly useful for users, who
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  220) 	  are low on disk space (embedded systems), but for whom ram
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  221) 	  size matters less.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  222) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  223) 	  If in doubt, select 'gzip'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  225) config KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  226) 	bool "Gzip"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  227) 	depends on HAVE_KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  228) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  229) 	  The old and tried gzip compression. It provides a good balance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  230) 	  between compression ratio and decompression speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  232) config KERNEL_BZIP2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  233) 	bool "Bzip2"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  234) 	depends on HAVE_KERNEL_BZIP2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  235) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  236) 	  Its compression ratio and speed is intermediate.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  237) 	  Decompression speed is slowest among the choices.  The kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  238) 	  size is about 10% smaller with bzip2, in comparison to gzip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  239) 	  Bzip2 uses a large amount of memory. For modern kernels you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  240) 	  will need at least 8MB RAM or more for booting.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  241) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  242) config KERNEL_LZMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  243) 	bool "LZMA"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  244) 	depends on HAVE_KERNEL_LZMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  245) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  246) 	  This compression algorithm's ratio is best.  Decompression speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  247) 	  is between gzip and bzip2.  Compression is slowest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  248) 	  The kernel size is about 33% smaller with LZMA in comparison to gzip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  250) config KERNEL_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  251) 	bool "XZ"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  252) 	depends on HAVE_KERNEL_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  253) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  254) 	  XZ uses the LZMA2 algorithm and instruction set specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  255) 	  BCJ filters which can improve compression ratio of executable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  256) 	  code. The size of the kernel is about 30% smaller with XZ in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  257) 	  comparison to gzip. On architectures for which there is a BCJ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  258) 	  filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  259) 	  will create a few percent smaller kernel than plain LZMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  260) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  261) 	  The speed is about the same as with LZMA: The decompression
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  262) 	  speed of XZ is better than that of bzip2 but worse than gzip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  263) 	  and LZO. Compression is slow.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  264) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  265) config KERNEL_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  266) 	bool "LZO"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  267) 	depends on HAVE_KERNEL_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  268) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  269) 	  Its compression ratio is the poorest among the choices. The kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  270) 	  size is about 10% bigger than gzip; however its speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  271) 	  (both compression and decompression) is the fastest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  273) config KERNEL_LZ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  274) 	bool "LZ4"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  275) 	depends on HAVE_KERNEL_LZ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  276) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  277) 	  LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  278) 	  A preliminary version of LZ4 de/compression tool is available at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  279) 	  <https://code.google.com/p/lz4/>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  280) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  281) 	  Its compression ratio is worse than LZO. The size of the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  282) 	  is about 8% bigger than LZO. But the decompression speed is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  283) 	  faster than LZO.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  285) config KERNEL_ZSTD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  286) 	bool "ZSTD"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  287) 	depends on HAVE_KERNEL_ZSTD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  288) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  289) 	  ZSTD is a compression algorithm targeting intermediate compression
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  290) 	  with fast decompression speed. It will compress better than GZIP and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  291) 	  decompress around the same speed as LZO, but slower than LZ4. You
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  292) 	  will need at least 192 KB RAM or more for booting. The zstd command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  293) 	  line tool is required for compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  294) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  295) config KERNEL_UNCOMPRESSED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  296) 	bool "None"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  297) 	depends on HAVE_KERNEL_UNCOMPRESSED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  298) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  299) 	  Produce uncompressed kernel image. This option is usually not what
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  300) 	  you want. It is useful for debugging the kernel in slow simulation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  301) 	  environments, where decompressing and moving the kernel is awfully
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  302) 	  slow. This option allows early boot code to skip the decompressor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  303) 	  and jump right at uncompressed kernel image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  304) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  305) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  306) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  307) config DEFAULT_INIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  308) 	string "Default init path"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  309) 	default ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  310) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  311) 	  This option determines the default init for the system if no init=
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  312) 	  option is passed on the kernel command line. If the requested path is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  313) 	  not present, we will still then move on to attempting further
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  314) 	  locations (e.g. /sbin/init, etc). If this is empty, we will just use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  315) 	  the fallback list when init= is not passed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  316) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  317) config DEFAULT_HOSTNAME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  318) 	string "Default hostname"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  319) 	default "(none)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  320) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  321) 	  This option determines the default system hostname before userspace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  322) 	  calls sethostname(2). The kernel traditionally uses "(none)" here,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  323) 	  but you may wish to use a different default here to make a minimal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  324) 	  system more usable with less configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  325) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  326) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  327) # For some reason microblaze and nios2 hard code SWAP=n.  Hopefully we can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  328) # add proper SWAP support to them, in which case this can be remove.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  329) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  330) config ARCH_NO_SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  331) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  333) config SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  334) 	bool "Support for paging of anonymous memory (swap)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  335) 	depends on MMU && BLOCK && !ARCH_NO_SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  336) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  337) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  338) 	  This option allows you to choose whether you want to have support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  339) 	  for so called swap devices or swap files in your kernel that are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  340) 	  used to provide more virtual memory than the actual RAM present
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  341) 	  in your computer.  If unsure say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  342) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  343) config SYSVIPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  344) 	bool "System V IPC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  345) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  346) 	  Inter Process Communication is a suite of library functions and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  347) 	  system calls which let processes (running programs) synchronize and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  348) 	  exchange information. It is generally considered to be a good thing,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  349) 	  and some programs won't run unless you say Y here. In particular, if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  350) 	  you want to run the DOS emulator dosemu under Linux (read the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  351) 	  DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  352) 	  you'll need to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  353) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  354) 	  You can find documentation about IPC with "info ipc" and also in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  355) 	  section 6.4 of the Linux Programmer's Guide, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  356) 	  <http://www.tldp.org/guides.html>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  357) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  358) config SYSVIPC_SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  359) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  360) 	depends on SYSVIPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  361) 	depends on SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  362) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  363) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  364) config POSIX_MQUEUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  365) 	bool "POSIX Message Queues"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  366) 	depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  367) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  368) 	  POSIX variant of message queues is a part of IPC. In POSIX message
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  369) 	  queues every message has a priority which decides about succession
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  370) 	  of receiving it by a process. If you want to compile and run
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  371) 	  programs written e.g. for Solaris with use of its POSIX message
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  372) 	  queues (functions mq_*) say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  374) 	  POSIX message queues are visible as a filesystem called 'mqueue'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  375) 	  and can be mounted somewhere if you want to do filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  376) 	  operations on message queues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  377) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  378) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  380) config POSIX_MQUEUE_SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  381) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  382) 	depends on POSIX_MQUEUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  383) 	depends on SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  384) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  385) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  386) config WATCH_QUEUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  387) 	bool "General notification queue"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  388) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  389) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  390) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  391) 	  This is a general notification queue for the kernel to pass events to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  392) 	  userspace by splicing them into pipes.  It can be used in conjunction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  393) 	  with watches for key/keyring change notifications and device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  394) 	  notifications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  395) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  396) 	  See Documentation/watch_queue.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  397) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  398) config CROSS_MEMORY_ATTACH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  399) 	bool "Enable process_vm_readv/writev syscalls"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  400) 	depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  401) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  402) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  403) 	  Enabling this option adds the system calls process_vm_readv and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  404) 	  process_vm_writev which allow a process with the correct privileges
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  405) 	  to directly read from or write to another process' address space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  406) 	  See the man page for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  407) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  408) config USELIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  409) 	bool "uselib syscall"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  410) 	def_bool ALPHA || M68K || SPARC || X86_32 || IA32_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  411) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  412) 	  This option enables the uselib syscall, a system call used in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  413) 	  dynamic linker from libc5 and earlier.  glibc does not use this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  414) 	  system call.  If you intend to run programs built on libc5 or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  415) 	  earlier, you may need to enable this syscall.  Current systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  416) 	  running glibc can safely disable this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  417) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  418) config AUDIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  419) 	bool "Auditing support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  420) 	depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  421) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  422) 	  Enable auditing infrastructure that can be used with another
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  423) 	  kernel subsystem, such as SELinux (which requires this for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  424) 	  logging of avc messages output).  System call auditing is included
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  425) 	  on architectures which support it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  426) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  427) config HAVE_ARCH_AUDITSYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  428) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  430) config AUDITSYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  431) 	def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  432) 	depends on AUDIT && HAVE_ARCH_AUDITSYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  433) 	select FSNOTIFY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  434) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  435) source "kernel/irq/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  436) source "kernel/time/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  437) source "kernel/Kconfig.preempt"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  438) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  439) menu "CPU/Task time and stats accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  441) config VIRT_CPU_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  442) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  443) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  444) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  445) 	prompt "Cputime accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  446) 	default TICK_CPU_ACCOUNTING if !PPC64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  447) 	default VIRT_CPU_ACCOUNTING_NATIVE if PPC64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  448) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  449) # Kind of a stub config for the pure tick based cputime accounting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  450) config TICK_CPU_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  451) 	bool "Simple tick based cputime accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  452) 	depends on !S390 && !NO_HZ_FULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  453) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  454) 	  This is the basic tick based cputime accounting that maintains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  455) 	  statistics about user, system and idle time spent on per jiffies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  456) 	  granularity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  457) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  458) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  459) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  460) config VIRT_CPU_ACCOUNTING_NATIVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  461) 	bool "Deterministic task and CPU time accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  462) 	depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  463) 	select VIRT_CPU_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  464) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  465) 	  Select this option to enable more accurate task and CPU time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  466) 	  accounting.  This is done by reading a CPU counter on each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  467) 	  kernel entry and exit and on transitions within the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  468) 	  between system, softirq and hardirq state, so there is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  469) 	  small performance impact.  In the case of s390 or IBM POWER > 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  470) 	  this also enables accounting of stolen time on logically-partitioned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  471) 	  systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  472) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  473) config VIRT_CPU_ACCOUNTING_GEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  474) 	bool "Full dynticks CPU time accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  475) 	depends on HAVE_CONTEXT_TRACKING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  476) 	depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  477) 	depends on GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  478) 	select VIRT_CPU_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  479) 	select CONTEXT_TRACKING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  480) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  481) 	  Select this option to enable task and CPU time accounting on full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  482) 	  dynticks systems. This accounting is implemented by watching every
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  483) 	  kernel-user boundaries using the context tracking subsystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  484) 	  The accounting is thus performed at the expense of some significant
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  485) 	  overhead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  486) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  487) 	  For now this is only useful if you are working on the full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  488) 	  dynticks subsystem development.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  489) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  490) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  491) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  492) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  493) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  494) config IRQ_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  495) 	bool "Fine granularity task level IRQ time accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  496) 	depends on HAVE_IRQ_TIME_ACCOUNTING && !VIRT_CPU_ACCOUNTING_NATIVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  497) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  498) 	  Select this option to enable fine granularity task irq time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  499) 	  accounting. This is done by reading a timestamp on each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  500) 	  transitions between softirq and hardirq state, so there can be a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  501) 	  small performance impact.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  502) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  503) 	  If in doubt, say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  504) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  505) config HAVE_SCHED_AVG_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  506) 	def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  507) 	depends on IRQ_TIME_ACCOUNTING || PARAVIRT_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  508) 	depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  509) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  510) config SCHED_THERMAL_PRESSURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  511) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  512) 	default y if ARM && ARM_CPU_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  513) 	default y if ARM64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  514) 	depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  515) 	depends on CPU_FREQ_THERMAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  516) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  517) 	  Select this option to enable thermal pressure accounting in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  518) 	  scheduler. Thermal pressure is the value conveyed to the scheduler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  519) 	  that reflects the reduction in CPU compute capacity resulted from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  520) 	  thermal throttling. Thermal throttling occurs when the performance of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  521) 	  a CPU is capped due to high operating temperatures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  522) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  523) 	  If selected, the scheduler will be able to balance tasks accordingly,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  524) 	  i.e. put less load on throttled CPUs than on non/less throttled ones.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  525) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  526) 	  This requires the architecture to implement
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  527) 	  arch_set_thermal_pressure() and arch_get_thermal_pressure().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  528) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  529) config BSD_PROCESS_ACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  530) 	bool "BSD Process Accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  531) 	depends on MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  532) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  533) 	  If you say Y here, a user level program will be able to instruct the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  534) 	  kernel (via a special system call) to write process accounting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  535) 	  information to a file: whenever a process exits, information about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  536) 	  that process will be appended to the file by the kernel.  The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  537) 	  information includes things such as creation time, owning user,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  538) 	  command name, memory usage, controlling terminal etc. (the complete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  539) 	  list is in the struct acct in <file:include/linux/acct.h>).  It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  540) 	  up to the user level program to do useful things with this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  541) 	  information.  This is generally a good idea, so say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  542) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  543) config BSD_PROCESS_ACCT_V3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  544) 	bool "BSD Process Accounting version 3 file format"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  545) 	depends on BSD_PROCESS_ACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  546) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  547) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  548) 	  If you say Y here, the process accounting information is written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  549) 	  in a new file format that also logs the process IDs of each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  550) 	  process and its parent. Note that this file format is incompatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  551) 	  with previous v0/v1/v2 file formats, so you will need updated tools
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  552) 	  for processing it. A preliminary version of these tools is available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  553) 	  at <http://www.gnu.org/software/acct/>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  554) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  555) config TASKSTATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  556) 	bool "Export task/process statistics through netlink"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  557) 	depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  558) 	depends on MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  559) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  560) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  561) 	  Export selected statistics for tasks/processes through the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  562) 	  generic netlink interface. Unlike BSD process accounting, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  563) 	  statistics are available during the lifetime of tasks/processes as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  564) 	  responses to commands. Like BSD accounting, they are sent to user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  565) 	  space on task exit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  566) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  567) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  568) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  569) config TASK_DELAY_ACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  570) 	bool "Enable per-task delay accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  571) 	depends on TASKSTATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  572) 	select SCHED_INFO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  573) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  574) 	  Collect information on time spent by a task waiting for system
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  575) 	  resources like cpu, synchronous block I/O completion and swapping
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  576) 	  in pages. Such statistics can help in setting a task's priorities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  577) 	  relative to other tasks for cpu, io, rss limits etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  578) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  579) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  580) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  581) config TASK_XACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  582) 	bool "Enable extended accounting over taskstats"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  583) 	depends on TASKSTATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  584) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  585) 	  Collect extended task accounting data and send the data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  586) 	  to userland for processing over the taskstats interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  587) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  588) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  589) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  590) config TASK_IO_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  591) 	bool "Enable per-task storage I/O accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  592) 	depends on TASK_XACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  593) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  594) 	  Collect information on the number of bytes of storage I/O which this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  595) 	  task has caused.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  596) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  597) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  598) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  599) config PSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  600) 	bool "Pressure stall information tracking"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  601) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  602) 	  Collect metrics that indicate how overcommitted the CPU, memory,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  603) 	  and IO capacity are in the system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  604) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  605) 	  If you say Y here, the kernel will create /proc/pressure/ with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  606) 	  pressure statistics files cpu, memory, and io. These will indicate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  607) 	  the share of walltime in which some or all tasks in the system are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  608) 	  delayed due to contention of the respective resource.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  609) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  610) 	  In kernels with cgroup support, cgroups (cgroup2 only) will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  611) 	  have cpu.pressure, memory.pressure, and io.pressure files,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  612) 	  which aggregate pressure stalls for the grouped tasks only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  613) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  614) 	  For more details see Documentation/accounting/psi.rst.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  615) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  616) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  617) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  618) config PSI_DEFAULT_DISABLED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  619) 	bool "Require boot parameter to enable pressure stall information tracking"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  620) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  621) 	depends on PSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  622) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  623) 	  If set, pressure stall information tracking will be disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  624) 	  per default but can be enabled through passing psi=1 on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  625) 	  kernel commandline during boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  626) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  627) 	  This feature adds some code to the task wakeup and sleep
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  628) 	  paths of the scheduler. The overhead is too low to affect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  629) 	  common scheduling-intense workloads in practice (such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  630) 	  webservers, memcache), but it does show up in artificial
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  631) 	  scheduler stress tests, such as hackbench.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  632) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  633) 	  If you are paranoid and not sure what the kernel will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  634) 	  used for, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  635) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  636) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  637) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  638) endmenu # "CPU/Task time and stats accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  639) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  640) config CPU_ISOLATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  641) 	bool "CPU isolation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  642) 	depends on SMP || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  643) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  644) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  645) 	  Make sure that CPUs running critical tasks are not disturbed by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  646) 	  any source of "noise" such as unbound workqueues, timers, kthreads...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  647) 	  Unbound jobs get offloaded to housekeeping CPUs. This is driven by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  648) 	  the "isolcpus=" boot parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  649) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  650) 	  Say Y if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  651) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  652) source "kernel/rcu/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  653) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  654) config BUILD_BIN2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  655) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  656) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  657) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  658) config IKCONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  659) 	tristate "Kernel .config support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  660) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  661) 	  This option enables the complete Linux kernel ".config" file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  662) 	  contents to be saved in the kernel. It provides documentation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  663) 	  of which kernel options are used in a running kernel or in an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  664) 	  on-disk kernel.  This information can be extracted from the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  665) 	  image file with the script scripts/extract-ikconfig and used as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  666) 	  input to rebuild the current kernel or to build another kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  667) 	  It can also be extracted from a running kernel by reading
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  668) 	  /proc/config.gz if enabled (below).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  669) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  670) config IKCONFIG_PROC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  671) 	bool "Enable access to .config through /proc/config.gz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  672) 	depends on IKCONFIG && PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  673) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  674) 	  This option enables access to the kernel configuration file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  675) 	  through /proc/config.gz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  676) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  677) config IKHEADERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  678) 	tristate "Enable kernel headers through /sys/kernel/kheaders.tar.xz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  679) 	depends on SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  680) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  681) 	  This option enables access to the in-kernel headers that are generated during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  682) 	  the build process. These can be used to build eBPF tracing programs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  683) 	  or similar programs.  If you build the headers as a module, a module called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  684) 	  kheaders.ko is built which can be loaded on-demand to get access to headers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  685) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  686) config LOG_BUF_SHIFT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  687) 	int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  688) 	range 12 25 if !H8300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  689) 	range 12 19 if H8300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  690) 	default 17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  691) 	depends on PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  692) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  693) 	  Select the minimal kernel log buffer size as a power of 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  694) 	  The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  695) 	  parameter, see below. Any higher size also might be forced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  696) 	  by "log_buf_len" boot parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  697) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  698) 	  Examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  699) 		     17 => 128 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  700) 		     16 => 64 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  701) 		     15 => 32 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  702) 		     14 => 16 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  703) 		     13 =>  8 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  704) 		     12 =>  4 KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  705) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  706) config LOG_CPU_MAX_BUF_SHIFT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  707) 	int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  708) 	depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  709) 	range 0 21
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  710) 	default 12 if !BASE_SMALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  711) 	default 0 if BASE_SMALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  712) 	depends on PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  713) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  714) 	  This option allows to increase the default ring buffer size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  715) 	  according to the number of CPUs. The value defines the contribution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  716) 	  of each CPU as a power of 2. The used space is typically only few
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  717) 	  lines however it might be much more when problems are reported,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  718) 	  e.g. backtraces.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  719) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  720) 	  The increased size means that a new buffer has to be allocated and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  721) 	  the original static one is unused. It makes sense only on systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  722) 	  with more CPUs. Therefore this value is used only when the sum of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  723) 	  contributions is greater than the half of the default kernel ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  724) 	  buffer as defined by LOG_BUF_SHIFT. The default values are set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  725) 	  so that more than 16 CPUs are needed to trigger the allocation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  726) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  727) 	  Also this option is ignored when "log_buf_len" kernel parameter is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  728) 	  used as it forces an exact (power of two) size of the ring buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  729) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  730) 	  The number of possible CPUs is used for this computation ignoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  731) 	  hotplugging making the computation optimal for the worst case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  732) 	  scenario while allowing a simple algorithm to be used from bootup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  733) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  734) 	  Examples shift values and their meaning:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  735) 		     17 => 128 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  736) 		     16 =>  64 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  737) 		     15 =>  32 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  738) 		     14 =>  16 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  739) 		     13 =>   8 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  740) 		     12 =>   4 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  741) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  742) config PRINTK_SAFE_LOG_BUF_SHIFT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  743) 	int "Temporary per-CPU printk log buffer size (12 => 4KB, 13 => 8KB)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  744) 	range 10 21
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  745) 	default 13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  746) 	depends on PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  747) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  748) 	  Select the size of an alternate printk per-CPU buffer where messages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  749) 	  printed from usafe contexts are temporary stored. One example would
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  750) 	  be NMI messages, another one - printk recursion. The messages are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  751) 	  copied to the main log buffer in a safe context to avoid a deadlock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  752) 	  The value defines the size as a power of 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  753) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  754) 	  Those messages are rare and limited. The largest one is when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  755) 	  a backtrace is printed. It usually fits into 4KB. Select
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  756) 	  8KB if you want to be on the safe side.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  757) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  758) 	  Examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  759) 		     17 => 128 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  760) 		     16 =>  64 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  761) 		     15 =>  32 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  762) 		     14 =>  16 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  763) 		     13 =>   8 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  764) 		     12 =>   4 KB for each CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  765) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  766) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  767) # Architectures with an unreliable sched_clock() should select this:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  768) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  769) config HAVE_UNSTABLE_SCHED_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  770) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  771) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  772) config GENERIC_SCHED_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  773) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  774) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  775) menu "Scheduler features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  776) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  777) config UCLAMP_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  778) 	bool "Enable utilization clamping for RT/FAIR tasks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  779) 	depends on CPU_FREQ_GOV_SCHEDUTIL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  780) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  781) 	  This feature enables the scheduler to track the clamped utilization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  782) 	  of each CPU based on RUNNABLE tasks scheduled on that CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  783) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  784) 	  With this option, the user can specify the min and max CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  785) 	  utilization allowed for RUNNABLE tasks. The max utilization defines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  786) 	  the maximum frequency a task should use while the min utilization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  787) 	  defines the minimum frequency it should use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  788) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  789) 	  Both min and max utilization clamp values are hints to the scheduler,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  790) 	  aiming at improving its frequency selection policy, but they do not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  791) 	  enforce or grant any specific bandwidth for tasks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  792) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  793) 	  If in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  794) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  795) config UCLAMP_BUCKETS_COUNT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  796) 	int "Number of supported utilization clamp buckets"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  797) 	range 5 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  798) 	default 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  799) 	depends on UCLAMP_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  800) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  801) 	  Defines the number of clamp buckets to use. The range of each bucket
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  802) 	  will be SCHED_CAPACITY_SCALE/UCLAMP_BUCKETS_COUNT. The higher the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  803) 	  number of clamp buckets the finer their granularity and the higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  804) 	  the precision of clamping aggregation and tracking at run-time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  805) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  806) 	  For example, with the minimum configuration value we will have 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  807) 	  clamp buckets tracking 20% utilization each. A 25% boosted tasks will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  808) 	  be refcounted in the [20..39]% bucket and will set the bucket clamp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  809) 	  effective value to 25%.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  810) 	  If a second 30% boosted task should be co-scheduled on the same CPU,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  811) 	  that task will be refcounted in the same bucket of the first task and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  812) 	  it will boost the bucket clamp effective value to 30%.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  813) 	  The clamp effective value of a bucket is reset to its nominal value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  814) 	  (20% in the example above) when there are no more tasks refcounted in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  815) 	  that bucket.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  816) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  817) 	  An additional boost/capping margin can be added to some tasks. In the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  818) 	  example above the 25% task will be boosted to 30% until it exits the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  819) 	  CPU. If that should be considered not acceptable on certain systems,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  820) 	  it's always possible to reduce the margin by increasing the number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  821) 	  clamp buckets to trade off used memory for run-time tracking
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  822) 	  precision.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  823) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  824) 	  If in doubt, use the default value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  825) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  826) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  827) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  828) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  829) # For architectures that want to enable the support for NUMA-affine scheduler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  830) # balancing logic:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  831) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  832) config ARCH_SUPPORTS_NUMA_BALANCING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  833) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  834) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  835) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  836) # For architectures that prefer to flush all TLBs after a number of pages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  837) # are unmapped instead of sending one IPI per page to flush. The architecture
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  838) # must provide guarantees on what happens if a clean TLB cache entry is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  839) # written after the unmap. Details are in mm/rmap.c near the check for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  840) # should_defer_flush. The architecture should also consider if the full flush
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  841) # and the refill costs are offset by the savings of sending fewer IPIs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  842) config ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  843) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  844) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  845) config CC_HAS_INT128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  846) 	def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  847) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  848) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  849) # For architectures that know their GCC __int128 support is sound
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  850) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  851) config ARCH_SUPPORTS_INT128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  852) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  853) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  854) # For architectures that (ab)use NUMA to represent different memory regions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  855) # all cpu-local but of different latencies, such as SuperH.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  856) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  857) config ARCH_WANT_NUMA_VARIABLE_LOCALITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  858) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  859) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  860) config NUMA_BALANCING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  861) 	bool "Memory placement aware NUMA scheduler"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  862) 	depends on ARCH_SUPPORTS_NUMA_BALANCING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  863) 	depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  864) 	depends on SMP && NUMA && MIGRATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  865) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  866) 	  This option adds support for automatic NUMA aware memory/task placement.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  867) 	  The mechanism is quite primitive and is based on migrating memory when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  868) 	  it has references to the node the task is running on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  869) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  870) 	  This system will be inactive on UMA systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  871) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  872) config NUMA_BALANCING_DEFAULT_ENABLED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  873) 	bool "Automatically enable NUMA aware memory/task placement"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  874) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  875) 	depends on NUMA_BALANCING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  876) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  877) 	  If set, automatic NUMA balancing will be enabled if running on a NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  878) 	  machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  879) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  880) menuconfig CGROUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  881) 	bool "Control Group support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  882) 	select KERNFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  883) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  884) 	  This option adds support for grouping sets of processes together, for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  885) 	  use with process control subsystems such as Cpusets, CFS, memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  886) 	  controls or device isolation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  887) 	  See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  888) 		- Documentation/scheduler/sched-design-CFS.rst	(CFS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  889) 		- Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  890) 					  and resource control)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  891) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  892) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  893) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  894) if CGROUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  895) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  896) config PAGE_COUNTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  897) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  898) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  899) config MEMCG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  900) 	bool "Memory controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  901) 	select PAGE_COUNTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  902) 	select EVENTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  903) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  904) 	  Provides control over the memory footprint of tasks in a cgroup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  905) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  906) config MEMCG_SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  907) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  908) 	depends on MEMCG && SWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  909) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  910) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  911) config MEMCG_KMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  912) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  913) 	depends on MEMCG && !SLOB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  914) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  915) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  916) config BLK_CGROUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  917) 	bool "IO controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  918) 	depends on BLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  919) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  920) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  921) 	Generic block IO controller cgroup interface. This is the common
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  922) 	cgroup interface which should be used by various IO controlling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  923) 	policies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  924) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  925) 	Currently, CFQ IO scheduler uses it to recognize task groups and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  926) 	control disk bandwidth allocation (proportional time slice allocation)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  927) 	to such task groups. It is also used by bio throttling logic in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  928) 	block layer to implement upper limit in IO rates on a device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  929) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  930) 	This option only enables generic Block IO controller infrastructure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  931) 	One needs to also enable actual IO controlling logic/policy. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  932) 	enabling proportional weight division of disk bandwidth in CFQ, set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  933) 	CONFIG_BFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  934) 	CONFIG_BLK_DEV_THROTTLING=y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  935) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  936) 	See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  937) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  938) config CGROUP_WRITEBACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  939) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  940) 	depends on MEMCG && BLK_CGROUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  941) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  942) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  943) menuconfig CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  944) 	bool "CPU controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  945) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  946) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  947) 	  This feature lets CPU scheduler recognize task groups and control CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  948) 	  bandwidth allocation to such task groups. It uses cgroups to group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  949) 	  tasks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  950) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  951) if CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  952) config FAIR_GROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  953) 	bool "Group scheduling for SCHED_OTHER"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  954) 	depends on CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  955) 	default CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  956) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  957) config CFS_BANDWIDTH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  958) 	bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  959) 	depends on FAIR_GROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  960) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  961) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  962) 	  This option allows users to define CPU bandwidth rates (limits) for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  963) 	  tasks running within the fair group scheduler.  Groups with no limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  964) 	  set are considered to be unconstrained and will run with no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  965) 	  restriction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  966) 	  See Documentation/scheduler/sched-bwc.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  967) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  968) config RT_GROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  969) 	bool "Group scheduling for SCHED_RR/FIFO"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  970) 	depends on CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  971) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  972) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  973) 	  This feature lets you explicitly allocate real CPU bandwidth
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  974) 	  to task groups. If enabled, it will also make it impossible to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  975) 	  schedule realtime tasks for non-root users until you allocate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  976) 	  realtime bandwidth for them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  977) 	  See Documentation/scheduler/sched-rt-group.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  978) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  979) endif #CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  980) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  981) config UCLAMP_TASK_GROUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  982) 	bool "Utilization clamping per group of tasks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  983) 	depends on CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  984) 	depends on UCLAMP_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  985) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  986) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  987) 	  This feature enables the scheduler to track the clamped utilization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  988) 	  of each CPU based on RUNNABLE tasks currently scheduled on that CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  989) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  990) 	  When this option is enabled, the user can specify a min and max
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  991) 	  CPU bandwidth which is allowed for each single task in a group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  992) 	  The max bandwidth allows to clamp the maximum frequency a task
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  993) 	  can use, while the min bandwidth allows to define a minimum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  994) 	  frequency a task will always use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  995) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  996) 	  When task group based utilization clamping is enabled, an eventually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  997) 	  specified task-specific clamp value is constrained by the cgroup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  998) 	  specified clamp value. Both minimum and maximum task clamping cannot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  999) 	  be bigger than the corresponding clamping defined at task group level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) 	  If in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) config CGROUP_PIDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) 	bool "PIDs controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) 	  Provides enforcement of process number limits in the scope of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) 	  cgroup. Any attempt to fork more processes than is allowed in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) 	  cgroup will fail. PIDs are fundamentally a global resource because it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) 	  is fairly trivial to reach PID exhaustion before you reach even a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) 	  conservative kmemcg limit. As a result, it is possible to grind a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) 	  system to halt without being limited by other cgroup policies. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) 	  PIDs controller is designed to stop this from happening.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) 	  It should be noted that organisational operations (such as attaching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) 	  to a cgroup hierarchy) will *not* be blocked by the PIDs controller,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) 	  since the PIDs limit only affects a process's ability to fork, not to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) 	  attach to a cgroup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) config CGROUP_RDMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) 	bool "RDMA controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) 	  Provides enforcement of RDMA resources defined by IB stack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) 	  It is fairly easy for consumers to exhaust RDMA resources, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) 	  can result into resource unavailability to other consumers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) 	  RDMA controller is designed to stop this from happening.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) 	  Attaching processes with active RDMA resources to the cgroup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) 	  hierarchy is allowed even if can cross the hierarchy's limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) config CGROUP_FREEZER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) 	bool "Freezer controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) 	  Provides a way to freeze and unfreeze all tasks in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) 	  cgroup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) 	  This option affects the ORIGINAL cgroup interface. The cgroup2 memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) 	  controller includes important in-kernel memory consumers per default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) 	  If you're using cgroup2, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) config CGROUP_HUGETLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) 	bool "HugeTLB controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) 	depends on HUGETLB_PAGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) 	select PAGE_COUNTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) 	  Provides a cgroup controller for HugeTLB pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) 	  When you enable this, you can put a per cgroup limit on HugeTLB usage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) 	  The limit is enforced during page fault. Since HugeTLB doesn't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) 	  support page reclaim, enforcing the limit at page fault time implies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) 	  that, the application will get SIGBUS signal if it tries to access
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) 	  HugeTLB pages beyond its limit. This requires the application to know
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) 	  beforehand how much HugeTLB pages it would require for its use. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) 	  control group is tracked in the third page lru pointer. This means
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) 	  that we cannot use the controller with huge page less than 3 pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) config CPUSETS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) 	bool "Cpuset controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) 	depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) 	  This option will let you create and manage CPUSETs which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) 	  allow dynamically partitioning a system into sets of CPUs and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) 	  Memory Nodes and assigning tasks to run only within those sets.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) 	  This is primarily useful on large SMP or NUMA systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) config PROC_PID_CPUSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) 	bool "Include legacy /proc/<pid>/cpuset file"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) 	depends on CPUSETS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) config CGROUP_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) 	bool "Device controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) 	  Provides a cgroup controller implementing whitelists for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) 	  devices which a process in the cgroup can mknod or open.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) config CGROUP_CPUACCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) 	bool "Simple CPU accounting controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) 	  Provides a simple controller for monitoring the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) 	  total CPU consumed by the tasks in a cgroup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) config CGROUP_PERF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) 	bool "Perf controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) 	depends on PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) 	  This option extends the perf per-cpu mode to restrict monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) 	  to threads which belong to the cgroup specified and run on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) 	  designated cpu.  Or this can be used to have cgroup ID in samples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) 	  so that it can monitor performance events among cgroups.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) config CGROUP_BPF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) 	bool "Support for eBPF programs attached to cgroups"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) 	depends on BPF_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) 	select SOCK_CGROUP_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) 	  Allow attaching eBPF programs to a cgroup using the bpf(2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) 	  syscall command BPF_PROG_ATTACH.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) 	  In which context these programs are accessed depends on the type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) 	  of attachment. For instance, programs that are attached using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) 	  BPF_CGROUP_INET_INGRESS will be executed on the ingress path of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) 	  inet sockets.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) config CGROUP_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) 	bool "Debug controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) 	depends on DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) 	  This option enables a simple controller that exports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) 	  debugging information about the cgroups framework. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) 	  controller is for control cgroup debugging only. Its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) 	  interfaces are not stable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) 	  Say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) config SOCK_CGROUP_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) endif # CGROUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) menuconfig NAMESPACES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) 	bool "Namespaces support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) 	depends on MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) 	default !EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) 	  Provides the way to make tasks work with different objects using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) 	  the same id. For example same IPC id may refer to different objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) 	  or same user id or pid may refer to different tasks when used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) 	  different namespaces.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) if NAMESPACES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) config UTS_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) 	bool "UTS namespace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) 	  In this namespace tasks see different info provided with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) 	  uname() system call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) config TIME_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) 	bool "TIME namespace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) 	depends on GENERIC_VDSO_TIME_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) 	  In this namespace boottime and monotonic clocks can be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) 	  The time will keep going with the same pace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) config IPC_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) 	bool "IPC namespace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) 	depends on (SYSVIPC || POSIX_MQUEUE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158) 	  In this namespace tasks work with IPC ids which correspond to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) 	  different IPC objects in different namespaces.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) config USER_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) 	bool "User namespace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) 	  This allows containers, i.e. vservers, to use user namespaces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) 	  to provide different user info for different servers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) 	  When user namespaces are enabled in the kernel it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) 	  recommended that the MEMCG option also be enabled and that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) 	  user-space use the memory control groups to limit the amount
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) 	  of memory a memory unprivileged users can use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) config PID_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) 	bool "PID Namespaces"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) 	  Support process id namespaces.  This allows having multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) 	  processes with the same pid as long as they are in different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) 	  pid namespaces.  This is a building block of containers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) config NET_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) 	bool "Network namespace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) 	depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) 	  Allow user space to create what appear to be multiple instances
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) 	  of the network stack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) endif # NAMESPACES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) config CHECKPOINT_RESTORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) 	bool "Checkpoint/restore support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) 	select PROC_CHILDREN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) 	select KCMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) 	  Enables additional kernel features in a sake of checkpoint/restore.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) 	  In particular it adds auxiliary prctl codes to setup process text,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) 	  data and heap segment sizes, and a few additional /proc filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) 	  entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) 	  If unsure, say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) config SCHED_AUTOGROUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) 	bool "Automatic process group scheduling"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) 	select CGROUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) 	select CGROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) 	select FAIR_GROUP_SCHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) 	  This option optimizes the scheduler for common desktop workloads by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) 	  automatically creating and populating task groups.  This separation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) 	  of workloads isolates aggressive CPU burners (like build jobs) from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) 	  desktop applications.  Task group autogeneration is currently based
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) 	  upon task session.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) config RT_SOFTINT_OPTIMIZATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219)        bool "Improve RT scheduling during long softint execution"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220)        depends on ARM64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221)        depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222)        default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223)        help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224)          Enable an optimization which tries to avoid placing RT tasks on CPUs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) 	 occupied by nonpreemptible tasks, such as a long softint, or CPUs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) 	 which may soon block preemptions, such as a CPU running a ksoftirq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) 	 thread which handles slow softints.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) config SYSFS_DEPRECATED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) 	bool "Enable deprecated sysfs features to support old userspace tools"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) 	depends on SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) 	  This option adds code that switches the layout of the "block" class
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) 	  devices, to not show up in /sys/class/block/, but only in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) 	  /sys/block/.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) 	  This switch is only active when the sysfs.deprecated=1 boot option is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) 	  passed or the SYSFS_DEPRECATED_V2 option is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) 	  This option allows new kernels to run on old distributions and tools,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) 	  which might get confused by /sys/class/block/. Since 2007/2008 all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) 	  major distributions and tools handle this just fine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) 	  Recent distributions and userspace tools after 2009/2010 depend on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) 	  the existence of /sys/class/block/, and will not work with this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) 	  option enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) 	  Only if you are using a new kernel on an old distribution, you might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) 	  need to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252) config SYSFS_DEPRECATED_V2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) 	bool "Enable deprecated sysfs features by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) 	depends on SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) 	depends on SYSFS_DEPRECATED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) 	  Enable deprecated sysfs by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) 	  See the CONFIG_SYSFS_DEPRECATED option for more details about this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) 	  option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) 	  Only if you are using a new kernel on an old distribution, you might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) 	  need to say Y here. Even then, odds are you would not need it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) 	  enabled, you can always pass the boot option if absolutely necessary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) config RELAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) 	bool "Kernel->user space relay support (formerly relayfs)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) 	select IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) 	  This option enables support for relay interface support in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) 	  certain file systems (such as debugfs).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) 	  It is designed to provide an efficient mechanism for tools and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) 	  facilities to relay large amounts of data from kernel space to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) 	  user space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) config BLK_DEV_INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) 	bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) 	  The initial RAM filesystem is a ramfs which is loaded by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) 	  boot loader (loadlin or lilo) and that is mounted as root
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) 	  before the normal boot procedure. It is typically used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) 	  load modules needed to mount the "real" root file system,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) 	  etc. See <file:Documentation/admin-guide/initrd.rst> for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) 	  If RAM disk support (BLK_DEV_RAM) is also included, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) 	  also enables initial RAM disk (initrd) support and adds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) 	  15 Kbytes (more on some other architectures) to the kernel size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) 	  If unsure say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) if BLK_DEV_INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) source "usr/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) config INITRD_ASYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) 	bool "Initrd async"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) 	depends on NO_GKI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) 	  Init ramdisk async, can reduce kernel init time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) config INITCALL_ASYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) 	bool "Call initcall async"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) 	depends on ROCKCHIP_THUNDER_BOOT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) 	  Call same level initcall async in kthread.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) 	  Kernel parameter "initcall_nr_threads" control how many threads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) 	  initcall_nr_threads default is 0, which disable intcall async.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) 	  initcall_nr_threads=-1, auto selected the number of threads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) config BOOT_CONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) 	bool "Boot config support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) 	select BLK_DEV_INITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) 	  Extra boot config allows system admin to pass a config file as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) 	  complemental extension of kernel cmdline when booting.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) 	  The boot config file must be attached at the end of initramfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) 	  with checksum, size and magic word.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) 	  See <file:Documentation/admin-guide/bootconfig.rst> for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) 	prompt "Compiler optimization level"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) 	default CC_OPTIMIZE_FOR_PERFORMANCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) config CC_OPTIMIZE_FOR_PERFORMANCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) 	bool "Optimize for performance (-O2)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) 	  This is the default optimization level for the kernel, building
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) 	  with the "-O2" compiler flag for best performance and most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) 	  helpful compile-time warnings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) config CC_OPTIMIZE_FOR_PERFORMANCE_O3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) 	bool "Optimize more for performance (-O3)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) 	depends on ARC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) 	  Choosing this option will pass "-O3" to your compiler to optimize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) 	  the kernel yet more for performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) config CC_OPTIMIZE_FOR_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) 	bool "Optimize for size (-Os)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) 	  Choosing this option will pass "-Os" to your compiler resulting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) 	  in a smaller kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) config HAVE_LD_DEAD_CODE_DATA_ELIMINATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) 	  This requires that the arch annotates or otherwise protects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) 	  its external entry points from being discarded. Linker scripts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) 	  must also merge .text.*, .data.*, and .bss.* correctly into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) 	  output sections. Care must be taken not to pull in unrelated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) 	  sections (e.g., '.text.init'). Typically '.' in section names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) 	  is used to distinguish them from label names / C identifiers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) config LD_DEAD_CODE_DATA_ELIMINATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) 	bool "Dead code and data elimination (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) 	depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) 	depends on EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) 	depends on $(cc-option,-ffunction-sections -fdata-sections)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) 	depends on $(ld-option,--gc-sections)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) 	  Enable this if you want to do dead code and data elimination with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) 	  the linker by compiling with -ffunction-sections -fdata-sections,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) 	  and linking with --gc-sections.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) 	  This can reduce on disk and in-memory size of the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) 	  code and static data, particularly for small configs and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) 	  on small systems. This has the possibility of introducing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) 	  silently broken kernel if the required annotations are not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) 	  present. This option is not well tested yet, so use at your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) 	  own risk.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) config LD_ORPHAN_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382) 	def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) 	depends on ARCH_WANT_LD_ORPHAN_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) 	depends on !LD_IS_LLD || LLD_VERSION >= 110000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) 	depends on $(ld-option,--orphan-handling=warn)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) config SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) config HAVE_UID16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) config SYSCTL_EXCEPTION_TRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) 	  Enable support for /proc/sys/debug/exception-trace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) config SYSCTL_ARCH_UNALIGN_NO_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) 	  Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402) 	  Allows arch to define/use @no_unaligned_warning to possibly warn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) 	  about unaligned access emulation going on under the hood.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) config SYSCTL_ARCH_UNALIGN_ALLOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) 	  Enable support for /proc/sys/kernel/unaligned-trap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) 	  Allows arches to define/use @unaligned_enabled to runtime toggle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) 	  the unaligned access emulation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) 	  see arch/parisc/kernel/unaligned.c for reference
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) config HAVE_PCSPKR_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) # interpreter that classic socket filters depend on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417) config BPF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) menuconfig EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) 	bool "Configure standard kernel features (expert users)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) 	# Unhide debug options, to make the on-by-default options visible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423) 	select DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) 	  This option allows certain base kernel options and settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) 	  to be disabled or tweaked. This is for specialized
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) 	  environments which can tolerate a "non-standard" kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) 	  Only use this if you really know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) config UID16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) 	bool "Enable 16-bit UID system calls" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) 	depends on HAVE_UID16 && MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) 	  This enables the legacy 16-bit UID syscall wrappers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) config MULTIUSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) 	bool "Multiple users, groups and capabilities support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441) 	  This option enables support for non-root users, groups and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) 	  capabilities.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) 	  If you say N here, all processes will run with UID 0, GID 0, and all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) 	  possible capabilities.  Saying N here also compiles out support for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) 	  system calls related to UIDs, GIDs, and capabilities, such as setuid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) 	  setgid, and capset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) 	  If unsure, say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) config SGETMASK_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) 	bool "sgetmask/ssetmask syscalls support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) 	def_bool PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455) 	  sys_sgetmask and sys_ssetmask are obsolete system calls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) 	  no longer supported in libc but still enabled by default in some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) 	  architectures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459) 	  If unsure, leave the default option here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) config SYSFS_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) 	bool "Sysfs syscall support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) 	  sys_sysfs is an obsolete system call no longer supported in libc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) 	  Note that disabling this option is more secure but might break
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467) 	  compatibility with some systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) 	  If unsure say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) config FHANDLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) 	bool "open by fhandle syscalls" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) 	select EXPORTFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476) 	  If you say Y here, a user level program will be able to map
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477) 	  file names to handle and then later use the handle for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) 	  different file system operations. This is useful in implementing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) 	  userspace file servers, which now track files using handles instead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) 	  of names. The handle would remain the same even if file names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) 	  get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) 	  syscalls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) config POSIX_TIMERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) 	bool "Posix Clocks & timers" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488) 	  This includes native support for POSIX timers to the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) 	  Some embedded systems have no use for them and therefore they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) 	  can be configured out to reduce the size of the kernel image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) 	  When this option is disabled, the following syscalls won't be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493) 	  available: timer_create, timer_gettime: timer_getoverrun,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) 	  timer_settime, timer_delete, clock_adjtime, getitimer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495) 	  setitimer, alarm. Furthermore, the clock_settime, clock_gettime,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) 	  clock_getres and clock_nanosleep syscalls will be limited to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497) 	  CLOCK_REALTIME, CLOCK_MONOTONIC and CLOCK_BOOTTIME only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) 	  If unsure say y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) config PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) 	bool "Enable support for printk" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) 	select IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) 	  This option enables normal printk support. Removing it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507) 	  eliminates most of the message strings from the kernel image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) 	  and makes the kernel more or less silent. As this makes it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) 	  very difficult to diagnose system problems, saying N here is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510) 	  strongly discouraged.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512) config PRINTK_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) 	def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) 	depends on PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515) 	depends on HAVE_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) config BUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) 	bool "BUG() support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) 	  Disabling this option eliminates support for BUG and WARN, reducing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) 	  the size of your kernel image and potentially quietly ignoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) 	  numerous fatal conditions. You should only consider disabling this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) 	  option for embedded systems with no facilities for reporting errors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525) 	  Just say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527) config ELF_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) 	depends on COREDUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) 	bool "Enable ELF core dumps" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) 	  Enable support for generating core dumps. Disabling saves about 4k.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) config PCSPKR_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) 	bool "Enable PC-Speaker support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) 	depends on HAVE_PCSPKR_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) 	select I8253_LOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541) 	  This option allows to disable the internal PC-Speaker
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) 	  support, saving some memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) config BASE_FULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) 	bool "Enable full-sized data structures for core" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) 	  Disabling this option reduces the size of miscellaneous core
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) 	  kernel data structures. This saves memory on small machines,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) 	  but may reduce performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) config FUTEX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553) 	bool "Enable futex support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) 	imply RT_MUTEXES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) 	  Disabling this option will cause the kernel to be built without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) 	  support for "fast userspace mutexes".  The resulting kernel may not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559) 	  run glibc-based applications correctly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) config FUTEX_PI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) 	depends on FUTEX && RT_MUTEXES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) config HAVE_FUTEX_CMPXCHG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) 	depends on FUTEX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570) 	  Architectures should select this if futex_atomic_cmpxchg_inatomic()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) 	  is implemented and always working. This removes a couple of runtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572) 	  checks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574) config EPOLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575) 	bool "Enable eventpoll support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) 	  Disabling this option will cause the kernel to be built without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) 	  support for epoll family of system calls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) config SIGNALFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) 	bool "Enable signalfd() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) 	  Enable the signalfd() system call that allows to receive signals
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) 	  on a file descriptor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) config TIMERFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) 	bool "Enable timerfd() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) 	  Enable the timerfd() system call that allows to receive timer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) 	  events on a file descriptor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) config EVENTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) 	bool "Enable eventfd() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) 	  Enable the eventfd() system call that allows to receive both
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) 	  kernel notification (ie. KAIO) or userspace notifications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) config SHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609) 	bool "Use full shmem filesystem" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) 	depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) 	  The shmem is an internal filesystem used to manage shared memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) 	  It is backed by swap and manages resource limits. It is also exported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) 	  to userspace as tmpfs if TMPFS is enabled. Disabling this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) 	  option replaces shmem and tmpfs with the much simpler ramfs code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) 	  which may be appropriate on small systems without swap.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) config AIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) 	bool "Enable AIO support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623) 	  This option enables POSIX asynchronous I/O which may by used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) 	  by some high performance threaded applications. Disabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) 	  this option saves about 7k.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) config IO_URING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628) 	bool "Enable IO uring support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629) 	select IO_WQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632) 	  This option enables support for the io_uring interface, enabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) 	  applications to submit and complete IO through submission and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) 	  completion rings that are shared between the kernel and application.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) config ADVISE_SYSCALLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) 	bool "Enable madvise/fadvise syscalls" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) 	  This option enables the madvise and fadvise syscalls, used by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) 	  applications to advise the kernel about their future memory or file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) 	  usage, improving performance. If building an embedded system where no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643) 	  applications use these syscalls, you can disable this option to save
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) 	  space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) config HAVE_ARCH_USERFAULTFD_WP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) 	  Arch has userfaultfd write protection support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) config HAVE_ARCH_USERFAULTFD_MINOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) 	  Arch has userfaultfd minor fault support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) config MEMBARRIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) 	bool "Enable membarrier() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) 	  Enable the membarrier() system call that allows issuing memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) 	  barriers across all running threads, which can be used to distribute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662) 	  the cost of user-space memory barriers asymmetrically by transforming
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) 	  pairs of memory barriers into pairs consisting of membarrier() and a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) 	  compiler barrier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) config KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) 	bool "Load all symbols for debugging/ksymoops" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672) 	  Say Y here to let the kernel print out symbolic crash information and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) 	  symbolic stack backtraces. This increases the size of the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) 	  somewhat, as all symbols have to be loaded into the kernel image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676) config KALLSYMS_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) 	bool "Include all symbols in kallsyms"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) 	depends on DEBUG_KERNEL && KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) 	  Normally kallsyms only contains the symbols of functions for nicer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) 	  OOPS messages and backtraces (i.e., symbols from the text and inittext
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) 	  sections). This is sufficient for most cases. And only in very rare
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) 	  cases (e.g., when a debugger is used) all symbols are required (e.g.,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684) 	  names of variables from the data sections, etc).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) 	  This option makes sure that all symbols are loaded into the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) 	  image (i.e., symbols from all sections) in cost of increased kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) 	  size (depending on the kernel configuration, it may be 300KiB or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) 	  something like this).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) 	  Say N unless you really need all symbols.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693) config KALLSYMS_ABSOLUTE_PERCPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) 	depends on KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) 	default X86_64 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698) config KALLSYMS_BASE_RELATIVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700) 	depends on KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) 	default !IA64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703) 	  Instead of emitting them as absolute values in the native word size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) 	  emit the symbol references in the kallsyms table as 32-bit entries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) 	  each containing a relative value in the range [base, base + U32_MAX]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) 	  or, when KALLSYMS_ABSOLUTE_PERCPU is in effect, each containing either
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) 	  an absolute value in the range [0, S32_MAX] or a relative value in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) 	  range [base, base + S32_MAX], where base is the lowest relative symbol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) 	  address encountered in the image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) 	  On 64-bit builds, this reduces the size of the address table by 50%,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) 	  but more importantly, it results in entries whose values are build
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713) 	  time constants, and no relocation pass is required at runtime to fix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) 	  up the entries based on the runtime load address of the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) # end of the "standard kernel features (expert users)" menu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) # syscall, maps, verifier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) config BPF_LSM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721) 	bool "LSM Instrumentation with BPF"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) 	depends on BPF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) 	depends on BPF_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) 	depends on SECURITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) 	depends on BPF_JIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727) 	  Enables instrumentation of the security hooks with eBPF programs for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) 	  implementing dynamic MAC and Audit Policies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) 	  If you are unsure how to answer this question, answer N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) config BPF_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733) 	bool "Enable bpf() system call"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) 	select BPF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) 	select IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) 	select TASKS_TRACE_RCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) 	  Enable the bpf() system call that allows to manipulate eBPF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740) 	  programs and maps via file descriptors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742) config ARCH_WANT_DEFAULT_BPF_JIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) config BPF_JIT_ALWAYS_ON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) 	bool "Permanently enable BPF JIT and remove BPF interpreter"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) 	depends on BPF_SYSCALL && HAVE_EBPF_JIT && BPF_JIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) 	  Enables BPF JIT and removes BPF interpreter to avoid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) 	  speculative execution of BPF instructions by the interpreter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) config BPF_JIT_DEFAULT_ON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) 	def_bool ARCH_WANT_DEFAULT_BPF_JIT || BPF_JIT_ALWAYS_ON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754) 	depends on HAVE_EBPF_JIT && BPF_JIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) config BPF_UNPRIV_DEFAULT_OFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) 	bool "Disable unprivileged BPF by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) 	depends on BPF_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) 	  Disables unprivileged BPF by default by setting the corresponding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) 	  /proc/sys/kernel/unprivileged_bpf_disabled knob to 2. An admin can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762) 	  still reenable it by setting it to 0 later on, or permanently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763) 	  disable it by setting it to 1 (from which no other transition to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) 	  0 is possible anymore).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) source "kernel/bpf/preload/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) config USERFAULTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) 	bool "Enable userfaultfd() system call"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) 	depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) 	  Enable the userfaultfd() system call that allows to intercept and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) 	  handle page faults in userland.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) config ARCH_HAS_MEMBARRIER_CALLBACKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) config ARCH_HAS_MEMBARRIER_SYNC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) config KCMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) 	bool "Enable kcmp() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) 	  Enable the kernel resource comparison system call. It provides
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785) 	  user-space with the ability to compare two processes to see if they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) 	  share a common resource, such as a file descriptor or even virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) 	  memory space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) config RSEQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792) 	bool "Enable rseq() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) 	depends on HAVE_RSEQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795) 	select MEMBARRIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797) 	  Enable the restartable sequences system call. It provides a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) 	  user-space cache for the current CPU number value, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) 	  speeds up getting the current CPU number from user-space,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) 	  as well as an ABI to speed up user-space operations on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) 	  per-CPU data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805) config DEBUG_RSEQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807) 	bool "Enabled debugging of rseq() system call" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) 	depends on RSEQ && DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) 	  Enable extra debugging checks for the rseq system call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) config EMBEDDED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) 	bool "Embedded system"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) 	option allnoconfig_y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) 	select EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819) 	  This option should be enabled if compiling the kernel for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) 	  an embedded system so certain expert options are available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) 	  for configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) config HAVE_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) 	  See tools/perf/design.txt for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) config PERF_USE_VMALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) 	  See tools/perf/design.txt for details
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833) config PC104
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) 	bool "PC/104 support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) 	  Expose PC/104 form factor device drivers and options available for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) 	  selection and configuration. Enable this option if your target
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) 	  machine has a PC/104 bus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) menu "Kernel Performance Events And Counters"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) config PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843) 	bool "Kernel performance events and counters"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) 	default y if PROFILING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) 	depends on HAVE_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) 	select IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) 	select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) 	  Enable kernel support for various performance events provided
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) 	  by software and hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) 	  Software events are supported either built-in or via the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) 	  use of generic tracepoints.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) 	  Most modern CPUs support performance events via performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) 	  counter registers. These registers count the number of certain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) 	  types of hw events: such as instructions executed, cachemisses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) 	  suffered, or branches mis-predicted - without slowing down the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) 	  kernel or applications. These registers can also trigger interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) 	  when a threshold number of events have passed - and can thus be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) 	  used to profile the code that runs on that CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) 	  The Linux Performance Event subsystem provides an abstraction of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) 	  these software and hardware event capabilities, available via a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865) 	  system call and used by the "perf" utility in tools/perf/. It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) 	  provides per task and per CPU counters, and it provides event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) 	  capabilities on top of those.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) 	  Say Y if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) config DEBUG_PERF_USE_VMALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) 	bool "Debug: use vmalloc to back perf mmap() buffers"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874) 	depends on PERF_EVENTS && DEBUG_KERNEL && !PPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) 	select PERF_USE_VMALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877) 	  Use vmalloc memory to back perf mmap() buffers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) 	  Mostly useful for debugging the vmalloc code on platforms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) 	  that don't require it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) 	  Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886) config VM_EVENT_COUNTERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) 	bool "Enable VM event counters for /proc/vmstat" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) 	  VM event counters are needed for event counts to be shown.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) 	  This option allows the disabling of the VM event counters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892) 	  on EXPERT systems.  /proc/vmstat will only show page counts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) 	  if VM event counters are disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) config SLUB_SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896) 	bool "Enable SLUB sysfs interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) 	depends on SLUB && SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) config SLUB_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) 	bool "Enable SLUB debugging support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) 	depends on SLUB && SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) 	  SLUB has extensive debug support features. Disabling these can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) 	  result in significant savings in code size. This also disables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907) 	  SLUB sysfs support. /sys/slab will not exist and there will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) 	  no support for cache validation etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) config SLUB_MEMCG_SYSFS_ON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912) 	bool "Enable memcg SLUB sysfs support by default" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) 	depends on SLUB && SYSFS && MEMCG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) 	  SLUB creates a directory under /sys/kernel/slab for each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) 	  allocation cache to host info and debug files. If memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) 	  cgroup is enabled, each cache can have per memory cgroup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) 	  caches. SLUB can create the same sysfs directories for these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) 	  caches under /sys/kernel/slab/CACHE/cgroup but it can lead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) 	  to a very high number of debug files being created. This is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) 	  controlled by slub_memcg_sysfs boot parameter and this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) 	  config option determines the parameter's default value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) config COMPAT_BRK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) 	bool "Disable heap randomization"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) 	  Randomizing heap placement makes heap exploits harder, but it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) 	  also breaks ancient binaries (including anything libc5 based).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) 	  This option changes the bootup default to heap randomization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) 	  disabled, and can be overridden at runtime by setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) 	  /proc/sys/kernel/randomize_va_space to 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) 	  On non-ancient distros (post-2000 ones) N is usually a safe choice.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937) 	prompt "Choose SLAB allocator"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) 	default SLUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) 	   This option allows to select a slab allocator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) config SLAB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943) 	bool "SLAB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) 	select HAVE_HARDENED_USERCOPY_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) 	  The regular slab allocator that is established and known to work
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947) 	  well in all environments. It organizes cache hot objects in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) 	  per cpu and per node queues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950) config SLUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951) 	bool "SLUB (Unqueued Allocator)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) 	select HAVE_HARDENED_USERCOPY_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) 	   SLUB is a slab allocator that minimizes cache line usage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) 	   instead of managing queues of cached objects (SLAB approach).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) 	   Per cpu caching is realized using slabs of objects instead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957) 	   of queues of objects. SLUB can use memory efficiently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) 	   and has enhanced diagnostics. SLUB is the default choice for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) 	   a slab allocator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) config SLOB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) 	depends on EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) 	bool "SLOB (Simple Allocator)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) 	   SLOB replaces the stock allocator with a drastically simpler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966) 	   allocator. SLOB is generally more space efficient but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) 	   does not perform as well on large systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) config SLAB_MERGE_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) 	bool "Allow slab caches to be merged"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) 	  For reduced kernel memory fragmentation, slab caches can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) 	  merged when they share the same size and other characteristics.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) 	  This carries a risk of kernel heap overflows being able to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) 	  overwrite objects from merged caches (and more easily control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979) 	  cache layout), which makes such heap attacks easier to exploit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) 	  by attackers. By keeping caches unmerged, these kinds of exploits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) 	  can usually only damage objects in the same cache. To disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) 	  merging at runtime, "slab_nomerge" can be passed on the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983) 	  command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985) config SLAB_FREELIST_RANDOM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) 	bool "Randomize slab freelist"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) 	depends on SLAB || SLUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) 	  Randomizes the freelist order used on creating new pages. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990) 	  security feature reduces the predictability of the kernel slab
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) 	  allocator against heap overflows.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) config SLAB_FREELIST_HARDENED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) 	bool "Harden slab freelist metadata"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) 	depends on SLAB || SLUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) 	  Many kernel heap attacks try to target slab cache metadata and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) 	  other infrastructure. This options makes minor performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) 	  sacrifices to harden the kernel slab allocator against common
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) 	  freelist exploit methods. Some slab implementations have more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) 	  sanity-checking than others. This option is most effective with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002) 	  CONFIG_SLUB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) config SHUFFLE_PAGE_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005) 	bool "Page allocator randomization"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) 	default SLAB_FREELIST_RANDOM && ACPI_NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) 	  Randomization of the page allocator improves the average
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) 	  utilization of a direct-mapped memory-side-cache. See section
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) 	  5.2.27 Heterogeneous Memory Attribute Table (HMAT) in the ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) 	  6.2a specification for an example of how a platform advertises
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) 	  the presence of a memory-side-cache. There are also incidental
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) 	  security benefits as it reduces the predictability of page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) 	  allocations to compliment SLAB_FREELIST_RANDOM, but the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) 	  default granularity of shuffling on the "MAX_ORDER - 1" i.e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) 	  10th order of pages is selected based on cache utilization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) 	  benefits on x86.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019) 	  While the randomization improves cache utilization it may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) 	  negatively impact workloads on platforms without a cache. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) 	  this reason, by default, the randomization is enabled only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) 	  after runtime detection of a direct-mapped memory-side-cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023) 	  Otherwise, the randomization may be force enabled with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) 	  'page_alloc.shuffle' kernel command line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) 	  Say Y if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) config SLUB_CPU_PARTIAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030) 	depends on SLUB && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) 	bool "SLUB per cpu partial cache"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) 	  Per cpu partial caches accelerate objects allocation and freeing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) 	  that is local to a processor at the price of more indeterminism
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) 	  in the latency of the free. On overflow these caches will be cleared
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) 	  which requires the taking of locks that may cause latency spikes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) 	  Typically one would choose no for a realtime system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) config MMAP_ALLOW_UNINITIALIZED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040) 	bool "Allow mmapped anonymous memory to be uninitialized"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041) 	depends on EXPERT && !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) 	  Normally, and according to the Linux spec, anonymous memory obtained
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045) 	  from mmap() has its contents cleared before it is passed to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046) 	  userspace.  Enabling this config option allows you to request that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047) 	  mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) 	  providing a huge performance boost.  If this option is not enabled,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049) 	  then the flag will be ignored.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) 	  This is taken advantage of by uClibc's malloc(), and also by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052) 	  ELF-FDPIC binfmt's brk and stack allocator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) 	  Because of the obvious security issues, this option should only be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2055) 	  enabled on embedded devices where you control what is run in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2056) 	  userspace.  Since that isn't generally a problem on no-MMU systems,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2057) 	  it is normally safe to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2058) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2059) 	  See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2060) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2061) config SYSTEM_DATA_VERIFICATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2062) 	def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2063) 	select SYSTEM_TRUSTED_KEYRING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2064) 	select KEYS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2065) 	select CRYPTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2066) 	select CRYPTO_RSA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2067) 	select ASYMMETRIC_KEY_TYPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2068) 	select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2069) 	select ASN1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2070) 	select OID_REGISTRY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2071) 	select X509_CERTIFICATE_PARSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2072) 	select PKCS7_MESSAGE_PARSER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2073) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2074) 	  Provide PKCS#7 message verification using the contents of the system
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2075) 	  trusted keyring to provide public keys.  This then can be used for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2076) 	  module verification, kexec image verification and firmware blob
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2077) 	  verification.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2078) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2079) config PROFILING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2080) 	bool "Profiling support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2081) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2082) 	  Say Y here to enable the extended profiling support mechanisms used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2083) 	  by profilers such as OProfile.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2084) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2085) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2086) # Place an empty function call at each tracepoint site. Can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2087) # dynamically changed for a probe function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2088) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2089) config TRACEPOINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2090) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2091) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2092) endmenu		# General setup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2093) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2094) source "arch/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2095) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2096) config RT_MUTEXES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2097) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2098) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2099) config BASE_SMALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2100) 	int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2101) 	default 0 if BASE_FULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2102) 	default 1 if !BASE_FULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2104) config MODULE_SIG_FORMAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2105) 	def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2106) 	select SYSTEM_DATA_VERIFICATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2108) menuconfig MODULES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2109) 	bool "Enable loadable module support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2110) 	option modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2111) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2112) 	  Kernel modules are small pieces of compiled code which can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2113) 	  be inserted in the running kernel, rather than being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2114) 	  permanently built into the kernel.  You use the "modprobe"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2115) 	  tool to add (and sometimes remove) them.  If you say Y here,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2116) 	  many parts of the kernel can be built as modules (by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2117) 	  answering M instead of Y where indicated): this is most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2118) 	  useful for infrequently used options which are not required
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2119) 	  for booting.  For more information, see the man pages for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2120) 	  modprobe, lsmod, modinfo, insmod and rmmod.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2122) 	  If you say Y here, you will need to run "make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2123) 	  modules_install" to put the modules under /lib/modules/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2124) 	  where modprobe can find them (you may need to be root to do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2125) 	  this).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2127) 	  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2129) if MODULES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2131) config MODULE_FORCE_LOAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2132) 	bool "Forced module loading"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2133) 	default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2134) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2135) 	  Allow loading of modules without version information (ie. modprobe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2136) 	  --force).  Forced module loading sets the 'F' (forced) taint flag and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2137) 	  is usually a really bad idea.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2139) config MODULE_UNLOAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2140) 	bool "Module unloading"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2141) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2142) 	  Without this option you will not be able to unload any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2143) 	  modules (note that some modules may not be unloadable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2144) 	  anyway), which makes your kernel smaller, faster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2145) 	  and simpler.  If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2147) config MODULE_FORCE_UNLOAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2148) 	bool "Forced module unloading"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2149) 	depends on MODULE_UNLOAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2150) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2151) 	  This option allows you to force a module to unload, even if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2152) 	  kernel believes it is unsafe: the kernel will remove the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2153) 	  without waiting for anyone to stop using it (using the -f option to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2154) 	  rmmod).  This is mainly for kernel developers and desperate users.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2155) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2157) config MODVERSIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2158) 	bool "Module versioning support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2159) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2160) 	  Usually, you have to use modules compiled with your kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2161) 	  Saying Y here makes it sometimes possible to use modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2162) 	  compiled for different kernels, by adding enough information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2163) 	  to the modules to (hopefully) spot any changes which would
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2164) 	  make them incompatible with the kernel you are running.  If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2165) 	  unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2167) config ASM_MODVERSIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2168) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2169) 	default HAVE_ASM_MODVERSIONS && MODVERSIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2170) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2171) 	  This enables module versioning for exported symbols also from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2172) 	  assembly. This can be enabled only when the target architecture
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2173) 	  supports it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2174) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2175) config MODULE_REL_CRCS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2176) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2177) 	depends on MODVERSIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2179) config MODULE_SRCVERSION_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2180) 	bool "Source checksum for all modules"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2181) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2182) 	  Modules which contain a MODULE_VERSION get an extra "srcversion"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2183) 	  field inserted into their modinfo section, which contains a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2184)     	  sum of the source files which made it.  This helps maintainers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2185) 	  see exactly which source was used to build a module (since
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2186) 	  others sometimes change the module source without updating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2187) 	  the version).  With this option, such a "srcversion" field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2188) 	  will be created for all modules.  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2190) config MODULE_SCMVERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2191) 	bool "SCM version for modules"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2192) 	depends on LOCALVERSION_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2193) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2194) 	  This enables the module attribute "scmversion" which can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2195) 	  by developers to identify the SCM version of a given module, e.g.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2196) 	  git sha1 or hg sha1. The SCM version can be queried by modinfo or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2197) 	  via the sysfs node: /sys/modules/MODULENAME/scmversion. This is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2198) 	  useful when the kernel or kernel modules are updated separately
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2199) 	  since that causes the vermagic of the kernel and the module to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2200) 	  differ.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2202) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2204) config MODULE_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2205) 	bool "Module signature verification"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2206) 	select MODULE_SIG_FORMAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2207) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2208) 	  Check modules for valid signatures upon load: the signature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2209) 	  is simply appended to the module. For more information see
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2210) 	  <file:Documentation/admin-guide/module-signing.rst>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2212) 	  Note that this option adds the OpenSSL development packages as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2213) 	  kernel build dependency so that the signing tool can use its crypto
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2214) 	  library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2216) 	  You should enable this option if you wish to use either
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2217) 	  CONFIG_SECURITY_LOCKDOWN_LSM or lockdown functionality imposed via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2218) 	  another LSM - otherwise unsigned modules will be loadable regardless
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2219) 	  of the lockdown policy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2220) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2221) 	  !!!WARNING!!!  If you enable this option, you MUST make sure that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2222) 	  module DOES NOT get stripped after being signed.  This includes the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2223) 	  debuginfo strip done by some packagers (such as rpmbuild) and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2224) 	  inclusion into an initramfs that wants the module size reduced.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2226) config MODULE_SIG_FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2227) 	bool "Require modules to be validly signed"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2228) 	depends on MODULE_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2229) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2230) 	  Reject unsigned modules or signed modules for which we don't have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2231) 	  key.  Without this, such modules will simply taint the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2233) config MODULE_SIG_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2234) 	bool "Automatically sign all modules"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2235) 	default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2236) 	depends on MODULE_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2237) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2238) 	  Sign all modules during make modules_install. Without this option,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2239) 	  modules must be signed manually, using the scripts/sign-file tool.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2240) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2241) comment "Do not forget to sign required modules with scripts/sign-file"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2242) 	depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2244) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2245) 	prompt "Which hash algorithm should modules be signed with?"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2246) 	depends on MODULE_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2247) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2248) 	  This determines which sort of hashing algorithm will be used during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2249) 	  signature generation.  This algorithm _must_ be built into the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2250) 	  directly so that signature verification can take place.  It is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2251) 	  possible to load a signed module containing the algorithm to check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2252) 	  the signature on that module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2254) config MODULE_SIG_SHA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2255) 	bool "Sign modules with SHA-1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2256) 	select CRYPTO_SHA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2258) config MODULE_SIG_SHA224
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2259) 	bool "Sign modules with SHA-224"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2260) 	select CRYPTO_SHA256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2261) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2262) config MODULE_SIG_SHA256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2263) 	bool "Sign modules with SHA-256"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2264) 	select CRYPTO_SHA256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2265) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2266) config MODULE_SIG_SHA384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2267) 	bool "Sign modules with SHA-384"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2268) 	select CRYPTO_SHA512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2270) config MODULE_SIG_SHA512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2271) 	bool "Sign modules with SHA-512"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2272) 	select CRYPTO_SHA512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2273) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2274) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2276) config MODULE_SIG_HASH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2277) 	string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2278) 	depends on MODULE_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2279) 	default "sha1" if MODULE_SIG_SHA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2280) 	default "sha224" if MODULE_SIG_SHA224
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2281) 	default "sha256" if MODULE_SIG_SHA256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2282) 	default "sha384" if MODULE_SIG_SHA384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2283) 	default "sha512" if MODULE_SIG_SHA512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2285) config MODULE_COMPRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2286) 	bool "Compress modules on installation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2287) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2288) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2289) 	  Compresses kernel modules when 'make modules_install' is run; gzip or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2290) 	  xz depending on "Compression algorithm" below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2291) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2292) 	  module-init-tools MAY support gzip, and kmod MAY support gzip and xz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2294) 	  Out-of-tree kernel modules installed using Kbuild will also be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2295) 	  compressed upon installation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2296) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2297) 	  Note: for modules inside an initrd or initramfs, it's more efficient
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2298) 	  to compress the whole initrd or initramfs instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2299) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2300) 	  Note: This is fully compatible with signed modules.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2301) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2302) 	  If in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2303) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2304) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2305) 	prompt "Compression algorithm"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2306) 	depends on MODULE_COMPRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2307) 	default MODULE_COMPRESS_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2308) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2309) 	  This determines which sort of compression will be used during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2310) 	  'make modules_install'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2311) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2312) 	  GZIP (default) and XZ are supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2313) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2314) config MODULE_COMPRESS_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2315) 	bool "GZIP"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2316) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2317) config MODULE_COMPRESS_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2318) 	bool "XZ"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2319) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2320) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2321) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2322) config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2323) 	bool "Allow loading of modules with missing namespace imports"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2324) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2325) 	  Symbols exported with EXPORT_SYMBOL_NS*() are considered exported in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2326) 	  a namespace. A module that makes use of a symbol exported with such a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2327) 	  namespace is required to import the namespace via MODULE_IMPORT_NS().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2328) 	  There is no technical reason to enforce correct namespace imports,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2329) 	  but it creates consistency between symbols defining namespaces and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2330) 	  users importing namespaces they make use of. This option relaxes this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2331) 	  requirement and lifts the enforcement when loading a module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2333) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2334) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2335) config UNUSED_SYMBOLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2336) 	bool "Enable unused/obsolete exported symbols"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2337) 	default y if X86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2338) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2339) 	  Unused but exported symbols make the kernel needlessly bigger.  For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2340) 	  that reason most of these unused exports will soon be removed.  This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2341) 	  option is provided temporarily to provide a transition period in case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2342) 	  some external kernel module needs one of these symbols anyway. If you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2343) 	  encounter such a case in your module, consider if you are actually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2344) 	  using the right API.  (rationale: since nobody in the kernel is using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2345) 	  this in a module, there is a pretty good chance it's actually the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2346) 	  wrong interface to use).  If you really need the symbol, please send a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2347) 	  mail to the linux kernel mailing list mentioning the symbol and why
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2348) 	  you really need it, and what the merge plan to the mainline kernel for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2349) 	  your module is.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2351) config TRIM_UNUSED_KSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2352) 	bool "Trim unused exported kernel symbols"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2353) 	depends on !UNUSED_SYMBOLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2354) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2355) 	  The kernel and some modules make many symbols available for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2356) 	  other modules to use via EXPORT_SYMBOL() and variants. Depending
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2357) 	  on the set of modules being selected in your kernel configuration,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2358) 	  many of those exported symbols might never be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2359) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2360) 	  This option allows for unused exported symbols to be dropped from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2361) 	  the build. In turn, this provides the compiler more opportunities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2362) 	  (especially when using LTO) for optimizing the code and reducing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2363) 	  binary size.  This might have some security advantages as well.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2365) 	  If unsure, or if you need to build out-of-tree modules, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2366) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2367) config UNUSED_KSYMS_WHITELIST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2368) 	string "Whitelist of symbols to keep in ksymtab"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2369) 	depends on TRIM_UNUSED_KSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2370) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2371) 	  By default, all unused exported symbols will be un-exported from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2372) 	  build when TRIM_UNUSED_KSYMS is selected.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2374) 	  UNUSED_KSYMS_WHITELIST allows to whitelist symbols that must be kept
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2375) 	  exported at all times, even in absence of in-tree users. The value to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2376) 	  set here is the path to a text file containing the list of symbols,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2377) 	  one per line. The path can be absolute, or relative to the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2378) 	  source tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2380) endif # MODULES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2381) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2382) config MODULES_TREE_LOOKUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2383) 	def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2384) 	depends on PERF_EVENTS || TRACING || CFI_CLANG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2385) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2386) config INIT_ALL_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2387) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2388) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2389) 	  Back when each arch used to define their own cpu_online_mask and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2390) 	  cpu_possible_mask, some of them chose to initialize cpu_possible_mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2391) 	  with all 1s, and others with all 0s.  When they were centralised,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2392) 	  it was better to provide this option than to break all the archs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2393) 	  and have several arch maintainers pursuing me down dark alleys.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2395) source "block/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2396) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2397) config PREEMPT_NOTIFIERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2398) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2400) config PADATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2401) 	depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2402) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2403) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2404) config ASN1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2405) 	tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2406) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2407) 	  Build a simple ASN.1 grammar compiler that produces a bytecode output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2408) 	  that can be interpreted by the ASN.1 stream decoder and used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2409) 	  inform it as to what tags are to be expected in a stream and what
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2410) 	  functions to call on what tags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2411) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2412) source "kernel/Kconfig.locks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2413) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2414) config ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2415) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2416) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2417) config ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2418) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2419) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2420) # It may be useful for an architecture to override the definitions of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2421) # SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2422) # and the COMPAT_ variants in <linux/compat.h>, in particular to use a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2423) # different calling convention for syscalls. They can also override the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2424) # macros for not-implemented syscalls in kernel/sys_ni.c and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2425) # kernel/time/posix-stubs.c. All these overrides need to be available in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2426) # <asm/syscall_wrapper.h>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2427) config ARCH_HAS_SYSCALL_WRAPPER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2428) 	def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2430) if !ROCKCHIP_MINI_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2431) source "init/Kconfig.gki"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2432) endif