[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 15/15] exec: Ram blocks with resizeable anonymous allocati
From: |
Peter Xu |
Subject: |
Re: [PATCH v3 15/15] exec: Ram blocks with resizeable anonymous allocations under POSIX |
Date: |
Fri, 28 Feb 2020 15:21:54 -0500 |
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 <address@hidden>
> + return;
> + }
> + }
> + rb->host = phys_mem_alloc(rb->max_length, &rb->mr->align, shared);
> +}
Thanks,
--
Peter Xu
[PATCH v3 13/15] util: oslib: Resizeable anonymous allocations under POSIX, David Hildenbrand, 2020/02/27
[PATCH v3 15/15] exec: Ram blocks with resizeable anonymous allocations under POSIX, David Hildenbrand, 2020/02/27
- Re: [PATCH v3 15/15] exec: Ram blocks with resizeable anonymous allocations under POSIX,
Peter Xu <=
[PATCH v3 14/15] numa: Introduce ram_block_notifiers_support_resize(), David Hildenbrand, 2020/02/27