xref: /kernel/linux/linux-5.10/arch/um/Kconfig (revision 8c2ecf20)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "UML-specific options"
4
5config UML
6	bool
7	default y
8	select ARCH_HAS_CPU_FINALIZE_INIT
9	select ARCH_HAS_KCOV
10	select ARCH_NO_PREEMPT
11	select HAVE_ARCH_AUDITSYSCALL
12	select HAVE_ARCH_SECCOMP_FILTER
13	select HAVE_ASM_MODVERSIONS
14	select HAVE_UID16
15	select HAVE_FUTEX_CMPXCHG if FUTEX
16	select HAVE_DEBUG_KMEMLEAK
17	select HAVE_DEBUG_BUGVERBOSE
18	select NO_DMA
19	select GENERIC_IRQ_SHOW
20	select GENERIC_CPU_DEVICES
21	select GENERIC_CLOCKEVENTS
22	select HAVE_GCC_PLUGINS
23	select SET_FS
24	select TTY # Needed for line.c
25
26config MMU
27	bool
28	default y
29
30config NO_IOMEM
31	def_bool y
32
33config ISA
34	bool
35
36config SBUS
37	bool
38
39config TRACE_IRQFLAGS_SUPPORT
40	bool
41	default y
42
43config LOCKDEP_SUPPORT
44	bool
45	default y
46
47config STACKTRACE_SUPPORT
48	bool
49	default y
50	select STACKTRACE
51
52config GENERIC_CALIBRATE_DELAY
53	bool
54	default y
55
56config HZ
57	int
58	default 100
59
60config NR_CPUS
61	int
62	range 1 1
63	default 1
64
65source "arch/$(HEADER_ARCH)/um/Kconfig"
66
67config MAY_HAVE_RUNTIME_DEPS
68        bool
69
70config STATIC_LINK
71	bool "Force a static link"
72	depends on CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS || !MAY_HAVE_RUNTIME_DEPS
73	help
74	  This option gives you the ability to force a static link of UML.
75	  Normally, UML is linked as a shared binary.  This is inconvenient for
76	  use in a chroot jail.  So, if you intend to run UML inside a chroot,
77	  you probably want to say Y here.
78	  Additionally, this option enables using higher memory spaces (up to
79	  2.75G) for UML.
80
81	  NOTE: This option is incompatible with some networking features which
82	  depend on features that require being dynamically loaded (like NSS).
83
84config LD_SCRIPT_STATIC
85	bool
86	default y
87	depends on STATIC_LINK
88
89config LD_SCRIPT_DYN
90	bool
91	default y
92	depends on !LD_SCRIPT_STATIC
93	select MODULE_REL_CRCS if MODVERSIONS
94
95config HOSTFS
96	tristate "Host filesystem"
97	help
98	  While the User-Mode Linux port uses its own root file system for
99	  booting and normal file access, this module lets the UML user
100	  access files stored on the host.  It does not require any
101	  network connection between the Host and UML.  An example use of
102	  this might be:
103
104	  mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
105
106	  where /tmp/fromhost is an empty directory inside UML and
107	  /tmp/umlshare is a directory on the host with files the UML user
108	  wishes to access.
109
110	  For more information, see
111	  <http://user-mode-linux.sourceforge.net/hostfs.html>.
112
113	  If you'd like to be able to work with files stored on the host,
114	  say Y or M here; otherwise say N.
115
116config MCONSOLE
117	bool "Management console"
118	depends on PROC_FS
119	default y
120	help
121	  The user mode linux management console is a low-level interface to
122	  the kernel, somewhat like the i386 SysRq interface.  Since there is
123	  a full-blown operating system running under every user mode linux
124	  instance, there is much greater flexibility possible than with the
125	  SysRq mechanism.
126
127	  If you answer 'Y' to this option, to use this feature, you need the
128	  mconsole client (called uml_mconsole) which is present in CVS in
129	  2.4.5-9um and later (path /tools/mconsole), and is also in the
130	  distribution RPM package in 2.4.6 and later.
131
132	  It is safe to say 'Y' here.
133
134config MAGIC_SYSRQ
135	bool "Magic SysRq key"
136	depends on MCONSOLE
137	help
138	  If you say Y here, you will have some control over the system even
139	  if the system crashes for example during kernel debugging (e.g., you
140	  will be able to flush the buffer cache to disk, reboot the system
141	  immediately or dump some status information). A key for each of the
142	  possible requests is provided.
143
144	  This is the feature normally accomplished by pressing a key
145	  while holding SysRq (Alt+PrintScreen).
146
147	  On UML, this is accomplished by sending a "sysrq" command with
148	  mconsole, followed by the letter for the requested command.
149
150	  The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y
151	  unless you really know what this hack does.
152
153config KERNEL_STACK_ORDER
154	int "Kernel stack size order"
155	default 2 if 64BIT
156	range 2 10 if 64BIT
157	default 1 if !64BIT
158	help
159	  This option determines the size of UML kernel stacks.  They will
160	  be 1 << order pages.  The default is OK unless you're running Valgrind
161	  on UML, in which case, set this to 3.
162	  It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on
163	  older (pre-2017) CPUs. It is not recommended on newer CPUs due to the
164	  increase in the size of the state which needs to be saved when handling
165	  signals.
166
167config MMAPPER
168	tristate "iomem emulation driver"
169	help
170	  This driver allows a host file to be used as emulated IO memory inside
171	  UML.
172
173config PGTABLE_LEVELS
174	int
175	default 3 if 3_LEVEL_PGTABLES
176	default 2
177
178config UML_TIME_TRAVEL_SUPPORT
179	bool
180	prompt "Support time-travel mode (e.g. for test execution)"
181	# inf-cpu mode is incompatible with the benchmarking
182	depends on !RAID6_PQ_BENCHMARK
183	depends on !SMP
184	help
185	  Enable this option to support time travel inside the UML instance.
186
187	  After enabling this option, two modes are accessible at runtime
188	  (selected by the kernel command line), see the kernel's command-
189	  line help for more details.
190
191	  It is safe to say Y, but you probably don't need this.
192
193endmenu
194
195source "arch/um/drivers/Kconfig"
196
197config ARCH_SUSPEND_POSSIBLE
198	def_bool y
199
200source "kernel/power/Kconfig"
201