[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 02/10] accel: introduce AccelClass.global_pro
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH v5 02/10] accel: introduce AccelClass.global_props |
Date: |
Mon, 26 Jun 2017 21:50:36 -0300 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Mon, Jun 26, 2017 at 10:39:53AM +0800, Peter Xu wrote:
> On Fri, Jun 23, 2017 at 06:31:27PM -0300, Eduardo Habkost wrote:
> > On Fri, Jun 23, 2017 at 12:46:38PM +0800, Peter Xu wrote:
> > > Introduce this new field for the accelerator classes so that each
> > > specific accelerator in the future can register its own global
> > > properties to be used further by the system. It works just like how the
> > > old machine compatible properties do, but only tailored for
> > > accelerators.
> > >
> > > Introduce register_compat_props_array() for it. Export it so that it may
> > > be used in other codes as well in the future.
> > >
> > > Suggested-by: Eduardo Habkost <address@hidden>
> > > Signed-off-by: Peter Xu <address@hidden>
> > > ---
> > > accel/accel.c | 6 ++++++
> > > hw/core/qdev-properties.c | 7 +++++++
> > > include/hw/qdev-properties.h | 1 +
> > > include/sysemu/accel.h | 10 ++++++++++
> > > vl.c | 1 +
> > > 5 files changed, 25 insertions(+)
> > >
> > > diff --git a/accel/accel.c b/accel/accel.c
> > > index 7c079a5..fa85844 100644
> > > --- a/accel/accel.c
> > > +++ b/accel/accel.c
> > > @@ -120,6 +120,12 @@ void configure_accelerator(MachineState *ms)
> > > }
> > > }
> > >
> > > +void accel_register_compat_props(AccelState *accel)
> > > +{
> > > + AccelClass *class = ACCEL_GET_CLASS(accel);
> > > + register_compat_props_array(class->global_props);
> > > +}
> > > +
> > > static void register_accel_types(void)
> > > {
> > > type_register_static(&accel_type);
> > > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
> > > index 6ff1ac3..19fa335 100644
> > > --- a/hw/core/qdev-properties.c
> > > +++ b/hw/core/qdev-properties.c
> > > @@ -1060,6 +1060,13 @@ void register_compat_prop(const char *driver,
> > > qdev_prop_register_global(p);
> > > }
> > >
> > > +void register_compat_props_array(GlobalProperty *prop)
> >
> > Note for a later: we need to stop reusing struct GlobalProperty here,
> > because the 'user_provided', 'used', and 'errp' fields are ignored by
> > register_compat_prop(), but people may believe the are not.
> >
> > I suggest defining:
> >
> > struct GlobalPropertyValue {
> > const char *driver, *property, *value;
> > };
> >
> > and use it instead of GlobalProperty for MachineClass::compat_props,
> > AccelClass::global_props, and register_compat_prop().
>
> Yeah maybe another definition would be nicer.
>
> Do you mind I skip this change in this series? After all it can be
> done on top, and can be separated from current work.
>
No problem. This was just a suggestion for later.
--
Eduardo
[Qemu-devel] [PATCH v5 05/10] migration: move global_state.optional out, Peter Xu, 2017/06/23