qemu-devel
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]