On Thu, Nov 26, 2009 at 02:23:14PM +0100, Alexander Graf wrote: > KVM on S390x requires the virtual address space of the guest's RAM to be > within the first 256GB. >
While I have no problem with this patch, I am curious to know the reason of this. No need to change anything in the patch. > The general direction I'd like to see KVM on S390 move is that this > requirement > is losened, but for now that's what we're stuck with. > > So let's just hack up qemu_ram_alloc until KVM behaves nicely :-). > > Signed-off-by: Alexander Graf <ag...@suse.de> > --- > exec.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/exec.c b/exec.c > index 076d26b..59150d0 100644 > --- a/exec.c > +++ b/exec.c > @@ -2411,7 +2411,13 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) > size = TARGET_PAGE_ALIGN(size); > new_block = qemu_malloc(sizeof(*new_block)); > > +#if defined(TARGET_S390) && defined(CONFIG_KVM) > + /* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB */ > + new_block->host = mmap(0x1000000, size, PROT_EXEC|PROT_READ|PROT_WRITE, > + MAP_SHARED | MAP_ANONYMOUS, -1, 0); > +#else > new_block->host = qemu_vmalloc(size); > +#endif > #ifdef MADV_MERGEABLE > madvise(new_block->host, size, MADV_MERGEABLE); > #endif > -- > 1.6.0.2 > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net