Revision ff83678a exec.c
b/exec.c | ||
---|---|---|
2910 | 2910 |
#endif |
2911 | 2911 |
} else { |
2912 | 2912 |
#if defined(TARGET_S390X) && defined(CONFIG_KVM) |
2913 |
/* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB */ |
|
2914 |
new_block->host = mmap((void*)0x1000000, size, |
|
2913 |
/* S390 KVM requires the topmost vma of the RAM to be smaller than |
|
2914 |
an system defined value, which is at least 256GB. Larger systems |
|
2915 |
have larger values. We put the guest between the end of data |
|
2916 |
segment (system break) and this value. We use 32GB as a base to |
|
2917 |
have enough room for the system break to grow. */ |
|
2918 |
new_block->host = mmap((void*)0x800000000, size, |
|
2915 | 2919 |
PROT_EXEC|PROT_READ|PROT_WRITE, |
2916 |
MAP_SHARED | MAP_ANONYMOUS, -1, 0); |
|
2920 |
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
|
|
2917 | 2921 |
#else |
2918 | 2922 |
if (xen_mapcache_enabled()) { |
2919 | 2923 |
xen_ram_alloc(new_block->offset, size); |
Also available in: Unified diff