All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: David Hildenbrand <david@redhat.com>,
	Igor Mammedov <imammedo@redhat.com>,
	qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, qemu-s390x@nongnu.org, dgilbert@redhat.com
Subject: Re: [Qemu-devel] [qemu-s390x] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory()
Date: Fri, 2 Aug 2019 12:24:32 +0200	[thread overview]
Message-ID: <b9081e8c-7729-c77e-6d74-7bd639e98262@de.ibm.com> (raw)
In-Reply-To: <cda9803f-f6ba-6e3b-13a4-146e6d4e53a7@redhat.com>



On 02.08.19 10:37, David Hildenbrand wrote:
> On 02.08.19 10:29, Christian Borntraeger wrote:
>>
>>
>> On 02.08.19 10:04, David Hildenbrand wrote:
>>> 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.
>>>
>>> So if I understand it correctly, we only call
>>> memory_region_allocate_system_memory() in case the guest initial memory
>>> size exceeds KVM_SLOT_MAX_BYTES - ~8TB.
>>
>> We always call it. We just call it twice for > 8TB
> 
> Yeah, that's what I meant.
> 
>>>
>>> Do we *really* care about keeping migration of systems running that most
>>> probably nobody (except Christian ;) ) really uses? (especially not in
>>> production).
>>>
>>> I am fine keeping migration running if it's easy, but introducing hacks
>>> (reading below) for such obscure use cases - I don't know.
>>>
>>> @Christian: Please prove me wrong. :)
>>
>> For the time being we can block migration for guests > 8TB if that helps (it should not
>> fail in a guest killing fashion), but we should
>> 1. continue to be able to migrate guests < 8TB
>> 2. continue to be 
>>
>> On the other hand I find "and suddenly it fails if you go beyond this" really
>> unpleasant. So it would be interesting to see the next round of patches to 
>> check how "hacky" those really are.
> 
> I mean migration will work perfectly fine once we fixed it for new QEMU
> versions. It's only the older QEMU versions to/from the > fixed one.

I think that would be fine. We just have to make sure that migration really
fails in a way that the system continues to run. 
> 
> Looking at the log I can see that this was introduced with v2.12.0.
> 
> I would document this in the next release notes: "Migration of unusual
> big VMs (>= 8TB) will not work from/to previous QEMU versions (up to
> v2.12, before that starting such guests didn't even work)."

Yes, sounds good.



  reply	other threads:[~2019-08-02 10:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-29 14:52 [Qemu-devel] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory() Igor Mammedov
2019-07-29 14:52 ` [Qemu-devel] [PATCH RFC 1/2] memory: make MemoryRegion alias migratable Igor Mammedov
2019-07-29 17:53   ` Dr. David Alan Gilbert
2019-07-30 13:25     ` Igor Mammedov
2019-07-30 13:34       ` Paolo Bonzini
2019-07-30 14:35         ` Igor Mammedov
2019-07-30 15:41           ` Dr. David Alan Gilbert
2019-07-29 14:52 ` [Qemu-devel] [PATCH RFC 2/2] s390: do not call memory_region_allocate_system_memory() multiple times Igor Mammedov
2019-07-29 14:58 ` [Qemu-devel] [PATCH RFC 0/2] s390: stop abusing memory_region_allocate_system_memory() Cornelia Huck
2019-07-30 15:22 ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2019-07-30 15:49   ` Igor Mammedov
2019-08-02  8:04 ` David Hildenbrand
2019-08-02  8:23   ` David Hildenbrand
2019-08-02  8:26   ` David Hildenbrand
2019-08-02  8:29   ` Christian Borntraeger
2019-08-02  8:37     ` David Hildenbrand
2019-08-02 10:24       ` Christian Borntraeger [this message]
2019-08-02  9:18     ` Igor Mammedov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b9081e8c-7729-c77e-6d74-7bd639e98262@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.