![Paolo 'Blaisorblade' Giarrusso](/assets/img/avatar_default.png)
Now that various memory splits are enabled, add a config option allowing the user to compile UML for its need - HOST_2G_2G allowed to choose either 3G/1G or 2G/2G, and enabling it reduced the usable virtual memory. Detecting this at run time should be implemented in the future, but we must make the stop-gap measure work well enough (this is valid in _many_ cases). Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
94 lines
2.2 KiB
Plaintext
94 lines
2.2 KiB
Plaintext
menu "Host processor type and features"
|
|
|
|
source "arch/i386/Kconfig.cpu"
|
|
|
|
endmenu
|
|
|
|
config UML_X86
|
|
bool
|
|
default y
|
|
|
|
config 64BIT
|
|
bool
|
|
default n
|
|
|
|
config SEMAPHORE_SLEEPERS
|
|
bool
|
|
default y
|
|
|
|
choice
|
|
prompt "Host memory split"
|
|
default HOST_VMSPLIT_3G
|
|
---help---
|
|
This is needed when the host kernel on which you run has a non-default
|
|
(like 2G/2G) memory split, instead of the customary 3G/1G. If you did
|
|
not recompile your own kernel but use the default distro's one, you can
|
|
safely accept the "Default split" option.
|
|
|
|
It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via
|
|
CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck
|
|
patchset by Con Kolivas, or other ones) - option names match closely the
|
|
host CONFIG_VM_SPLIT_* ones.
|
|
|
|
A lower setting (where 1G/3G is lowest and 3G/1G is higher) will
|
|
tolerate even more "normal" host kernels, but an higher setting will be
|
|
stricter.
|
|
|
|
So, if you do not know what to do here, say 'Default split'.
|
|
|
|
config HOST_VMSPLIT_3G
|
|
bool "Default split (3G/1G user/kernel host split)"
|
|
config HOST_VMSPLIT_3G_OPT
|
|
bool "3G/1G user/kernel host split (for full 1G low memory)"
|
|
config HOST_VMSPLIT_2G
|
|
bool "2G/2G user/kernel host split"
|
|
config HOST_VMSPLIT_1G
|
|
bool "1G/3G user/kernel host split"
|
|
endchoice
|
|
|
|
config TOP_ADDR
|
|
hex
|
|
default 0xB0000000 if HOST_VMSPLIT_3G_OPT
|
|
default 0x78000000 if HOST_VMSPLIT_2G
|
|
default 0x40000000 if HOST_VMSPLIT_1G
|
|
default 0xC0000000
|
|
|
|
config 3_LEVEL_PGTABLES
|
|
bool "Three-level pagetables (EXPERIMENTAL)"
|
|
default n
|
|
depends on EXPERIMENTAL
|
|
help
|
|
Three-level pagetables will let UML have more than 4G of physical
|
|
memory. All the memory that can't be mapped directly will be treated
|
|
as high memory.
|
|
|
|
However, this it experimental on 32-bit architectures, so if unsure say
|
|
N (on x86-64 it's automatically enabled, instead, as it's safe there).
|
|
|
|
config STUB_CODE
|
|
hex
|
|
default 0xbfffe000 if !HOST_2G_2G
|
|
default 0x7fffe000 if HOST_2G_2G
|
|
|
|
config STUB_DATA
|
|
hex
|
|
default 0xbffff000 if !HOST_2G_2G
|
|
default 0x7ffff000 if HOST_2G_2G
|
|
|
|
config STUB_START
|
|
hex
|
|
default STUB_CODE
|
|
|
|
config ARCH_HAS_SC_SIGNALS
|
|
bool
|
|
default y
|
|
|
|
config ARCH_REUSE_HOST_VSYSCALL_AREA
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|