qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

  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).