On 02/10/2014 05:32 PM, Alexey Kardashevskiy wrote: > At the moment if the user asked for huge pages and there is no more huge > pages, QEMU prints warning and falls back to the anonymous memory > allocator which is quite easy not to notice. QEMU also does so even > if the user specified -mem-prealloc and it seems wrong as the user > specifically requested huge pages for the entire RAM but QEMU failed to do > so and continued. On PPC64 this will produce a fragile guest as QEMU > tells the guest via device-tree that it can use huge pages when it > actually cannot. > > This adds message+exit if RAM cannot be preallocated from huge pages.
Too bad? Should I increase my personal pinging timeout from 1 to 2 weeks to avoid annoying the community? :) Thanks! > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> > --- > exec.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/exec.c b/exec.c > index 9ad0a4b..deb8279 100644 > --- a/exec.c > +++ b/exec.c > @@ -1041,6 +1041,10 @@ static void *file_ram_alloc(RAMBlock *block, > > area = mmap(0, memory, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); > if (area == MAP_FAILED) { > + if (mem_prealloc) { > + perror("file_ram_alloc: failed to preallocate RAM"); > + exit(1); > + } > perror("file_ram_alloc: can't mmap RAM pages"); > close(fd); > return (NULL); > -- Alexey