From: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
To: mst@redhat.com, qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, peter.crosthwaite@xilinx.com,
james.hogan@imgtec.com, jan.kiszka@siemens.com, agraf@suse.de,
scottwood@freescale.com, borntraeger@de.ibm.com,
cornelia.huck@de.ibm.com, pbonzini@redhat.com,
leon.alrae@imgtec.com, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 7/8] machine: query dump-guest-core machine property rather than qemu opts
Date: Wed, 11 Mar 2015 16:25:57 +0200 [thread overview]
Message-ID: <55005075.30606@gmail.com> (raw)
In-Reply-To: <1423064635-19045-8-git-send-email-marcel@redhat.com>
On 02/04/2015 05:43 PM, Marcel Apfelbaum wrote:
> Fixes a QEMU crash when passing dump_guest_core parameter in command line.
>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Please amend commit message:
Running
qemu-bin ... -machine pc,dump-guest-core=on
leads to crash:
x86_64-softmmu/qemu-system-x86_64 -machine pc,dump-guest-core=on
qemu-system-x86_64: qemu/util/qemu-option.c:387: qemu_opt_get_bool_helper: Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.
Aborted (core dumped)
This happens because the commit e79d5a6 ("machine: remove qemu_machine_opts global list")
removed the global option descriptions and moved them to MachineState's QOM properties.
Fix this by querying machine properties through designated wrappers.
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> exec.c | 4 ++--
> hw/core/machine.c | 6 ++++++
> include/hw/boards.h | 1 +
> 3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 6b79ad1..bfca528 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -26,6 +26,7 @@
> #include "cpu.h"
> #include "tcg.h"
> #include "hw/hw.h"
> +#include "hw/boards.h"
> #include "hw/qdev.h"
> #include "qemu/osdep.h"
> #include "sysemu/kvm.h"
> @@ -1213,8 +1214,7 @@ static void qemu_ram_setup_dump(void *addr, ram_addr_t size)
> int ret;
>
> /* Use MADV_DONTDUMP, if user doesn't want the guest memory in the core */
> - if (!qemu_opt_get_bool(qemu_get_machine_opts(),
> - "dump-guest-core", true)) {
> + if (!machine_dump_guest_core(current_machine)) {
> ret = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP);
> if (ret) {
> perror("qemu_madvise");
> diff --git a/hw/core/machine.c b/hw/core/machine.c
> index 5ad2409..8033683 100644
> --- a/hw/core/machine.c
> +++ b/hw/core/machine.c
> @@ -285,6 +285,7 @@ static void machine_initfn(Object *obj)
>
> ms->kernel_irqchip_allowed = true;
> ms->kvm_shadow_mem = -1;
> + ms->dump_guest_core = true;
>
> object_property_add_str(obj, "accel",
> machine_get_accel, machine_set_accel, NULL);
> @@ -425,6 +426,11 @@ int machine_phandle_start(MachineState *machine)
> return machine->phandle_start;
> }
>
> +bool machine_dump_guest_core(MachineState *machine)
> +{
> + return machine->dump_guest_core;
> +}
> +
> static const TypeInfo machine_info = {
> .name = TYPE_MACHINE,
> .parent = TYPE_OBJECT,
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index 1f21bdf..7de308e 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -71,6 +71,7 @@ bool machine_kernel_irqchip_allowed(MachineState *machine);
> bool machine_kernel_irqchip_required(MachineState *machine);
> int machine_kvm_shadow_mem(MachineState *machine);
> int machine_phandle_start(MachineState *machine);
> +bool machine_dump_guest_core(MachineState *machine);
>
> /**
> * MachineClass:
>
next prev parent reply other threads:[~2015-03-11 14:26 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-04 15:43 [Qemu-devel] [PATCH 0/8] machine: query machine properties rather than qemu opts Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 1/8] machine: query iommu machine property " Marcel Apfelbaum
2015-02-04 16:47 ` Markus Armbruster
2015-02-04 19:30 ` Marcel Apfelbaum
2015-02-05 8:18 ` Markus Armbruster
2015-03-11 14:43 ` Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 2/8] hw/machine: kernel-irqchip property support for allowed/required Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 3/8] machine: query kernel-irqchip machine property rather than qemu opts Marcel Apfelbaum
2015-03-11 14:41 ` Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 4/8] kvm: add machine state to kvm_arch_init Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 5/8] machine: query kvm-shadow-mem machine property rather than qemu opts Marcel Apfelbaum
2015-03-11 14:37 ` Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 6/8] machine: query phandle-start " Marcel Apfelbaum
2015-03-11 14:32 ` Marcel Apfelbaum
2015-03-11 14:34 ` Marcel Apfelbaum
2015-03-11 14:39 ` Michael S. Tsirkin
2015-03-11 14:48 ` Marcel Apfelbaum
2015-02-04 15:43 ` [Qemu-devel] [PATCH 7/8] machine: query dump-guest-core " Marcel Apfelbaum
2015-03-10 17:50 ` Andreas Färber
2015-03-10 21:24 ` Michael S. Tsirkin
2015-03-10 21:36 ` Andreas Färber
2015-03-11 7:34 ` Markus Armbruster
2015-03-11 8:45 ` Michael S. Tsirkin
2015-03-11 9:42 ` Marcel Apfelbaum
2015-03-11 8:56 ` Michael S. Tsirkin
2015-03-11 11:06 ` Andreas Färber
2015-03-11 13:04 ` Marcel Apfelbaum
2015-03-11 14:22 ` Michael S. Tsirkin
2015-03-11 15:08 ` Markus Armbruster
2015-03-11 9:44 ` Marcel Apfelbaum
2015-03-11 14:25 ` Marcel Apfelbaum [this message]
2015-02-04 15:43 ` [Qemu-devel] [PATCH 8/8] machine: query mem-merge " Marcel Apfelbaum
2015-03-10 15:11 ` Michael S. Tsirkin
2015-03-10 16:22 ` Marcel Apfelbaum
2015-02-04 16:00 ` [Qemu-devel] [PATCH 0/8] machine: query machine properties " Paolo Bonzini
2015-02-04 19:45 ` Christian Borntraeger
2015-02-04 21:35 ` Marcel Apfelbaum
2015-02-04 22:10 ` Christian Borntraeger
2015-02-25 11:55 ` Marcel Apfelbaum
2015-03-04 15:37 ` Marcel Apfelbaum
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=55005075.30606@gmail.com \
--to=marcel.apfelbaum@gmail.com \
--cc=agraf@suse.de \
--cc=aurelien@aurel32.net \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=james.hogan@imgtec.com \
--cc=jan.kiszka@siemens.com \
--cc=leon.alrae@imgtec.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=scottwood@freescale.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 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.