qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 2/4] GlobalProperty: Display warning about un


From: Don Slutz
Subject: Re: [Qemu-devel] [PATCH v3 2/4] GlobalProperty: Display warning about unused -global
Date: Tue, 22 Apr 2014 19:13:03 -0400
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

On 04/19/14 16:54, Paolo Bonzini wrote:
Il 18/04/2014 11:21, Andreas Färber ha scritto:
Improving this is greatly appreciated, thanks.

Now, I can see two ways things can go wrong: a) Mistyping or later
refactoring devices, or b) user typos or thinkos.
And four ways to set globals: -global, config file (I hope?), legacy
command line options (vl.c) and machine .compat_props.

If a property does not exist on the instance of an existing type,
object_property_parse() will raise an Error and we will abort in
device_post_init().

What we are silently missing is if a type is misspelled; for that we can
probably add an Error **errp to the two qdev_prop_register_global*()
functions - assuming QOM types are already registered at that point.
qom-test would help us catch any such mistake by instantiating each machine.

Even then, I suspect sooner or later machines other than PC and Q35 will be 
versioned.  At that point we'll probably want QEMU-global compat_props that 
automatically apply to all machines, even if a type is not missing.  I think we 
should already approximate this behavior by allowing machine .compat_props 
where the type doesn't exist.


If I am reading this correctly, this is asking that .compat_props to not
be reported.  This currently happens because of not_used being false
in all C99 struct initializations.

And that Andreas Färber would like me to extend qom-test to check
that at least 1 instance of each machine does use each .compat_props
so that a typo there gets "checked".

   -Don Slutz

Paolo

I note that your proposed check is not failing, but still, with hot-add
of e.g. PCI devices we might well get a global property default for a
type that is not instantiated immediately but possibly used later on.





reply via email to

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