diff options
Diffstat (limited to 'arch/um/Kconfig')
-rw-r--r-- | arch/um/Kconfig | 244 |
1 files changed, 99 insertions, 145 deletions
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index e6ff30266542..740d8a922e48 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig | |||
@@ -55,6 +55,14 @@ config GENERIC_BUG | |||
55 | default y | 55 | default y |
56 | depends on BUG | 56 | depends on BUG |
57 | 57 | ||
58 | config GENERIC_TIME | ||
59 | bool | ||
60 | default y | ||
61 | |||
62 | config GENERIC_CLOCKEVENTS | ||
63 | bool | ||
64 | default y | ||
65 | |||
58 | # Used in kernel/irq/manage.c and include/linux/irq.h | 66 | # Used in kernel/irq/manage.c and include/linux/irq.h |
59 | config IRQ_RELEASE_METHOD | 67 | config IRQ_RELEASE_METHOD |
60 | bool | 68 | bool |
@@ -62,63 +70,25 @@ config IRQ_RELEASE_METHOD | |||
62 | 70 | ||
63 | menu "UML-specific options" | 71 | menu "UML-specific options" |
64 | 72 | ||
65 | config MODE_TT | ||
66 | bool "Tracing thread support (DEPRECATED)" | ||
67 | default n | ||
68 | depends on BROKEN | ||
69 | help | ||
70 | This option controls whether tracing thread support is compiled | ||
71 | into UML. This option is largely obsolete, given that skas0 provides | ||
72 | skas security and performance without needing to patch the host. | ||
73 | It is safe to say 'N' here; saying 'Y' may cause additional problems | ||
74 | with the resulting binary even if you run UML in SKAS mode, and running | ||
75 | in TT mode is strongly *NOT RECOMMENDED*. | ||
76 | |||
77 | config STATIC_LINK | 73 | config STATIC_LINK |
78 | bool "Force a static link" | 74 | bool "Force a static link" |
79 | default n | 75 | default n |
80 | depends on !MODE_TT | ||
81 | help | 76 | help |
82 | If CONFIG_MODE_TT is disabled, then this option gives you the ability | 77 | This option gives you the ability to force a static link of UML. |
83 | to force a static link of UML. Normally, if only skas mode is built | 78 | Normally, UML is linked as a shared binary. This is inconvenient for |
84 | in to UML, it will be linked as a shared binary. This is inconvenient | 79 | use in a chroot jail. So, if you intend to run UML inside a chroot, |
85 | for use in a chroot jail. So, if you intend to run UML inside a | 80 | you probably want to say Y here. |
86 | chroot, and you disable CONFIG_MODE_TT, you probably want to say Y | 81 | Additionally, this option enables using higher memory spaces (up to |
87 | here. | 82 | 2.75G) for UML. |
88 | Additionally, this option enables using higher memory spaces (up to | ||
89 | 2.75G) for UML - disabling CONFIG_MODE_TT and enabling this option leads | ||
90 | to best results for this. | ||
91 | |||
92 | config KERNEL_HALF_GIGS | ||
93 | int "Kernel address space size (in .5G units)" | ||
94 | default "1" | ||
95 | depends on MODE_TT | ||
96 | help | ||
97 | This determines the amount of address space that UML will allocate for | ||
98 | its own, measured in half Gigabyte units. The default is 1. | ||
99 | Change this only if you need to boot UML with an unusually large amount | ||
100 | of physical memory. | ||
101 | |||
102 | config MODE_SKAS | ||
103 | bool "Separate Kernel Address Space support" if MODE_TT | ||
104 | default y | ||
105 | help | ||
106 | This option controls whether skas (separate kernel address space) | ||
107 | support is compiled in. | ||
108 | Unless you have specific needs to use TT mode (which applies almost only | ||
109 | to developers), you should say Y here. | ||
110 | SKAS mode will make use of the SKAS3 patch if it is applied on the host | ||
111 | (and your UML will run in SKAS3 mode), but if no SKAS patch is applied | ||
112 | on the host it will run in SKAS0 mode, which is anyway faster than TT | ||
113 | mode. | ||
114 | 83 | ||
115 | source "arch/um/Kconfig.arch" | 84 | source "arch/um/Kconfig.arch" |
116 | source "mm/Kconfig" | 85 | source "mm/Kconfig" |
86 | source "kernel/time/Kconfig" | ||
117 | 87 | ||
118 | config LD_SCRIPT_STATIC | 88 | config LD_SCRIPT_STATIC |
119 | bool | 89 | bool |
120 | default y | 90 | default y |
121 | depends on MODE_TT || STATIC_LINK | 91 | depends on STATIC_LINK |
122 | 92 | ||
123 | config LD_SCRIPT_DYN | 93 | config LD_SCRIPT_DYN |
124 | bool | 94 | bool |
@@ -128,18 +98,18 @@ config LD_SCRIPT_DYN | |||
128 | config NET | 98 | config NET |
129 | bool "Networking support" | 99 | bool "Networking support" |
130 | help | 100 | help |
131 | Unless you really know what you are doing, you should say Y here. | 101 | Unless you really know what you are doing, you should say Y here. |
132 | The reason is that some programs need kernel networking support even | 102 | The reason is that some programs need kernel networking support even |
133 | when running on a stand-alone machine that isn't connected to any | 103 | when running on a stand-alone machine that isn't connected to any |
134 | other computer. If you are upgrading from an older kernel, you | 104 | other computer. If you are upgrading from an older kernel, you |
135 | should consider updating your networking tools too because changes | 105 | should consider updating your networking tools too because changes |
136 | in the kernel and the tools often go hand in hand. The tools are | 106 | in the kernel and the tools often go hand in hand. The tools are |
137 | contained in the package net-tools, the location and version number | 107 | contained in the package net-tools, the location and version number |
138 | of which are given in <file:Documentation/Changes>. | 108 | of which are given in <file:Documentation/Changes>. |
139 | 109 | ||
140 | For a general introduction to Linux networking, it is highly | 110 | For a general introduction to Linux networking, it is highly |
141 | recommended to read the NET-HOWTO, available from | 111 | recommended to read the NET-HOWTO, available from |
142 | <http://www.tldp.org/docs.html#howto>. | 112 | <http://www.tldp.org/docs.html#howto>. |
143 | 113 | ||
144 | 114 | ||
145 | source "fs/Kconfig.binfmt" | 115 | source "fs/Kconfig.binfmt" |
@@ -147,99 +117,99 @@ source "fs/Kconfig.binfmt" | |||
147 | config HOSTFS | 117 | config HOSTFS |
148 | tristate "Host filesystem" | 118 | tristate "Host filesystem" |
149 | help | 119 | help |
150 | While the User-Mode Linux port uses its own root file system for | 120 | While the User-Mode Linux port uses its own root file system for |
151 | booting and normal file access, this module lets the UML user | 121 | booting and normal file access, this module lets the UML user |
152 | access files stored on the host. It does not require any | 122 | access files stored on the host. It does not require any |
153 | network connection between the Host and UML. An example use of | 123 | network connection between the Host and UML. An example use of |
154 | this might be: | 124 | this might be: |
155 | 125 | ||
156 | mount none /tmp/fromhost -t hostfs -o /tmp/umlshare | 126 | mount none /tmp/fromhost -t hostfs -o /tmp/umlshare |
157 | 127 | ||
158 | where /tmp/fromhost is an empty directory inside UML and | 128 | where /tmp/fromhost is an empty directory inside UML and |
159 | /tmp/umlshare is a directory on the host with files the UML user | 129 | /tmp/umlshare is a directory on the host with files the UML user |
160 | wishes to access. | 130 | wishes to access. |
161 | 131 | ||
162 | For more information, see | 132 | For more information, see |
163 | <http://user-mode-linux.sourceforge.net/hostfs.html>. | 133 | <http://user-mode-linux.sourceforge.net/hostfs.html>. |
164 | 134 | ||
165 | If you'd like to be able to work with files stored on the host, | 135 | If you'd like to be able to work with files stored on the host, |
166 | say Y or M here; otherwise say N. | 136 | say Y or M here; otherwise say N. |
167 | 137 | ||
168 | config HPPFS | 138 | config HPPFS |
169 | tristate "HoneyPot ProcFS (EXPERIMENTAL)" | 139 | tristate "HoneyPot ProcFS (EXPERIMENTAL)" |
170 | depends on EXPERIMENTAL | 140 | depends on EXPERIMENTAL |
171 | help | 141 | help |
172 | hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc | 142 | hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc |
173 | entries to be overridden, removed, or fabricated from the host. | 143 | entries to be overridden, removed, or fabricated from the host. |
174 | Its purpose is to allow a UML to appear to be a physical machine | 144 | Its purpose is to allow a UML to appear to be a physical machine |
175 | by removing or changing anything in /proc which gives away the | 145 | by removing or changing anything in /proc which gives away the |
176 | identity of a UML. | 146 | identity of a UML. |
177 | 147 | ||
178 | See <http://user-mode-linux.sf.net/hppfs.html> for more information. | 148 | See <http://user-mode-linux.sf.net/hppfs.html> for more information. |
179 | 149 | ||
180 | You only need this if you are setting up a UML honeypot. Otherwise, | 150 | You only need this if you are setting up a UML honeypot. Otherwise, |
181 | it is safe to say 'N' here. | 151 | it is safe to say 'N' here. |
182 | 152 | ||
183 | config MCONSOLE | 153 | config MCONSOLE |
184 | bool "Management console" | 154 | bool "Management console" |
185 | default y | 155 | default y |
186 | help | 156 | help |
187 | The user mode linux management console is a low-level interface to | 157 | The user mode linux management console is a low-level interface to |
188 | the kernel, somewhat like the i386 SysRq interface. Since there is | 158 | the kernel, somewhat like the i386 SysRq interface. Since there is |
189 | a full-blown operating system running under every user mode linux | 159 | a full-blown operating system running under every user mode linux |
190 | instance, there is much greater flexibility possible than with the | 160 | instance, there is much greater flexibility possible than with the |
191 | SysRq mechanism. | 161 | SysRq mechanism. |
192 | 162 | ||
193 | If you answer 'Y' to this option, to use this feature, you need the | 163 | If you answer 'Y' to this option, to use this feature, you need the |
194 | mconsole client (called uml_mconsole) which is present in CVS in | 164 | mconsole client (called uml_mconsole) which is present in CVS in |
195 | 2.4.5-9um and later (path /tools/mconsole), and is also in the | 165 | 2.4.5-9um and later (path /tools/mconsole), and is also in the |
196 | distribution RPM package in 2.4.6 and later. | 166 | distribution RPM package in 2.4.6 and later. |
197 | 167 | ||
198 | It is safe to say 'Y' here. | 168 | It is safe to say 'Y' here. |
199 | 169 | ||
200 | config MAGIC_SYSRQ | 170 | config MAGIC_SYSRQ |
201 | bool "Magic SysRq key" | 171 | bool "Magic SysRq key" |
202 | depends on MCONSOLE | 172 | depends on MCONSOLE |
203 | ---help--- | 173 | help |
204 | If you say Y here, you will have some control over the system even | 174 | If you say Y here, you will have some control over the system even |
205 | if the system crashes for example during kernel debugging (e.g., you | 175 | if the system crashes for example during kernel debugging (e.g., you |
206 | will be able to flush the buffer cache to disk, reboot the system | 176 | will be able to flush the buffer cache to disk, reboot the system |
207 | immediately or dump some status information). A key for each of the | 177 | immediately or dump some status information). A key for each of the |
208 | possible requests is provided. | 178 | possible requests is provided. |
209 | 179 | ||
210 | This is the feature normally accomplished by pressing a key | 180 | This is the feature normally accomplished by pressing a key |
211 | while holding SysRq (Alt+PrintScreen). | 181 | while holding SysRq (Alt+PrintScreen). |
212 | 182 | ||
213 | On UML, this is accomplished by sending a "sysrq" command with | 183 | On UML, this is accomplished by sending a "sysrq" command with |
214 | mconsole, followed by the letter for the requested command. | 184 | mconsole, followed by the letter for the requested command. |
215 | 185 | ||
216 | The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y | 186 | The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y |
217 | unless you really know what this hack does. | 187 | unless you really know what this hack does. |
218 | 188 | ||
219 | config SMP | 189 | config SMP |
220 | bool "Symmetric multi-processing support (EXPERIMENTAL)" | 190 | bool "Symmetric multi-processing support (EXPERIMENTAL)" |
221 | default n | 191 | default n |
222 | #SMP_BROKEN is for x86_64. | 192 | #SMP_BROKEN is for x86_64. |
223 | depends on MODE_TT && EXPERIMENTAL && (!SMP_BROKEN || (BROKEN && SMP_BROKEN)) | 193 | depends on EXPERIMENTAL && (!SMP_BROKEN || (BROKEN && SMP_BROKEN)) |
224 | help | 194 | help |
225 | This option enables UML SMP support. | 195 | This option enables UML SMP support. |
226 | It is NOT related to having a real SMP box. Not directly, at least. | 196 | It is NOT related to having a real SMP box. Not directly, at least. |
227 | 197 | ||
228 | UML implements virtual SMP by allowing as many processes to run | 198 | UML implements virtual SMP by allowing as many processes to run |
229 | simultaneously on the host as there are virtual processors configured. | 199 | simultaneously on the host as there are virtual processors configured. |
230 | 200 | ||
231 | Obviously, if the host is a uniprocessor, those processes will | 201 | Obviously, if the host is a uniprocessor, those processes will |
232 | timeshare, but, inside UML, will appear to be running simultaneously. | 202 | timeshare, but, inside UML, will appear to be running simultaneously. |
233 | If the host is a multiprocessor, then UML processes may run | 203 | If the host is a multiprocessor, then UML processes may run |
234 | simultaneously, depending on the host scheduler. | 204 | simultaneously, depending on the host scheduler. |
235 | 205 | ||
236 | This, however, is supported only in TT mode. So, if you use the SKAS | 206 | This, however, is supported only in TT mode. So, if you use the SKAS |
237 | patch on your host, switching to TT mode and enabling SMP usually gives | 207 | patch on your host, switching to TT mode and enabling SMP usually |
238 | you worse performances. | 208 | gives you worse performances. |
239 | Also, since the support for SMP has been under-developed, there could | 209 | Also, since the support for SMP has been under-developed, there could |
240 | be some bugs being exposed by enabling SMP. | 210 | be some bugs being exposed by enabling SMP. |
241 | 211 | ||
242 | If you don't know what to do, say N. | 212 | If you don't know what to do, say N. |
243 | 213 | ||
244 | config NR_CPUS | 214 | config NR_CPUS |
245 | int "Maximum number of CPUs (2-32)" | 215 | int "Maximum number of CPUs (2-32)" |
@@ -251,29 +221,24 @@ config NEST_LEVEL | |||
251 | int "Nesting level" | 221 | int "Nesting level" |
252 | default "0" | 222 | default "0" |
253 | help | 223 | help |
254 | This is set to the number of layers of UMLs that this UML will be run | 224 | This is set to the number of layers of UMLs that this UML will be run |
255 | in. Normally, this is zero, meaning that it will run directly on the | 225 | in. Normally, this is zero, meaning that it will run directly on the |
256 | host. Setting it to one will build a UML that can run inside a UML | 226 | host. Setting it to one will build a UML that can run inside a UML |
257 | that is running on the host. Generally, if you intend this UML to run | 227 | that is running on the host. Generally, if you intend this UML to run |
258 | inside another UML, set CONFIG_NEST_LEVEL to one more than the host | 228 | inside another UML, set CONFIG_NEST_LEVEL to one more than the host |
259 | UML. | 229 | UML. |
260 | |||
261 | Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to | ||
262 | greater than one, then the guest UML should have its CONFIG_NEST_LEVEL | ||
263 | set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS. | ||
264 | Only change this if you are running nested UMLs. | ||
265 | 230 | ||
266 | config HIGHMEM | 231 | config HIGHMEM |
267 | bool "Highmem support (EXPERIMENTAL)" | 232 | bool "Highmem support (EXPERIMENTAL)" |
268 | depends on !64BIT && EXPERIMENTAL | 233 | depends on !64BIT && EXPERIMENTAL |
269 | default n | 234 | default n |
270 | help | 235 | help |
271 | This was used to allow UML to run with big amounts of memory. | 236 | This was used to allow UML to run with big amounts of memory. |
272 | Currently it is unstable, so if unsure say N. | 237 | Currently it is unstable, so if unsure say N. |
273 | 238 | ||
274 | To use big amounts of memory, it is recommended to disable TT mode (i.e. | 239 | To use big amounts of memory, it is recommended enable static |
275 | CONFIG_MODE_TT) and enable static linking (i.e. CONFIG_STATIC_LINK) - | 240 | linking (i.e. CONFIG_STATIC_LINK) - this should allow the |
276 | this should allow the guest to use up to 2.75G of memory. | 241 | guest to use up to 2.75G of memory. |
277 | 242 | ||
278 | config KERNEL_STACK_ORDER | 243 | config KERNEL_STACK_ORDER |
279 | int "Kernel stack size order" | 244 | int "Kernel stack size order" |
@@ -281,20 +246,9 @@ config KERNEL_STACK_ORDER | |||
281 | range 1 10 if 64BIT | 246 | range 1 10 if 64BIT |
282 | default 0 if !64BIT | 247 | default 0 if !64BIT |
283 | help | 248 | help |
284 | This option determines the size of UML kernel stacks. They will | 249 | This option determines the size of UML kernel stacks. They will |
285 | be 1 << order pages. The default is OK unless you're running Valgrind | 250 | be 1 << order pages. The default is OK unless you're running Valgrind |
286 | on UML, in which case, set this to 3. | 251 | on UML, in which case, set this to 3. |
287 | |||
288 | config UML_REAL_TIME_CLOCK | ||
289 | bool "Real-time Clock" | ||
290 | default y | ||
291 | help | ||
292 | This option makes UML time deltas match wall clock deltas. This should | ||
293 | normally be enabled. The exception would be if you are debugging with | ||
294 | UML and spend long times with UML stopped at a breakpoint. In this | ||
295 | case, when UML is restarted, it will call the timer enough times to make | ||
296 | up for the time spent at the breakpoint. This could result in a | ||
297 | noticeable lag. If this is a problem, then disable this option. | ||
298 | 252 | ||
299 | endmenu | 253 | endmenu |
300 | 254 | ||