[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [Patch][resend] implementation of cpupool support in xl
- To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
- From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
- Date: Wed, 15 Sep 2010 10:45:43 +0200
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
- Delivery-date: Wed, 15 Sep 2010 01:46:25 -0700
- Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=UJkuAlF+c9lclxnsMsuVZHQ/7vmH1ynskpJlB5DUJmxdd2g6eKvkRGhb LBcAqhjhei0DHuP/VbIsZqPVkq6DtI8JGvKgLZzobo2BpdTGH0Ms6gzN2 X7rDIXcqWgGV+fKSkWZ//WCvab3yQsGQsqWu/NYx6KLCJEtPchA+cQ3m4 X3Lw1OH+USnJ8xzewKv7joviIc8nxJaMYjjWrkCBDu92b1NpocwsWY8MA p1RqmEwM+ydQQ1g7LoZxQwnivb+ut;
- List-id: Xen developer discussion <xen-devel.lists.xensource.com>
On 09/15/10 10:29, Ian Campbell wrote:
On Wed, 2010-09-15 at 08:26 +0100, Juergen Gross wrote:
diff -r 3985fea87987 tools/libxl/libxl.idl
--- a/tools/libxl/libxl.idl Fri Sep 10 19:06:33 2010 +0100
+++ b/tools/libxl/libxl.idl Wed Sep 15 09:19:02 2010 +0200
@@ -43,7 +43,11 @@ SHUTDOWN_* constant."""),
], destructor_fn=None)
libxl_poolinfo = Struct("poolinfo", [
- ("poolid", uint32)
+ ("poolid", uint32),
+ ("sched_id", uint32),
+ ("n_dom", uint32),
+ ("cpumap_size", uint32),
+ ("cpumap", libxl_cpumap)
], destructor_fn=None)
libxl_vminfo = Struct("vminfo", [
Does the addition of the cpumap field here mean that we now need to
generate a destructor function (by removing destructor_fn=None) and call
it e.g. from main_pool*?
I took care of this by allocating the space for the cpumap(s) together with
the poolinfo structure(s).
If you don't like this, a destructor would be the correct solution, I think.
Would it make sense to turn libxl_cpumap into a struct containing both
the size and the data pointer?
IMO this would make sense. You ALWAYS need the size of a cpumap to handle it
correctly.
diff -r 3985fea87987 tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Fri Sep 10 19:06:33 2010 +0100
+++ b/tools/libxl/libxl.h Wed Sep 15 09:19:02 2010 +0200
@@ -471,6 +471,15 @@ int libxl_device_net2_del(libxl_ctx *ctx
int libxl_device_net2_del(libxl_ctx *ctx, libxl_device_net2 *net2,
int wait);
+int libxl_get_freecpus(libxl_ctx *ctx, int *n_cpus, uint64_t **cpumap);
+int libxl_create_cpupool(libxl_ctx *ctx, char *name, int schedid,
+ uint64_t *cpumap, int n_cpus, libxl_uuid *uuid,
+ uint32_t *poolid);
Should these cpumap parameters be libxl_cpumap* or are they a different sort of
cpumap?
You are right, these should be libxl_cpumap.
I'll update the patch. It would be nice to know whether you are planning to
change libxl_cpumap to include the size or not.
Juergen
--
Juergen Gross Principal Developer Operating Systems
TSP ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions e-mail: juergen.gross@xxxxxxxxxxxxxx
Domagkstr. 28 Internet: ts.fujitsu.com
D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|