From: David Hildenbrand <david@redhat.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: Janosch Frank <frankja@linux.vnet.ibm.com>,
Thomas Huth <thuth@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
Alexander Graf <agraf@suse.de>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x <qemu-s390x@nongnu.org>,
Halil Pasic <pasic@linux.vnet.ibm.com>,
imbrenda@linux.vnet.ibm.com, Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [qemu-s390x] [PATCH 1/1] s390x/sclp: fix maxram calculation
Date: Tue, 31 Jul 2018 10:34:21 +0200 [thread overview]
Message-ID: <40ec84cc-7426-54ab-871b-909ef6cdc9b7@redhat.com> (raw)
In-Reply-To: <20180730174714.3678f0fa.cohuck@redhat.com>
On 30.07.2018 17:47, Cornelia Huck wrote:
> On Mon, 30 Jul 2018 17:43:42 +0200
> David Hildenbrand <david@redhat.com> wrote:
>
>> On 30.07.2018 16:09, Christian Borntraeger wrote:
>>> We clamp down ram_size to match the sclp increment size. We do
>>> not do the same for maxram_size, which means for large guests
>>> with some sizes (e.g. -m 50000) maxram_size differs from ram_size.
>>> This can break other code (e.g. CMMA migration) which uses maxram_size
>>> to calculate the number of pages and then throws some errors.
>>>
>>> Fixes: 82fab5c5b90e468f3e9d54c ("s390x/sclp: remove memory hotplug support")
>>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>>> CC: qemu-stable@nongnu.org
>>> CC: David Hildenbrand <david@redhat.com>
>>> ---
>>> hw/s390x/sclp.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
>>> index bd2a024..4510a80 100644
>>> --- a/hw/s390x/sclp.c
>>> +++ b/hw/s390x/sclp.c
>>> @@ -320,6 +320,7 @@ static void sclp_memory_init(SCLPDevice *sclp)
>>> initial_mem = initial_mem >> increment_size << increment_size;
>>>
>>> machine->ram_size = initial_mem;
>>> + machine->maxram_size = initial_mem;
>>> /* let's propagate the changed ram size into the global variable. */
>>> ram_size = initial_mem;
>>> }
>>>
>>
>> BTW, I handle it in may private patch like this
>>
>> static inline SCLPDevice *get_sclp_device(void)
>> {
>> @@ -319,9 +321,12 @@ static void sclp_memory_init(SCLPDevice *sclp)
>> * down to align with the nearest increment boundary. */
>> initial_mem = initial_mem >> increment_size << increment_size;
>>
>> - machine->ram_size = initial_mem;
>> - /* let's propagate the changed ram size into the global variable. */
>> - ram_size = initial_mem;
>> + /* propagate the changed ram size into the different places */
>> + if (initial_mem != machine->ram_size) {
>> + machine->maxram_size -= machine->ram_size - initial_mem;
>> + machine->ram_size = initial_mem;
>> + ram_size = initial_mem;
>> + }
>> }
>>
>> You would right now overwrite any maxmem setting (which might be ok as
>> we don't support it yet).
>>
>
> So, will you (for whatever value of 'you') submit more patches for 3.1?
>
Once we have memory device support for s390x that will be needed. But
the person that implemented cmma migration should fix the handling and
only try to migrate memory that is actually there. This was broken
before my patch, just never happened as Linux always onlines all memory
it sees via SCLP (thereby creating the memory regions).
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2018-07-31 8:34 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-30 14:09 [Qemu-devel] [PATCH 1/1] s390x/sclp: fix maxram calculation Christian Borntraeger
2018-07-30 14:34 ` David Hildenbrand
2018-07-30 15:00 ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2018-07-30 15:17 ` David Hildenbrand
2018-07-30 15:20 ` Christian Borntraeger
2018-07-30 15:28 ` David Hildenbrand
2018-07-30 15:32 ` Cornelia Huck
2018-07-30 15:31 ` [Qemu-devel] " Christian Borntraeger
2018-07-30 16:58 ` Michael Roth
2018-07-31 6:52 ` Cornelia Huck
2018-07-31 10:48 ` Cornelia Huck
2018-07-30 15:43 ` David Hildenbrand
2018-07-30 15:47 ` Cornelia Huck
2018-07-31 8:34 ` David Hildenbrand [this message]
2018-07-30 15:55 ` Cornelia Huck
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=40ec84cc-7426-54ab-871b-909ef6cdc9b7@redhat.com \
--to=david@redhat.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=frankja@linux.vnet.ibm.com \
--cc=imbrenda@linux.vnet.ibm.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=thuth@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).