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