From: Marcel Apfelbaum <marcel.a@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: agraf@suse.de, mst@redhat.com, qemu-devel@nongnu.org,
sw@weilnetz.de, mdroth@linux.vnet.ibm.com, armbru@redhat.com,
aliguori@amazon.com, Scott Wood <scottwood@freescale.com>,
lcapitulino@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH V2 4/4] hw/machine: qemu machine opts as properties to QemuMachineState
Date: Sun, 01 Jun 2014 11:21:49 +0300 [thread overview]
Message-ID: <1401610909.2875.93.camel@localhost.localdomain> (raw)
In-Reply-To: <20140530192507.GC15000@otherpad.lan.raisama.net>
On Fri, 2014-05-30 at 16:25 -0300, Eduardo Habkost wrote:
> On Mon, May 26, 2014 at 03:40:58PM +0300, Marcel Apfelbaum wrote:
> [...]
> > +static void machine_initfn(Object *obj)
> > +{
> > + object_property_add_str(obj, "accel",
> > + machine_get_accel, machine_set_accel, NULL);
> > + object_property_add_bool(obj, "kernel_irqchip",
> > + machine_get_kernel_irqchip,
> > + machine_set_kernel_irqchip,
> > + NULL);
>
> In the case of kernel_irqchip, the information contained in MachineState
> is not a superset of the information contained on
> qemu_get_machine_opts().
>
> See hw/ppc/{e500,spapr}.c. They use kernel_irqchip like this:
>
> bool irqchip_allowed = qemu_opt_get_bool(machine_opts,
> "kernel_irqchip", true);
> bool irqchip_required = qemu_opt_get_bool(machine_opts,
> "kernel_irqchip", false);
>
> if (irqchip_allowed) {
> dev = ppce500_init_mpic_kvm(params, irqs);
> }
>
> if (irqchip_required && !dev) {
> fprintf(stderr, "%s: irqchip requested but unavailable\n",
> __func__);
> abort();
> }
>
> This means kernel_irqchip have three possible states: "disabled", "required",
> and "allowed".
I already had a patch adding "property_is_set" to QMP, but was not accepted
as there is no way yet to "unset" a property. (I can point you to the series)
>
> This means that MachineState.kernel_irqchip is not usable by current
> code that uses the kernel_irqchip option. I suppose we plan to address
> this on MachineState, too, to not get stuck with a global
> qemu_get_machine_opts() forever?
I completely agree with you and I already had a patch tackling it,
based on "property_is_set", but was no accepted yet, obviously.
I was instructed to set the default value in the machine init function
and some way (I don't remember now) to emulate required/allowed.
I do plan to get back to this.
Thanks,
Marcel
>
next prev parent reply other threads:[~2014-06-01 8:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1401108058-27348-1-git-send-email-marcel.a@redhat.com>
[not found] ` <1401108058-27348-5-git-send-email-marcel.a@redhat.com>
[not found] ` <20140530194530.GD15000@otherpad.lan.raisama.net>
2014-06-01 8:07 ` [Qemu-devel] [PATCH V2 4/4] hw/machine: qemu machine opts as properties to QemuMachineState Marcel Apfelbaum
[not found] ` <20140530192507.GC15000@otherpad.lan.raisama.net>
2014-06-01 8:21 ` Marcel Apfelbaum [this message]
2014-06-02 15:21 ` Eduardo Habkost
2014-06-05 11:49 ` 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=1401610909.2875.93.camel@localhost.localdomain \
--to=marcel.a@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aliguori@amazon.com \
--cc=armbru@redhat.com \
--cc=ehabkost@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=scottwood@freescale.com \
--cc=sw@weilnetz.de \
/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.