From fdec9918578ec38738ecf250fa2c2656a44796b5 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Fri, 15 Jun 2012 05:10:30 +0000 Subject: s390: autodetect map private By default qemu will use MAP_PRIVATE for guest pages. This will write protect pages and thus break on s390 systems that dont support this feature. Therefore qemu has a hack to always use MAP_SHARED for s390. But MAP_SHARED has other problems (no dirty pages tracking, a lot more swap overhead etc.) Newer systems allow the distinction via KVM_CAP_S390_COW. With this feature qemu can use the standard qemu alloc if available, otherwise it will use the old s390 hack. Signed-off-by: Christian Borntraeger Signed-off-by: Jens Freimann Acked-by: Jan Kiszka Signed-off-by: Alexander Graf --- oslib-posix.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'oslib-posix.c') diff --git a/oslib-posix.c b/oslib-posix.c index 6b7ba64..dbeb627 100644 --- a/oslib-posix.c +++ b/oslib-posix.c @@ -41,6 +41,9 @@ extern int daemon(int, int); therefore we need special code which handles running on Valgrind. */ # define QEMU_VMALLOC_ALIGN (512 * 4096) # define CONFIG_VALGRIND +#elif defined(__linux__) && defined(__s390x__) + /* Use 1 MiB (segment size) alignment so gmap can be used by KVM. */ +# define QEMU_VMALLOC_ALIGN (256 * 4096) #else # define QEMU_VMALLOC_ALIGN getpagesize() #endif -- cgit v1.1