From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org, "Michael S . Tsirkin" <mst@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Marcel Apfelbaum <marcel@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>,
Eduardo Habkost <ehabkost@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>,
Markus Armbruster <armbru@redhat.com>,
qemu-ppc@nongnu.org, Pankaj Gupta <pagupta@redhat.com>,
Alexander Graf <agraf@suse.de>, Cornelia Huck <cohuck@redhat.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Luiz Capitulino <lcapitulino@redhat.com>,
David Hildenbrand <david@redhat.com>
Subject: [Qemu-devel] [PATCH v2 14/17] s390x/sclp: make sure ram_size and maxram_size stay in sync
Date: Fri, 11 May 2018 15:19:50 +0200 [thread overview]
Message-ID: <20180511131953.12905-15-david@redhat.com> (raw)
In-Reply-To: <20180511131953.12905-1-david@redhat.com>
On s390x, we sometimes have to shrink ram_size in order to be able to
correctly indicate the size to the guest.
In case maxmem is not set, ram_size and maxram_size should always be
kept equal. Make sure to also fixup maxram_size if necessary.
In case maxmem is set, we really want to bail out in case we have to
round down, as it basically can screw up the size of the device memory
area later on.
Pleas note that this fixup ususally does not happen with sane values
for the ram size.
Signed-off-by: David Hildenbrand <david@redhat.com>
---
hw/s390x/sclp.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 047d577313..0757914374 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -21,6 +21,8 @@
#include "hw/s390x/event-facility.h"
#include "hw/s390x/s390-pci-bus.h"
#include "hw/s390x/ipl.h"
+#include "qemu/error-report.h"
+
static inline SCLPDevice *get_sclp_device(void)
{
@@ -318,9 +320,19 @@ 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;
+ /* also shrink maxram_size in case we don't have maxmem configured */
+ if (initial_mem != machine->ram_size) {
+ if (machine->ram_size < machine->maxram_size) {
+ error_report("Ram size ('" RAM_ADDR_FMT "') had to be rounded "
+ "down to ('" RAM_ADDR_FMT "'), maxmem not supported",
+ machine->ram_size, initial_mem);
+ exit(1);
+ }
+ /* propagate the changed ram size into the different places */
+ machine->ram_size = initial_mem;
+ ram_size = initial_mem;
+ machine->maxram_size = initial_mem;
+ }
}
static void sclp_init(Object *obj)
--
2.14.3
next prev parent reply other threads:[~2018-05-11 13:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-11 13:19 [Qemu-devel] [PATCH v2 00/17] MemoryDevice: use multi stage hotplug handlers David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 01/17] memory-device: drop assert related to align and start of address space David Hildenbrand
2018-05-14 1:24 ` Michael S. Tsirkin
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 02/17] qdev: let machine hotplug handler to override bus hotplug handler David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 03/17] pc: prepare for multi stage hotplug handlers David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 04/17] pc: route all memory devices through the machine hotplug handler David Hildenbrand
2018-05-12 14:47 ` Paolo Bonzini
2018-05-12 16:45 ` David Hildenbrand
2018-05-14 9:12 ` David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 05/17] spapr: prepare for multi stage hotplug handlers David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 06/17] spapr: route all memory devices through the machine hotplug handler David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 07/17] spapr: handle pc-dimm unplug via hotplug handler chain David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 08/17] spapr: handle cpu core " David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 09/17] memory-device: new functions to handle plug/unplug David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 10/17] pc-dimm: implement new memory device functions David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 11/17] memory-device: factor out pre-plug into hotplug handler David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 12/17] memory-device: factor out unplug " David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 13/17] memory-device: factor out plug " David Hildenbrand
2018-05-11 13:19 ` David Hildenbrand [this message]
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 15/17] s390x: prepare for multi stage hotplug handlers David Hildenbrand
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 16/17] s390x: initialize memory region for memory devices David Hildenbrand
2018-05-11 18:34 ` Murilo Opsfelder Araujo
2018-05-11 18:43 ` Eduardo Habkost
2018-05-12 7:53 ` David Hildenbrand
2018-05-14 23:04 ` [Qemu-devel] [Qemu-ppc] " Murilo Opsfelder Araujo
2018-05-15 5:58 ` Markus Armbruster
2018-05-15 7:57 ` David Hildenbrand
2018-05-15 14:01 ` Murilo Opsfelder Araujo
2018-05-11 13:19 ` [Qemu-devel] [PATCH v2 17/17] s390x: support " David Hildenbrand
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=20180511131953.12905-15-david@redhat.com \
--to=david@redhat.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pagupta@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@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).