[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index> |
Date: |
Fri, 1 May 2015 09:17:42 -0300 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Thu, Apr 30, 2015 at 06:51:43PM -0700, Peter Crosthwaite wrote:
> On Thu, Apr 30, 2015 at 12:19 PM, Eduardo Habkost <address@hidden> wrote:
> > This will provide a predictable path for the CPU objects, and a more
> > powerful alternative for the query-cpus QMP command, as now every QOM
> > property on CPU objects can be easily queried.
> >
> > Signed-off-by: Eduardo Habkost <address@hidden>
> > ---
> > Note that this doesn't replace any future topology enumeration
> > mechanisms we may choose to implement. It just replaces the existing
> > topology-unaware VCPU enumeration mechanism that is query-cpus.
> >
> > Reference to previous discussion:
> >
> > Date: Thu, 23 Apr 2015 10:17:36 -0300
> > From: Eduardo Habkost <address@hidden>
> > Subject: Re: [Qemu-devel] cpu modelling and hotplug (was: [PATCH RFC 0/4]
> > target-i386: PC socket/core/thread modeling, part 1)
> > Message-ID: <address@hidden>
> > ---
> > exec.c | 16 ++++++++++++++++
> > include/qom/cpu.h | 3 +++
> > 2 files changed, 19 insertions(+)
> >
> > diff --git a/exec.c b/exec.c
> > index ae37b98..8bdfa65 100644
> > --- a/exec.c
> > +++ b/exec.c
> > @@ -519,6 +519,20 @@ void tcg_cpu_address_space_init(CPUState *cpu,
> > AddressSpace *as)
> > }
> > #endif
> >
> > +static void cpu_add_qom_link(CPUState *cpu)
> > +{
> > +#if !defined(CONFIG_USER_ONLY)
> > + Object *cobj = OBJECT(cpu);
> > + Object *cpu_container = container_get(OBJECT(current_machine),
> > "/cpus");
> > + char *path = g_strdup_printf("%d", cpu->cpu_index);
> > +
>
> This pathing is inconsistent with other arrayification efforts where
> we use ../foo[N].
> Do we need the container, can we just use /cpu[0], /cpu[1]?
Having a container looked simpler and cleaner than using cpu[0], cpu[1],
but I don't have a strong preference either way.
>
> > + cpu->self = cobj;
>
> Paolo's . property ideal is probably a winner, but see this discussion:
>
> https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg03557.html
>
> for how to create RYO links with open coded setters and getters.
> You could use the object itself as an opaque data and a trivial getter,
> no setter and then you can get rid of the self pointer.
True. But I will try to implement that in a generic way instead of
duplicating what's already implemented by object_get_link_property() and
object_resolve_link_property().
--
Eduardo
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>,
Eduardo Habkost <=
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Igor Mammedov, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Paolo Bonzini, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Igor Mammedov, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Paolo Bonzini, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Eduardo Habkost, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Paolo Bonzini, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Eduardo Habkost, 2015/05/04
- Re: [Qemu-devel] [PATCH] cpu: Register QOM links at /machine/cpus/<index>, Eduardo Habkost, 2015/05/04