On 28.02.20 21:21, Peter Xu wrote:
> 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:
Excellent idea, thanks!
--
Thanks,
David / dhildenb