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


Reply via email to