[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH RFC 0/2] s390: stop abusing memory_region_alloca
From: |
Christian Borntraeger |
Subject: |
Re: [qemu-s390x] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory() |
Date: |
Tue, 30 Jul 2019 17:22:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 |
I remember that you send a similar patch a while ago and something broke on
s390x.
Have you changed something from the old patchs set?
On 29.07.19 16:52, Igor Mammedov wrote:
> While looking into unifying guest RAM allocation to use hostmem backends
> for initial RAM (especially when -mempath is used) and retiring
> memory_region_allocate_system_memory() API, leaving only single hostmem
> backend,
> I was inspecting how currently it is used by boards and it turns out several
> boards abuse it by calling the function several times (despite documented
> contract
> forbiding it).
>
> s390 is one of such boards where KVM limitation on memslot size got propagated
> to board design and memory_region_allocate_system_memory() was abused to
> satisfy
> KVM requirement for max RAM chunk where memory region alias would suffice.
>
> Unfortunately, memory_region_allocate_system_memory() usage created migration
> dependency where guest RAM is transferred in migration stream as several
> RAMBlocks
> if it's more than KVM_SLOT_MAX_BYTES.
>
> In order to replace these several RAM chunks with a single memdev and keep it
> working with KVM memslot size limit and migration compatible, following was
> done:
> * [2/2] use memory region aliases to partition hostmem backend RAM on
> KVM_SLOT_MAX_BYTES chunks, which should keep KVM side working
> * [1/2] hacked memory region aliases (to ram memory regions only) to have
> its own RAMBlocks pointing to RAM chunks owned by aliased memory
> region. While it's admittedly a hack, but it's relatively simple
> and
> allows board code rashape migration stream as necessary
>
> I haven't tried to use migratable aliases on x86 machines, but
> with it
> it could be possible to drop legacy RAM allocation and compat knob
> (cd5ff8333a) dropping '-numa node,mem' completely even for old
> machines.
>
> PS:
> Tested with ping pong cross version migration on s390 machine
> (with reduced KVM_SLOT_MAX_BYTES since I don't have access to large
> enough host)
>
>
> Igor Mammedov (2):
> memory: make MemoryRegion alias migratable
> s390: do not call memory_region_allocate_system_memory() multiple
> times
>
> exec.c | 7 ++++---
> hw/s390x/s390-virtio-ccw.c | 20 +++++++++++++++-----
> memory.c | 5 +++++
> 3 files changed, 24 insertions(+), 8 deletions(-)
>
[qemu-s390x] [PATCH RFC 2/2] s390: do not call memory_region_allocate_system_memory() multiple times, Igor Mammedov, 2019/07/29
Re: [qemu-s390x] [Qemu-devel] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory(), Cornelia Huck, 2019/07/29
Re: [qemu-s390x] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory(),
Christian Borntraeger <=