From: Alexander Graf <agraf@suse.de>
To: Matthew Rosato <mjrosato@linux.vnet.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-devel@nongnu.org
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
imammedo@redhat.com, rth@twiddle.net, aliguori@amazon.com,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v3 3/4] virtio-ccw: Include standby memory when calculating storage increment
Date: Tue, 13 May 2014 15:43:58 +0200 [thread overview]
Message-ID: <5372219E.6070503@suse.de> (raw)
In-Reply-To: <53721B27.1090507@linux.vnet.ibm.com>
On 13.05.14 15:16, Matthew Rosato wrote:
> On 05/12/2014 03:43 AM, Christian Borntraeger wrote:
>> On 07/05/14 20:05, Matthew Rosato wrote:
>>> When determining the memory increment size, use the maxmem size if
>>> it was specified.
>>>
>>> Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
>>> ---
>>> hw/s390x/s390-virtio-ccw.c | 44 ++++++++++++++++++++++++++++++++++++--------
>>> target-s390x/cpu.h | 3 +++
>>> 2 files changed, 39 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>>> index 0d4f6ae..a8be0f7 100644
>>> --- a/hw/s390x/s390-virtio-ccw.c
>>> +++ b/hw/s390x/s390-virtio-ccw.c
>>> @@ -17,6 +17,7 @@
>>> #include "ioinst.h"
>>> #include "css.h"
>>> #include "virtio-ccw.h"
>>> +#include "qemu/config-file.h"
>>>
>>> void io_subsystem_reset(void)
>>> {
>>> @@ -84,17 +85,33 @@ static void ccw_init(QEMUMachineInitArgs *args)
>>> ram_addr_t my_ram_size = args->ram_size;
>>> MemoryRegion *sysmem = get_system_memory();
>>> MemoryRegion *ram = g_new(MemoryRegion, 1);
>>> - int shift = 0;
>>> + sclpMemoryHotplugDev *mhd = get_sclp_memory_hotplug_dev();
>>> uint8_t *storage_keys;
>>> int ret;
>>> VirtualCssBus *css_bus;
>>> -
>>> - /* s390x ram size detection needs a 16bit multiplier + an increment. So
>>> - guests > 64GB can be specified in 2MB steps etc. */
>>> - while ((my_ram_size >> (20 + shift)) > 65535) {
>>> - shift++;
>>> + QemuOpts *opts = qemu_opts_find(qemu_find_opts("memory"), NULL);
>>> + ram_addr_t pad_size = 0;
>>> + ram_addr_t maxmem = qemu_opt_get_size(opts, "maxmem", 0);
>>> + ram_addr_t standby_mem_size = maxmem - my_ram_size;
>>> +
>>> + /* The storage increment size is a multiple of 1M and is a power of 2.
>>> + * The number of storage increments must be MAX_STORAGE_INCREMENTS or fewer.
>>> + * The variable 'mhd->increment_size' is an exponent of 2 that can be
>>> + * used to calculate the size (in bytes) of an increment. */
>>> + mhd->increment_size = 20;
>>> + while ((my_ram_size >> mhd->increment_size) > MAX_STORAGE_INCREMENTS) {
>>> + mhd->increment_size++;
>>> + }
>>> + while ((standby_mem_size >> mhd->increment_size) > MAX_STORAGE_INCREMENTS) {
>>> + mhd->increment_size++;
>>> }
>> Looking back into the mail thread, Alex requested to make the code for standy/non-standby identical.
>> Now: The limit of 1020 (MAX_STORAGE_INCREMENTS) is only given if standby memory exists. Without standby memory, we could still used 64k as a divider.(zVM also does only impose this limit with standby memory).
>> What does that mean: With this patch the memory size granularity gets bigger. e.g. a guest can have
>> 1019MB, 1020MB, 1022MB, 1024MB and so on (1021MB is no longer possible, but it was before).
> Hmm, this is a good point. I didn't think about it when I made the
> change per Alex. If nobody has a strong opinion here, I think I'd
> rather go back to special casing this in the next version, to keep the
> 'normal case' (without standby memory) more robust.
Wouldn't it be more confusing if the guest configuration suddenly
changes when you add standby memory?
Alex
next prev parent reply other threads:[~2014-05-13 13:44 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-07 18:05 [Qemu-devel] [PATCH v3 0/4] s390: Support for Hotplug of Standby Memory Matthew Rosato
2014-05-07 18:05 ` [Qemu-devel] [PATCH v3 1/4] vl.c: extend -m option to support options for memory hotplug Matthew Rosato
2014-05-07 18:50 ` Alexander Graf
2014-05-07 19:00 ` Matthew Rosato
2014-05-08 8:43 ` Alexander Graf
2014-05-09 12:35 ` Christian Borntraeger
2014-05-15 13:53 ` Igor Mammedov
2014-05-07 18:05 ` [Qemu-devel] [PATCH v3 2/4] sclp-s390: Add device to manage s390 " Matthew Rosato
2014-05-07 18:05 ` [Qemu-devel] [PATCH v3 3/4] virtio-ccw: Include standby memory when calculating storage increment Matthew Rosato
2014-05-12 7:43 ` Christian Borntraeger
2014-05-13 13:16 ` Matthew Rosato
2014-05-13 13:43 ` Alexander Graf [this message]
2014-05-13 14:04 ` Matthew Rosato
2014-05-07 18:05 ` [Qemu-devel] [PATCH v3 4/4] sclp-s390: Add memory hotplug SCLPs Matthew Rosato
2014-05-12 7:35 ` Christian Borntraeger
2014-05-13 18:02 ` Matthew Rosato
2014-05-15 12:06 ` Christian Borntraeger
2014-05-12 7:46 ` [Qemu-devel] [PATCH v3 0/4] s390: Support for Hotplug of Standby Memory Christian Borntraeger
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=5372219E.6070503@suse.de \
--to=agraf@suse.de \
--cc=aliguori@amazon.com \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=imammedo@redhat.com \
--cc=mjrosato@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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).