[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/2] qdev: ignore GlobalProperty.errp for hot
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/2] qdev: ignore GlobalProperty.errp for hotplugged devices |
Date: |
Mon, 25 Jul 2016 12:38:46 +1000 |
User-agent: |
Mutt/1.6.2 (2016-07-01) |
On Fri, Jul 22, 2016 at 10:56:31AM -0300, Eduardo Habkost wrote:
> On Fri, Jul 22, 2016 at 11:28:48AM +1000, David Gibson wrote:
> > On Fri, Jul 22, 2016 at 01:01:26AM +0200, Greg Kurz wrote:
> > > This patch ensures QEMU won't terminate while hotplugging a device if the
> > > global property cannot be set and errp points to error_fatal or
> > > error_abort.
> > >
> > > While here, it also fixes indentation of the typename argument.
> > >
> > > Suggested-by: Eduardo Habkost <address@hidden>
> > > Signed-off-by: Greg Kurz <address@hidden>
> >
> > This seems kind of bogus to me - we have this whole infrastructure for
> > handling errors, and here we throw it away.
>
> What is this patch throwing away? We have never been able to use
> the error infrastructure properly while applying global
> properties.
"throwing away" was a bit too strong.
But, it seems a shame that we have this error infrastructure which
supposedly let's you report errors in a consistent way whether they be
fatal or non-fatal, but here we're not able to use it to report a
non-fatal error.
> > It seems like the right solution would be to make the caller in the
> > hotplug case *not* use error_abort or error_fatal, and instead get the
> > error propagated back to the monitor which will display it.
>
> GlobalProperty::errp is a workaround to the fact that
> ObjectClass::instance_post_init() can't report errors at all (and
> that's because object_new() and object_initialize_with_type()
> can't report errors. Do you have any suggestions to fix it?
Is there an inherent reason object_initialize() and object_new() can't
report errors? Or just that it hasn't been implemented yet?
> I have suggested saving global property errors in a DeviceState
> field and reporting then later on device_realize(). Maybe I
> should implement it and send as RFC.
Maybe.
In any case my initial objection was because I hadn't realized the
difficulty of implementing this in the error API, so I withdraw it.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
[Qemu-devel] [PATCH v3 2/2] vl: exit if a bad property value is passed to -global, Greg Kurz, 2016/07/21
Re: [Qemu-devel] [PATCH v3 0/2] improve error handling of global properties, Eduardo Habkost, 2016/07/26