GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / um / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "UML-specific options"
4
5 config 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 HAVE_COPY_THREAD_TLS
19         select GENERIC_IRQ_SHOW
20         select GENERIC_CPU_DEVICES
21         select GENERIC_CLOCKEVENTS
22         select HAVE_GCC_PLUGINS
23         select TTY # Needed for line.c
24
25 config MMU
26         bool
27         default y
28
29 config NO_IOMEM
30         def_bool y
31
32 config ISA
33         bool
34
35 config SBUS
36         bool
37
38 config TRACE_IRQFLAGS_SUPPORT
39         bool
40         default y
41
42 config LOCKDEP_SUPPORT
43         bool
44         default y
45
46 config STACKTRACE_SUPPORT
47         bool
48         default y
49         select STACKTRACE
50
51 config GENERIC_CALIBRATE_DELAY
52         bool
53         default y
54
55 config HZ
56         int
57         default 100
58
59 config NR_CPUS
60         int
61         range 1 1
62         default 1
63
64 source "arch/$(HEADER_ARCH)/um/Kconfig"
65
66 config STATIC_LINK
67         bool "Force a static link"
68         default n
69         help
70           This option gives you the ability to force a static link of UML.
71           Normally, UML is linked as a shared binary.  This is inconvenient for
72           use in a chroot jail.  So, if you intend to run UML inside a chroot,
73           you probably want to say Y here.
74           Additionally, this option enables using higher memory spaces (up to
75           2.75G) for UML.
76
77 config LD_SCRIPT_STATIC
78         bool
79         default y
80         depends on STATIC_LINK
81
82 config LD_SCRIPT_DYN
83         bool
84         default y
85         depends on !LD_SCRIPT_STATIC
86         select MODULE_REL_CRCS if MODVERSIONS
87
88 config LD_SCRIPT_DYN_RPATH
89         bool "set rpath in the binary" if EXPERT
90         default y
91         depends on LD_SCRIPT_DYN
92         help
93           Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
94           explicitly.
95
96           You may need to turn this off if compiling for nix systems
97           that have their libraries in random /nix directories and
98           might otherwise unexpected use libraries from /lib or /lib64
99           instead of the desired ones.
100
101 config HOSTFS
102         tristate "Host filesystem"
103         help
104           While the User-Mode Linux port uses its own root file system for
105           booting and normal file access, this module lets the UML user
106           access files stored on the host.  It does not require any
107           network connection between the Host and UML.  An example use of
108           this might be:
109
110           mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
111
112           where /tmp/fromhost is an empty directory inside UML and
113           /tmp/umlshare is a directory on the host with files the UML user
114           wishes to access.
115
116           For more information, see
117           <http://user-mode-linux.sourceforge.net/hostfs.html>.
118
119           If you'd like to be able to work with files stored on the host,
120           say Y or M here; otherwise say N.
121
122 config MCONSOLE
123         bool "Management console"
124         depends on PROC_FS
125         default y
126         help
127           The user mode linux management console is a low-level interface to
128           the kernel, somewhat like the i386 SysRq interface.  Since there is
129           a full-blown operating system running under every user mode linux
130           instance, there is much greater flexibility possible than with the
131           SysRq mechanism.
132
133           If you answer 'Y' to this option, to use this feature, you need the
134           mconsole client (called uml_mconsole) which is present in CVS in
135           2.4.5-9um and later (path /tools/mconsole), and is also in the
136           distribution RPM package in 2.4.6 and later.
137
138           It is safe to say 'Y' here.
139
140 config MAGIC_SYSRQ
141         bool "Magic SysRq key"
142         depends on MCONSOLE
143         help
144           If you say Y here, you will have some control over the system even
145           if the system crashes for example during kernel debugging (e.g., you
146           will be able to flush the buffer cache to disk, reboot the system
147           immediately or dump some status information). A key for each of the
148           possible requests is provided.
149
150           This is the feature normally accomplished by pressing a key
151           while holding SysRq (Alt+PrintScreen).
152
153           On UML, this is accomplished by sending a "sysrq" command with
154           mconsole, followed by the letter for the requested command.
155
156           The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y
157           unless you really know what this hack does.
158
159 config KERNEL_STACK_ORDER
160         int "Kernel stack size order"
161         default 2 if 64BIT
162         range 2 10 if 64BIT
163         default 1 if !64BIT
164         help
165           This option determines the size of UML kernel stacks.  They will
166           be 1 << order pages.  The default is OK unless you're running Valgrind
167           on UML, in which case, set this to 3.
168           It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on
169           older (pre-2017) CPUs. It is not recommended on newer CPUs due to the
170           increase in the size of the state which needs to be saved when handling
171           signals.
172
173 config MMAPPER
174         tristate "iomem emulation driver"
175         help
176           This driver allows a host file to be used as emulated IO memory inside
177           UML.
178
179 config NO_DMA
180         def_bool y
181
182 config PGTABLE_LEVELS
183         int
184         default 3 if 3_LEVEL_PGTABLES
185         default 2
186
187 config SECCOMP
188         def_bool y
189         prompt "Enable seccomp to safely compute untrusted bytecode"
190         ---help---
191           This kernel feature is useful for number crunching applications
192           that may need to compute untrusted bytecode during their
193           execution. By using pipes or other transports made available to
194           the process as file descriptors supporting the read/write
195           syscalls, it's possible to isolate those applications in
196           their own address space using seccomp. Once seccomp is
197           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
198           and the task is only allowed to execute a few safe syscalls
199           defined by each seccomp mode.
200
201           If unsure, say Y.
202
203 config UML_TIME_TRAVEL_SUPPORT
204         bool
205         prompt "Support time-travel mode (e.g. for test execution)"
206         help
207           Enable this option to support time travel inside the UML instance.
208
209           After enabling this option, two modes are accessible at runtime
210           (selected by the kernel command line), see the kernel's command-
211           line help for more details.
212
213           It is safe to say Y, but you probably don't need this.
214
215 endmenu
216
217 source "arch/um/drivers/Kconfig"