aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/Kconfig.i386
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2008-02-08 07:22:07 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-08 12:22:42 -0500
commit536788fe2d28e11db6aeda74207d95d750fb761f (patch)
tree73df2d3a46c542c71d3a84c20c8fd1ce617386a3 /arch/um/Kconfig.i386
parent2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 (diff)
uml: runtime host VMSPLIT detection
Calculate TASK_SIZE at run-time by figuring out the host's VMSPLIT - this is needed on i386 if UML is to run on hosts with varying VMSPLITs without recompilation. TASK_SIZE is now defined in terms of a variable, task_size. This gets rid of an include of pgtable.h from processor.h, which can cause include loops. On i386, task_size is calculated early in boot by probing the address space in a binary search to figure out where the boundary between usable and non-usable memory is. This tries to make sure that a page that is considered to be in userspace is, or can be made, read-write. I'm concerned about a system-global VDSO page in kernel memory being hit and considered to be a userspace page. On x86_64, task_size is just the old value of CONFIG_TOP_ADDR. A bunch of config variable are gone now. CONFIG_TOP_ADDR is directly replaced by TASK_SIZE. NEST_LEVEL is gone since the relocation of the stubs makes it irrelevant. All the HOST_VMSPLIT stuff is gone. All references to these in arch/um/Makefile are also gone. I noticed and fixed a missing extern in os.h when adding os_get_task_size. Note: This has been revised to fix the 32-bit UML on 64-bit host bug that Miklos ran into. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/Kconfig.i386')
-rw-r--r--arch/um/Kconfig.i38637
1 files changed, 0 insertions, 37 deletions
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.i386
index e75264603d24..3cd8a04d66d8 100644
--- a/arch/um/Kconfig.i386
+++ b/arch/um/Kconfig.i386
@@ -23,43 +23,6 @@ config SEMAPHORE_SLEEPERS
23 bool 23 bool
24 default y 24 default y
25 25
26choice
27 prompt "Host memory split"
28 default HOST_VMSPLIT_3G
29 help
30 This is needed when the host kernel on which you run has a non-default
31 (like 2G/2G) memory split, instead of the customary 3G/1G. If you did
32 not recompile your own kernel but use the default distro's one, you can
33 safely accept the "Default split" option.
34
35 It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via
36 CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck
37 patchset by Con Kolivas, or other ones) - option names match closely the
38 host CONFIG_VM_SPLIT_* ones.
39
40 A lower setting (where 1G/3G is lowest and 3G/1G is higher) will
41 tolerate even more "normal" host kernels, but an higher setting will be
42 stricter.
43
44 So, if you do not know what to do here, say 'Default split'.
45
46config HOST_VMSPLIT_3G
47 bool "Default split (3G/1G user/kernel host split)"
48config HOST_VMSPLIT_3G_OPT
49 bool "3G/1G user/kernel host split (for full 1G low memory)"
50config HOST_VMSPLIT_2G
51 bool "2G/2G user/kernel host split"
52config HOST_VMSPLIT_1G
53 bool "1G/3G user/kernel host split"
54endchoice
55
56config TOP_ADDR
57 hex
58 default 0xB0000000 if HOST_VMSPLIT_3G_OPT
59 default 0x78000000 if HOST_VMSPLIT_2G
60 default 0x40000000 if HOST_VMSPLIT_1G
61 default 0xC0000000
62
63config 3_LEVEL_PGTABLES 26config 3_LEVEL_PGTABLES
64 bool "Three-level pagetables (EXPERIMENTAL)" 27 bool "Three-level pagetables (EXPERIMENTAL)"
65 default n 28 default n