* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
[not found] <97a5753d0e2e5d8ce43730fb0d8595ceb69261a9.1401151094.git.peter.crosthwaite@xilinx.com>
@ 2014-06-02 0:35 ` Peter Crosthwaite
2014-06-04 8:21 ` Stefan Hajnoczi
2014-06-11 8:13 ` Andreas Färber
1 sibling, 1 reply; 7+ messages in thread
From: Peter Crosthwaite @ 2014-06-02 0:35 UTC (permalink / raw)
To: qemu-devel@nongnu.org Developers; +Cc: Andreas Färber
Ping!
On Tue, May 27, 2014 at 10:39 AM, Peter Crosthwaite
<peter.crosthwaite@xilinx.com> wrote:
> Certain parts of the QOM framework test this pointer to determine if
> an object is parented. Nuke it when the object is unparented to allow
> for reuse of an object after unparenting.
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
> qom/object.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/qom/object.c b/qom/object.c
> index e42b254..8319e89 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
> if (obj->parent) {
> object_property_del_child(obj->parent, obj, NULL);
> }
> + obj->parent = NULL;
> object_unref(obj);
> }
>
> --
> 1.9.3.1.ga73a6ad
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
2014-06-02 0:35 ` [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting Peter Crosthwaite
@ 2014-06-04 8:21 ` Stefan Hajnoczi
0 siblings, 0 replies; 7+ messages in thread
From: Stefan Hajnoczi @ 2014-06-04 8:21 UTC (permalink / raw)
To: Peter Crosthwaite; +Cc: qemu-devel@nongnu.org Developers, Andreas Färber
On Mon, Jun 02, 2014 at 10:35:30AM +1000, Peter Crosthwaite wrote:
> Ping!
Andreas seems to be offline (vacation?). I'm sure he'll see this when
he gets back.
Stefan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
[not found] <97a5753d0e2e5d8ce43730fb0d8595ceb69261a9.1401151094.git.peter.crosthwaite@xilinx.com>
2014-06-02 0:35 ` [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting Peter Crosthwaite
@ 2014-06-11 8:13 ` Andreas Färber
2014-06-11 10:19 ` Peter Crosthwaite
1 sibling, 1 reply; 7+ messages in thread
From: Andreas Färber @ 2014-06-11 8:13 UTC (permalink / raw)
To: Peter Crosthwaite, qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi
Am 27.05.2014 02:39, schrieb Peter Crosthwaite:
> Certain parts of the QOM framework test this pointer to determine if
> an object is parented. Nuke it when the object is unparented to allow
> for reuse of an object after unparenting.
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
> qom/object.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/qom/object.c b/qom/object.c
> index e42b254..8319e89 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
> if (obj->parent) {
> object_property_del_child(obj->parent, obj, NULL);
> }
> + obj->parent = NULL;
> object_unref(obj);
> }
>
This looks okay to me, and it might also help the segfault on hot-unplug
Stefan and Kevin reported before I went on travels.
Any objection to moving this one line up into the if?
Regards,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
2014-06-11 8:13 ` Andreas Färber
@ 2014-06-11 10:19 ` Peter Crosthwaite
2014-06-11 11:28 ` Andreas Färber
0 siblings, 1 reply; 7+ messages in thread
From: Peter Crosthwaite @ 2014-06-11 10:19 UTC (permalink / raw)
To: Andreas Färber
Cc: Kevin Wolf, qemu-devel@nongnu.org Developers, Stefan Hajnoczi
On Wed, Jun 11, 2014 at 6:13 PM, Andreas Färber <afaerber@suse.de> wrote:
> Am 27.05.2014 02:39, schrieb Peter Crosthwaite:
>> Certain parts of the QOM framework test this pointer to determine if
>> an object is parented. Nuke it when the object is unparented to allow
>> for reuse of an object after unparenting.
>>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>>
>> qom/object.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/qom/object.c b/qom/object.c
>> index e42b254..8319e89 100644
>> --- a/qom/object.c
>> +++ b/qom/object.c
>> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
>> if (obj->parent) {
>> object_property_del_child(obj->parent, obj, NULL);
>> }
>> + obj->parent = NULL;
>> object_unref(obj);
>> }
>>
>
> This looks okay to me, and it might also help the segfault on hot-unplug
> Stefan and Kevin reported before I went on travels.
>
Welcome back.
> Any objection to moving this one line up into the if?
>
No problem. Will respin.
Regards,
Peter
> Regards,
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
2014-06-11 10:19 ` Peter Crosthwaite
@ 2014-06-11 11:28 ` Andreas Färber
2014-06-11 11:33 ` Paolo Bonzini
2014-06-11 11:52 ` Peter Crosthwaite
0 siblings, 2 replies; 7+ messages in thread
From: Andreas Färber @ 2014-06-11 11:28 UTC (permalink / raw)
To: Peter Crosthwaite
Cc: Kevin Wolf, Paolo Bonzini, qemu-devel@nongnu.org Developers,
Stefan Hajnoczi
Am 11.06.2014 12:19, schrieb Peter Crosthwaite:
> On Wed, Jun 11, 2014 at 6:13 PM, Andreas Färber <afaerber@suse.de> wrote:
>> Am 27.05.2014 02:39, schrieb Peter Crosthwaite:
>>> Certain parts of the QOM framework test this pointer to determine if
>>> an object is parented. Nuke it when the object is unparented to allow
>>> for reuse of an object after unparenting.
>>>
>>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>> ---
>>>
>>> qom/object.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/qom/object.c b/qom/object.c
>>> index e42b254..8319e89 100644
>>> --- a/qom/object.c
>>> +++ b/qom/object.c
>>> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
>>> if (obj->parent) {
>>> object_property_del_child(obj->parent, obj, NULL);
>>> }
>>> + obj->parent = NULL;
>>> object_unref(obj);
>>> }
>>>
>>
>> This looks okay to me, and it might also help the segfault on hot-unplug
>> Stefan and Kevin reported before I went on travels.
>>
>
> Welcome back.
>
>> Any objection to moving this one line up into the if?
>>
>
> No problem. Will respin.
I've done so myself, but now I wonder why we are checking obj->parent at
all there after we already return if !obj->parent? Is this to guard
against ObjectClass::unparent() changing Object::parent? Either way, the
two variants you posted and I suggested should be fine.
Regards,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
2014-06-11 11:28 ` Andreas Färber
@ 2014-06-11 11:33 ` Paolo Bonzini
2014-06-11 11:52 ` Peter Crosthwaite
1 sibling, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2014-06-11 11:33 UTC (permalink / raw)
To: Andreas Färber, Peter Crosthwaite
Cc: Kevin Wolf, qemu-devel@nongnu.org Developers, Stefan Hajnoczi
Il 11/06/2014 13:28, Andreas Färber ha scritto:
> Am 11.06.2014 12:19, schrieb Peter Crosthwaite:
>> On Wed, Jun 11, 2014 at 6:13 PM, Andreas Färber <afaerber@suse.de> wrote:
>>> Am 27.05.2014 02:39, schrieb Peter Crosthwaite:
>>>> Certain parts of the QOM framework test this pointer to determine if
>>>> an object is parented. Nuke it when the object is unparented to allow
>>>> for reuse of an object after unparenting.
>>>>
>>>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>>> ---
>>>>
>>>> qom/object.c | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/qom/object.c b/qom/object.c
>>>> index e42b254..8319e89 100644
>>>> --- a/qom/object.c
>>>> +++ b/qom/object.c
>>>> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
>>>> if (obj->parent) {
>>>> object_property_del_child(obj->parent, obj, NULL);
>>>> }
>>>> + obj->parent = NULL;
>>>> object_unref(obj);
>>>> }
>>>>
>>>
>>> This looks okay to me, and it might also help the segfault on hot-unplug
>>> Stefan and Kevin reported before I went on travels.
>>>
>>
>> Welcome back.
>>
>>> Any objection to moving this one line up into the if?
>>>
>>
>> No problem. Will respin.
>
> I've done so myself, but now I wonder why we are checking obj->parent at
> all there after we already return if !obj->parent? Is this to guard
> against ObjectClass::unparent() changing Object::parent? Either way, the
> two variants you posted and I suggested should be fine.
Yes, in case unparent might already end up removing the property.
I have a patch that moves the unparent call to
object_finalize_child_property and only removes the property here. The
patch would apply anyway, so I'm okay with it.
Paolo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting
2014-06-11 11:28 ` Andreas Färber
2014-06-11 11:33 ` Paolo Bonzini
@ 2014-06-11 11:52 ` Peter Crosthwaite
1 sibling, 0 replies; 7+ messages in thread
From: Peter Crosthwaite @ 2014-06-11 11:52 UTC (permalink / raw)
To: Andreas Färber
Cc: Kevin Wolf, Paolo Bonzini, qemu-devel@nongnu.org Developers,
Stefan Hajnoczi
On Wed, Jun 11, 2014 at 9:28 PM, Andreas Färber <afaerber@suse.de> wrote:
> Am 11.06.2014 12:19, schrieb Peter Crosthwaite:
>> On Wed, Jun 11, 2014 at 6:13 PM, Andreas Färber <afaerber@suse.de> wrote:
>>> Am 27.05.2014 02:39, schrieb Peter Crosthwaite:
>>>> Certain parts of the QOM framework test this pointer to determine if
>>>> an object is parented. Nuke it when the object is unparented to allow
>>>> for reuse of an object after unparenting.
>>>>
>>>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>>> ---
>>>>
>>>> qom/object.c | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/qom/object.c b/qom/object.c
>>>> index e42b254..8319e89 100644
>>>> --- a/qom/object.c
>>>> +++ b/qom/object.c
>>>> @@ -402,6 +402,7 @@ void object_unparent(Object *obj)
>>>> if (obj->parent) {
>>>> object_property_del_child(obj->parent, obj, NULL);
>>>> }
>>>> + obj->parent = NULL;
>>>> object_unref(obj);
>>>> }
>>>>
>>>
>>> This looks okay to me, and it might also help the segfault on hot-unplug
>>> Stefan and Kevin reported before I went on travels.
>>>
>>
>> Welcome back.
>>
>>> Any objection to moving this one line up into the if?
>>>
>>
>> No problem. Will respin.
>
> I've done so myself, but now I wonder why we are checking obj->parent at
> all there after we already return if !obj->parent? Is this to guard
> against ObjectClass::unparent() changing Object::parent? Either way, the
> two variants you posted and I suggested should be fine.
>
Ok will leave it with you. Thanks.
Regards,
Peter
> Regards,
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-06-11 11:52 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <97a5753d0e2e5d8ce43730fb0d8595ceb69261a9.1401151094.git.peter.crosthwaite@xilinx.com>
2014-06-02 0:35 ` [Qemu-devel] [PATCH qom v1 1/1] qom: object: remove parent pointer when unparenting Peter Crosthwaite
2014-06-04 8:21 ` Stefan Hajnoczi
2014-06-11 8:13 ` Andreas Färber
2014-06-11 10:19 ` Peter Crosthwaite
2014-06-11 11:28 ` Andreas Färber
2014-06-11 11:33 ` Paolo Bonzini
2014-06-11 11:52 ` Peter Crosthwaite
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).