qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]