qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-s390x] [PATCH for-4.2 v3 0/2] s390: stop abusing memory_region


From: Christian Borntraeger
Subject: Re: [qemu-s390x] [PATCH for-4.2 v3 0/2] s390: stop abusing memory_region_allocate_system_memory()
Date: Fri, 2 Aug 2019 16:59:56 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0


On 02.08.19 16:42, Christian Borntraeger wrote:
> On 02.08.19 15:32, Igor Mammedov wrote:
>> Changelog:
>>   since v2:
>>     - break migration from old QEMU (since 2.12-4.1) for guest with >8TB RAM
>>       and drop migratable aliases patch as was agreed during v2 review
>>     - drop 4.2 machines patch as it's not prerequisite anymore
>>   since v1:
>>     - include 4.2 machines patch for adding compat RAM layout on top
>>     - 2/4 add missing in v1 patch for splitting too big MemorySection on
>>           several memslots
>>     - 3/4 amend code path on alias destruction to ensure that RAMBlock is
>>           cleaned properly
>>     - 4/4 add compat machine code to keep old layout (migration-wise) for
>>           4.1 and older machines 
>>
>>
>> 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. During v2 review it was agreed to 
>> ignore
>> migration breakage (documenting it in release notes) and leaving only KVM 
>> fix.
>>
>> In order to replace these several RAM chunks with a single memdev and keep it
>> working with KVM memslot size limit, following was done:
>>    * [1/2] split too big RAM chunk inside of KVM code on several memory slots
>>            if necessary
>>    * [2/2] drop manual ram splitting in s390 code
>>
>>
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
> 
> With the fixup this patch set seems to work on s390. I can start 9TB guests 
> and
> I can migrate smaller guests between 4.1+patch and 4.0 and 3.1. I currently 
> can
> not test migration for the 9TB guest due to lack of a 2nd system. 

I have to correct myself. The 9TB guest started up but it does not seem to do
anything useful (it hangs).

I will try to investigate. 


>>
>> Igor Mammedov (2):
>>   kvm: s390: split too big memory section on several memslots
>>   s390: do not call memory_region_allocate_system_memory() multiple
>>     times
>>
>>  include/hw/s390x/s390-virtio-ccw.h | 10 ++++
>>  include/sysemu/kvm_int.h           |  1 +
>>  accel/kvm/kvm-all.c                | 79 ++++++++++++++++++------------
>>  hw/s390x/s390-virtio-ccw.c         | 30 ++----------
>>  target/s390x/kvm.c                 |  1 +
>>  5 files changed, 63 insertions(+), 58 deletions(-)
>>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]