On Tue, 12 Apr 2016 23:45:18 +0200 Paolo Bonzini <pbonz...@redhat.com> wrote:
> > > On 07/04/2016 23:31, Dominik Dingel wrote: > > diff --git a/exec.c b/exec.c > > index c4f9036..1ae98e4 100644 > > --- a/exec.c > > +++ b/exec.c > > @@ -1241,6 +1241,7 @@ static void *file_ram_alloc(RAMBlock *block, > > void *area; > > int fd = -1; > > int64_t page_size; > > + int64_t alignment; > > > > if (kvm_enabled() && !kvm_has_sync_mmu()) { > > error_setg(errp, > > @@ -1296,7 +1297,8 @@ static void *file_ram_alloc(RAMBlock *block, > > } > > > > page_size = qemu_fd_getpagesize(fd); > > - block->mr->align = page_size; > > + alignment = MAX(page_size, QEMU_VMALLOC_ALIGN); > > + block->mr->align = alignment; > > > > if (memory < page_size) { > > error_setg(errp, "memory size 0x" RAM_ADDR_FMT " must be equal to " > > @@ -1305,7 +1307,7 @@ static void *file_ram_alloc(RAMBlock *block, > > goto error; > > } > > > > - memory = ROUND_UP(memory, page_size); > > + memory = ROUND_UP(memory, alignment); > > I think this change is not necessary either; it is enough to change the > qemu_ram_mmap below. You are right "memory" will never be back propagated to anything related to memory slots. On which we have such a size constraint. Thanks, Dominik