qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* 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).