[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] memory-device: break the loop if no hint is
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] memory-device: break the loop if no hint is provided |
Date: |
Mon, 29 Jul 2019 09:45:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 |
On 28.07.19 15:13, Wei Yang wrote:
> When there is no hint, the first un-overlapped range is the proper one.
> Just break the loop instead of iterate the whole list.
>
> Signed-off-by: Wei Yang <address@hidden>
> ---
> hw/mem/memory-device.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
> index df3261b32a..413b514586 100644
> --- a/hw/mem/memory-device.c
> +++ b/hw/mem/memory-device.c
> @@ -180,6 +180,8 @@ static uint64_t memory_device_get_free_addr(MachineState
> *ms,
> range_make_empty(&new);
> break;
> }
> + } else if (!hint) {
> + break;
> }
> }
>
>
I think
a) This is fine. I was not able to construct a counter-example where
this would not work. Whenever we modify the range, we check against the
next one in the sorted list. If there is no overlap, it fits. And, it
won't overlap with any other range (and therefore never be changed again)
b) This should therefore not change the assignment order / break migration.
Maybe mention that this will not change the assigned addresses compared
to old code in all scenarios.
Reviewed-by: David Hildenbrand <address@hidden>
--
Thanks,
David / dhildenb