Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 
0003 menu "UML-specific options"
0004 
0005 config UML
0006         bool
0007         default y
0008         select ARCH_EPHEMERAL_INODES
0009         select ARCH_HAS_GCOV_PROFILE_ALL
0010         select ARCH_HAS_KCOV
0011         select ARCH_HAS_STRNCPY_FROM_USER
0012         select ARCH_HAS_STRNLEN_USER
0013         select ARCH_NO_PREEMPT
0014         select HAVE_ARCH_AUDITSYSCALL
0015         select HAVE_ARCH_KASAN if X86_64
0016         select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
0017         select HAVE_ARCH_SECCOMP_FILTER
0018         select HAVE_ASM_MODVERSIONS
0019         select HAVE_UID16
0020         select HAVE_DEBUG_KMEMLEAK
0021         select HAVE_DEBUG_BUGVERBOSE
0022         select NO_DMA if !UML_DMA_EMULATION
0023         select OF_EARLY_FLATTREE if OF
0024         select GENERIC_IRQ_SHOW
0025         select GENERIC_CPU_DEVICES
0026         select HAVE_GCC_PLUGINS
0027         select TRACE_IRQFLAGS_SUPPORT
0028         select TTY # Needed for line.c
0029         select HAVE_ARCH_VMAP_STACK
0030 
0031 config MMU
0032         bool
0033         default y
0034 
0035 config UML_DMA_EMULATION
0036         bool
0037 
0038 config NO_IOMEM
0039         bool "disable IOMEM" if EXPERT
0040         depends on !INDIRECT_IOMEM
0041         default y
0042 
0043 config UML_IOMEM_EMULATION
0044         bool
0045         select INDIRECT_IOMEM
0046         select GENERIC_PCI_IOMAP
0047         select GENERIC_IOMAP
0048         select NO_GENERIC_PCI_IOPORT_MAP
0049 
0050 config NO_IOPORT_MAP
0051         def_bool y
0052 
0053 config ISA
0054         bool
0055 
0056 config SBUS
0057         bool
0058 
0059 config LOCKDEP_SUPPORT
0060         bool
0061         default y
0062 
0063 config STACKTRACE_SUPPORT
0064         bool
0065         default y
0066         select STACKTRACE
0067 
0068 config GENERIC_CALIBRATE_DELAY
0069         bool
0070         default y
0071 
0072 config HZ
0073         int
0074         default 100
0075 
0076 config NR_CPUS
0077         int
0078         range 1 1
0079         default 1
0080 
0081 config ARCH_HAS_CACHE_LINE_SIZE
0082         def_bool y
0083 
0084 source "arch/$(HEADER_ARCH)/um/Kconfig"
0085 
0086 config MAY_HAVE_RUNTIME_DEPS
0087         bool
0088 
0089 config STATIC_LINK
0090         bool "Force a static link"
0091         depends on CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS || !MAY_HAVE_RUNTIME_DEPS
0092         help
0093           This option gives you the ability to force a static link of UML.
0094           Normally, UML is linked as a shared binary.  This is inconvenient for
0095           use in a chroot jail.  So, if you intend to run UML inside a chroot,
0096           you probably want to say Y here.
0097           Additionally, this option enables using higher memory spaces (up to
0098           2.75G) for UML.
0099 
0100           NOTE: This option is incompatible with some networking features which
0101           depend on features that require being dynamically loaded (like NSS).
0102 
0103 config LD_SCRIPT_STATIC
0104         bool
0105         default y
0106         depends on STATIC_LINK
0107 
0108 config LD_SCRIPT_DYN
0109         bool
0110         default y
0111         depends on !LD_SCRIPT_STATIC
0112 
0113 config LD_SCRIPT_DYN_RPATH
0114         bool "set rpath in the binary" if EXPERT
0115         default y
0116         depends on LD_SCRIPT_DYN
0117         help
0118           Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
0119           explicitly.
0120 
0121           You may need to turn this off if compiling for nix systems
0122           that have their libraries in random /nix directories and
0123           might otherwise unexpected use libraries from /lib or /lib64
0124           instead of the desired ones.
0125 
0126 config HOSTFS
0127         tristate "Host filesystem"
0128         help
0129           While the User-Mode Linux port uses its own root file system for
0130           booting and normal file access, this module lets the UML user
0131           access files stored on the host.  It does not require any
0132           network connection between the Host and UML.  An example use of
0133           this might be:
0134 
0135           mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
0136 
0137           where /tmp/fromhost is an empty directory inside UML and
0138           /tmp/umlshare is a directory on the host with files the UML user
0139           wishes to access.
0140 
0141           For more information, see
0142           <http://user-mode-linux.sourceforge.net/hostfs.html>.
0143 
0144           If you'd like to be able to work with files stored on the host,
0145           say Y or M here; otherwise say N.
0146 
0147 config MCONSOLE
0148         bool "Management console"
0149         depends on PROC_FS
0150         default y
0151         help
0152           The user mode linux management console is a low-level interface to
0153           the kernel, somewhat like the i386 SysRq interface.  Since there is
0154           a full-blown operating system running under every user mode linux
0155           instance, there is much greater flexibility possible than with the
0156           SysRq mechanism.
0157 
0158           If you answer 'Y' to this option, to use this feature, you need the
0159           mconsole client (called uml_mconsole) which is present in CVS in
0160           2.4.5-9um and later (path /tools/mconsole), and is also in the
0161           distribution RPM package in 2.4.6 and later.
0162 
0163           It is safe to say 'Y' here.
0164 
0165 config MAGIC_SYSRQ
0166         bool "Magic SysRq key"
0167         depends on MCONSOLE
0168         help
0169           If you say Y here, you will have some control over the system even
0170           if the system crashes for example during kernel debugging (e.g., you
0171           will be able to flush the buffer cache to disk, reboot the system
0172           immediately or dump some status information). A key for each of the
0173           possible requests is provided.
0174 
0175           This is the feature normally accomplished by pressing a key
0176           while holding SysRq (Alt+PrintScreen).
0177 
0178           On UML, this is accomplished by sending a "sysrq" command with
0179           mconsole, followed by the letter for the requested command.
0180 
0181           The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y
0182           unless you really know what this hack does.
0183 
0184 config KERNEL_STACK_ORDER
0185         int "Kernel stack size order"
0186         default 2 if 64BIT
0187         range 2 10 if 64BIT
0188         default 1 if !64BIT
0189         help
0190           This option determines the size of UML kernel stacks.  They will
0191           be 1 << order pages.  The default is OK unless you're running Valgrind
0192           on UML, in which case, set this to 3.
0193           It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on
0194           older (pre-2017) CPUs. It is not recommended on newer CPUs due to the
0195           increase in the size of the state which needs to be saved when handling
0196           signals.
0197 
0198 config MMAPPER
0199         tristate "iomem emulation driver"
0200         help
0201           This driver allows a host file to be used as emulated IO memory inside
0202           UML.
0203 
0204 config PGTABLE_LEVELS
0205         int
0206         default 3 if 3_LEVEL_PGTABLES
0207         default 2
0208 
0209 config UML_TIME_TRAVEL_SUPPORT
0210         bool
0211         prompt "Support time-travel mode (e.g. for test execution)"
0212         # inf-cpu mode is incompatible with the benchmarking
0213         depends on !RAID6_PQ_BENCHMARK
0214         depends on !SMP
0215         help
0216           Enable this option to support time travel inside the UML instance.
0217 
0218           After enabling this option, two modes are accessible at runtime
0219           (selected by the kernel command line), see the kernel's command-
0220           line help for more details.
0221 
0222           It is safe to say Y, but you probably don't need this.
0223 
0224 config KASAN_SHADOW_OFFSET
0225         hex
0226         depends on KASAN
0227         default 0x100000000000
0228         help
0229           This is the offset at which the ~16TB of shadow memory is
0230           mapped and used by KASAN for memory debugging. This can be any
0231           address that has at least KASAN_SHADOW_SIZE (total address space divided
0232           by 8) amount of space so that the KASAN shadow memory does not conflict
0233           with anything. The default is 0x100000000000, which works even if mem is
0234           set to a large value. On low-memory systems, try 0x7fff8000, as it fits
0235           into the immediate of most instructions, improving performance.
0236 
0237 endmenu
0238 
0239 source "arch/um/drivers/Kconfig"
0240 
0241 config ARCH_SUSPEND_POSSIBLE
0242         def_bool y
0243 
0244 source "kernel/power/Kconfig"