* [Qemu-devel] [PATCHv3 0/2] pc: Fix startup with memory hotplug enabled @ 2015-01-29 13:48 Peter Krempa 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters Peter Krempa 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 2/2] pc: memory: Validate alignment of maxram_size to page size Peter Krempa 0 siblings, 2 replies; 4+ messages in thread From: Peter Krempa @ 2015-01-29 13:48 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Krempa, Michael S. Tsirkin Tweak error messages to make sense and add check to verify that maxmem_size is properly aligned right away rather than just crashing afterwards. Peter Krempa (2): vl.c: Fix error messages when parsing maxmem parameters pc: memory: Validate alignment of maxram_size to page size hw/i386/pc.c | 7 +++++++ vl.c | 34 ++++++++++++++++------------------ 2 files changed, 23 insertions(+), 18 deletions(-) -- 2.2.2 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters 2015-01-29 13:48 [Qemu-devel] [PATCHv3 0/2] pc: Fix startup with memory hotplug enabled Peter Krempa @ 2015-01-29 13:48 ` Peter Krempa 2015-01-29 13:57 ` Eric Blake 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 2/2] pc: memory: Validate alignment of maxram_size to page size Peter Krempa 1 sibling, 1 reply; 4+ messages in thread From: Peter Krempa @ 2015-01-29 13:48 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Krempa, Michael S. Tsirkin Produce more human readable error messages and fix few spelling mistakes. Also remove a redundant check for the max memory size. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- Notes: Version 3: - forgot a word in one of the error messages Version 2: - fixed spacing in error message - changed control flow to allow maxmem == ram_size in case slots == 0 vl.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/vl.c b/vl.c index 983259b..b162465 100644 --- a/vl.c +++ b/vl.c @@ -2694,29 +2694,27 @@ static void set_memory_options(uint64_t *ram_slots, ram_addr_t *maxram_size) uint64_t slots; sz = qemu_opt_get_size(opts, "maxmem", 0); + slots = qemu_opt_get_number(opts, "slots", 0); if (sz < ram_size) { - error_report("invalid -m option value: maxmem " - "(0x%" PRIx64 ") <= initial memory (0x" - RAM_ADDR_FMT ")", sz, ram_size); + error_report("invalid value of -m option maxmem: " + "maximum memory size (0x%" PRIx64 ") must be at least " + "the initial memory size (0x" RAM_ADDR_FMT ")", + sz, ram_size); exit(EXIT_FAILURE); - } - - slots = qemu_opt_get_number(opts, "slots", 0); - if ((sz > ram_size) && !slots) { - error_report("invalid -m option value: maxmem " - "(0x%" PRIx64 ") more than initial memory (0x" - RAM_ADDR_FMT ") but no hotplug slots where " - "specified", sz, ram_size); + } else if (sz > ram_size) { + if (!slots) { + error_report("invalid value of -m option: maxmem was " + "specified, but no hotplug slots were specified"); + exit(EXIT_FAILURE); + } + } else if (slots) { + error_report("invalid value of -m option maxmem: " + "memory slots were specified but maximum memory size " + "(0x%" PRIx64 ") is equal to the initial memory size " + "(0x" RAM_ADDR_FMT ")", sz, ram_size); exit(EXIT_FAILURE); } - if ((sz <= ram_size) && slots) { - error_report("invalid -m option value: %" - PRIu64 " hotplug slots where specified but " - "maxmem (0x%" PRIx64 ") <= initial memory (0x" - RAM_ADDR_FMT ")", slots, sz, ram_size); - exit(EXIT_FAILURE); - } *maxram_size = sz; *ram_slots = slots; } else if ((!maxmem_str && slots_str) || -- 2.2.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters Peter Krempa @ 2015-01-29 13:57 ` Eric Blake 0 siblings, 0 replies; 4+ messages in thread From: Eric Blake @ 2015-01-29 13:57 UTC (permalink / raw) To: Peter Krempa, qemu-devel; +Cc: Michael S. Tsirkin [-- Attachment #1: Type: text/plain, Size: 742 bytes --] On 01/29/2015 06:48 AM, Peter Krempa wrote: > Produce more human readable error messages and fix few spelling > mistakes. > > Also remove a redundant check for the max memory size. > > Signed-off-by: Peter Krempa <pkrempa@redhat.com> > --- > > Notes: > Version 3: > - forgot a word in one of the error messages > > Version 2: > - fixed spacing in error message > - changed control flow to allow maxmem == ram_size in case slots == 0 > > vl.c | 34 ++++++++++++++++------------------ > 1 file changed, 16 insertions(+), 18 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 604 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCHv3 2/2] pc: memory: Validate alignment of maxram_size to page size 2015-01-29 13:48 [Qemu-devel] [PATCHv3 0/2] pc: Fix startup with memory hotplug enabled Peter Krempa 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters Peter Krempa @ 2015-01-29 13:48 ` Peter Krempa 1 sibling, 0 replies; 4+ messages in thread From: Peter Krempa @ 2015-01-29 13:48 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Krempa, Michael S. Tsirkin If the maxram_size is not aligned and dimm devices were added on the command line qemu would terminate with a rather unhelpful message: ERROR:hw/mem/pc-dimm.c:150:pc_dimm_get_free_addr: assertion failed: (QEMU_ALIGN_UP(address_space_size, align) == address_space_size) In case no dimm device was originally added on the commandline qemu exits on the assertion failure. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> --- hw/i386/pc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index c7af6aa..8cf405a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1246,6 +1246,13 @@ FWCfgState *pc_memory_init(MachineState *machine, exit(EXIT_FAILURE); } + if (QEMU_ALIGN_UP(machine->maxram_size, + TARGET_PAGE_SIZE) != machine->maxram_size) { + error_report("maximum memory size must by aligned to multiple of " + "%d bytes", TARGET_PAGE_SIZE); + exit(EXIT_FAILURE); + } + pcms->hotplug_memory_base = ROUND_UP(0x100000000ULL + above_4g_mem_size, 1ULL << 30); -- 2.2.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-01-29 14:26 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-01-29 13:48 [Qemu-devel] [PATCHv3 0/2] pc: Fix startup with memory hotplug enabled Peter Krempa 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 1/2] vl.c: Fix error messages when parsing maxmem parameters Peter Krempa 2015-01-29 13:57 ` Eric Blake 2015-01-29 13:48 ` [Qemu-devel] [PATCHv3 2/2] pc: memory: Validate alignment of maxram_size to page size Peter Krempa
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.