[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] s390x: change mapping base to allow guests > 2GB
From: |
Christian Borntraeger |
Subject: |
[Qemu-devel] s390x: change mapping base to allow guests > 2GB |
Date: |
Tue, 10 May 2011 14:49:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Lightning/1.0b2 Thunderbird/3.1.10 |
Alex,
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 <address@hidden>
Make sure that big guests (e.g. 4 GB do not collide with the binary)
--- qemu-kvm.orig/exec.c 2011-05-04 09:25:22.411957322 +0200
+++ qemu-kvm/exec.c 2011-05-10 14:45:28.158409982 +0200
@@ -2900,10 +2900,14 @@
#endif
} else {
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
- /* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB
*/
- new_block->host = mmap((void*)0x1000000, size,
+ /* S390 KVM requires the topmost vma of the RAM to be smaller than
+ 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,
- MAP_SHARED | MAP_ANONYMOUS, -1, 0);
+ MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1,
0);
#else
new_block->host = qemu_vmalloc(size);
#endif
- [Qemu-devel] s390x: change mapping base to allow guests > 2GB,
Christian Borntraeger <=