From: Anthony PERARD <anthony.perard@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
Xen Devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH V2 1/9] libxl_json: Use libxl alloc function with NOGC.
Date: Tue, 25 Sep 2012 14:54:52 +0100 [thread overview]
Message-ID: <5061B7AC.508@citrix.com> (raw)
In-Reply-To: <1348562359.3452.112.camel@zakaz.uk.xensource.com>
On 09/25/2012 09:39 AM, Ian Campbell wrote:
> On Mon, 2012-09-17 at 19:22 +0100, Anthony PERARD wrote:
>> This patch makes use of the libxl allocation API and removes the check for
>> allocation failure.
>>
>> Also we don't use GC with a json_object because this structure use flexarray
>> and the latter does not use the gc.
>
> It's not an uncommon pattern in libxl for the content of the flexarray
> to be gc'd but the actual array itself to be explicitly freed, often
> implicitly via flexarray_contents(), if that's what you want.
Trying to use flexarray_contents() in the context of json_object would
mean that I need to know when the array is filled with every things
needed. This seams a bit complicated.
> If we wanted I don't think there's any reason we couldn't make the
> flexarray take a gc and use it, that would probably make things simpler
> here and elsewhere and reduce the manual memory management (unless you
> actually want/need that for some other reason).
Having flexarray using gc seams a better idea. I will work on that as I
don't think I need to keep those object around and using NOGC was only
because of flexarray.
>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>> ---
>> tools/libxl/libxl_json.c | 37 +++++++++++--------------------------
>> 1 file changed, 11 insertions(+), 26 deletions(-)
>>
>> diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
>> index caa8312..9c3dca2 100644
>> --- a/tools/libxl/libxl_json.c
>> +++ b/tools/libxl/libxl_json.c
>> @@ -210,12 +210,7 @@ static libxl__json_object *json_object_alloc(libxl__gc *gc,
>> {
>> libxl__json_object *obj;
>>
>> - obj = calloc(1, sizeof (libxl__json_object));
>> - if (obj == NULL) {
>> - LIBXL__LOG_ERRNO(libxl__gc_owner(gc), LIBXL__LOG_ERROR,
>> - "Failed to allocate a libxl__json_object");
>> - return NULL;
>> - }
>> + obj = libxl__zalloc(NOGC, sizeof(*obj));
>
> So you now ignore the gc passed in, which in any case you have now
> caused to always be NOGC? Seems a bit round-about to me, why not use the
> gc parameter here?
Yes, I suppose is not necessary to use NOGC here, and leave the choice
to the caller. I just wanted to be explicit.
Thanks,
--
Anthony PERARD
next prev parent reply other threads:[~2012-09-25 13:54 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-17 18:22 [PATCH V2 0/9] Set dirty log on qemu-xen Anthony PERARD
2012-09-17 18:22 ` [PATCH V2 1/9] libxl_json: Use libxl alloc function with NOGC Anthony PERARD
2012-09-25 8:39 ` Ian Campbell
2012-09-25 13:54 ` Anthony PERARD [this message]
2012-09-17 18:22 ` [PATCH V2 2/9] libxl_json: Export json_object related function Anthony PERARD
2012-09-25 8:40 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 3/9] libxl_json: Introduce libxl__json_object_to_yajl_gen Anthony PERARD
2012-09-25 8:44 ` Ian Campbell
2012-09-25 14:20 ` Anthony PERARD
2012-09-25 14:32 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 4/9] libxl_qmp: Introduces helpers to create an argument list Anthony PERARD
2012-09-25 8:54 ` Ian Campbell
2012-09-25 14:45 ` Anthony PERARD
2012-09-25 9:06 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 5/9] libxl_qmp: Use qmp_parameters_* functions for param list of a QMP command Anthony PERARD
2012-09-25 8:56 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 6/9] libxl_qmp: Simplify run of single QMP commands Anthony PERARD
2012-09-25 8:57 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 7/9] libxl_qmp: Introduce libxl__qmp_set_global_dirty_log Anthony PERARD
2012-09-25 9:06 ` Ian Campbell
2012-09-25 9:10 ` Ian Campbell
2012-09-25 14:51 ` Anthony PERARD
2012-09-17 18:22 ` [PATCH V2 8/9] libxl_dom: Call the right switch logdirty for the right DM Anthony PERARD
2012-09-25 9:22 ` Ian Campbell
2012-09-17 18:22 ` [PATCH V2 9/9] libxl: Allow migration with qemu-xen Anthony PERARD
2012-09-25 9:23 ` Ian Campbell
2012-09-25 14:53 ` Anthony PERARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5061B7AC.508@citrix.com \
--to=anthony.perard@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.