mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-09 08:17:53 -06:00
s390x: change mapping base to allow guests > 2GB
the current s390x qemu memory layout is 0x1000000: guest start 0x80000000: qemu binary which limits the amount of available memory to <2GB. This patch moves the guest pages to 32GB to not collide with the binary and to leave some space for the program break of qemu. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
a74cdab44d
commit
ff83678aee
1 changed files with 7 additions and 3 deletions
10
exec.c
10
exec.c
|
@ -2910,10 +2910,14 @@ ram_addr_t qemu_ram_alloc_from_ptr(DeviceState *dev, const char *name,
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
|
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
|
||||||
/* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB */
|
/* S390 KVM requires the topmost vma of the RAM to be smaller than
|
||||||
new_block->host = mmap((void*)0x1000000, size,
|
an system defined value, which is at least 256GB. Larger systems
|
||||||
|
have larger values. We put the guest between the end of data
|
||||||
|
segment (system break) and this value. We use 32GB as a base to
|
||||||
|
have enough room for the system break to grow. */
|
||||||
|
new_block->host = mmap((void*)0x800000000, size,
|
||||||
PROT_EXEC|PROT_READ|PROT_WRITE,
|
PROT_EXEC|PROT_READ|PROT_WRITE,
|
||||||
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
|
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
|
||||||
#else
|
#else
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_mapcache_enabled()) {
|
||||||
xen_ram_alloc(new_block->offset, size);
|
xen_ram_alloc(new_block->offset, size);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue