On Thu, Feb 27, 2020 at 11:12:05AM +0100, David Hildenbrand wrote: [...]
> +static void ram_block_alloc_ram(RAMBlock *rb) > +{ > + const bool shared = qemu_ram_is_shared(rb); > + > + /* > + * If we can, try to allocate actually resizeable ram. Will also fail > + * if qemu_anon_ram_alloc_resizeable() is not implemented. > + */ > + if (phys_mem_alloc == qemu_anon_ram_alloc && > + qemu_ram_is_resizeable(rb) && > + ram_block_notifiers_support_resize()) { > + rb->host = qemu_anon_ram_alloc_resizeable(rb->used_length, > + rb->max_length, > + &rb->mr->align, shared); > + if (rb->host) { > + rb->flags |= RAM_RESIZEABLE_ALLOC; A trivial nit: If it should only be set automatically by the memory code, shall we mark it our somewhere just in case someone passed this in flag explicitly (which, iiuc, is a misuse)? Maybe: assert(!(rb->flags | RAM_RESIZEABLE_ALLOC)); At the entry of this function? Other than that it looks sane to me: Reviewed-by: Peter Xu <pet...@redhat.com> > + return; > + } > + } > + rb->host = phys_mem_alloc(rb->max_length, &rb->mr->align, shared); > +} Thanks, -- Peter Xu