This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


RE: [Xen-devel] [PATCH] Add DOM0_GETDOMAININFOLIST op for bulkretrieval

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Xen-devel] [PATCH] Add DOM0_GETDOMAININFOLIST op for bulkretrieval of domain info
From: Josh Triplett <josht@xxxxxxxxxx>
Date: Thu, 30 Jun 2005 13:37:23 -0700
Delivery-date: Thu, 30 Jun 2005 20:36:37 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1119897235.8607.26.camel@xxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <A95E2296287EAD4EB592B5DEEFCE0E9D28239A@xxxxxxxxxxxxxxxxxxxxxxxxxxx> <1119897235.8607.26.camel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Mon, 2005-06-27 at 11:33 -0700, Josh Triplett wrote:
> On Sat, 2005-06-25 at 02:41 +0100, Ian Pratt wrote:
> > > The attached patch adds a new dom0_op, 
> > > DOM0_GETDOMAININFOLIST.  This operation allows retrieval of 
> > > the domain info structures for all domains in one hypercall.
> > > 
> > > Using a small test program, on a system with 97 domains with 
> > > non-contiguous domain IDs, I found that with this hypercall I 
> > > could retrieve the full array of info structures 12840 times 
> > > per second, an improvement from 2380 times per second with 
> > > the DOM0_GETDOMAININFO op.
> > 
> > Can't you just reuse the existing xc_getdomain_info function and change
> > the hypercall depending on the number of domains being requested?
> xc_domain_getinfo?  Ideally yes.  However, xc_domain_getinfo performs a
> translation from the xc_domaininfo_t structure (a typedef of
> dom0_getdomaininfo_t) returned by DOM0_GETDOMAININFO to the array of
> xc_dominfo_t structures passed by the caller.  So in order to use the
> bulk call from xc_domain_getinfo, it would need to allocate its own
> array of xc_domaininfo_t structures, make the hypercall, and then
> perform the translation on the array of structures.  If
> xc_domain_getinfo took a caller-provided array of xc_domaininfo_t
> structures, I would definitely have just modified it to use the new
> hypercall rather than making a new function.
> What is the purpose of that translation from one structure to the other?
> The only differences seem to be reordered/renamed fields, and splitting
> the flags field out into individual bitfields.  If that is the only
> purpose, then why not just have xc_domaininfo_t include a union of the
> flags field and a structure containing a bitfield?

Looking at the Python bindings, I see that they make use of this
split-out structure to more easily fill the equivalent Python data
structure.  Would it help to provide a patch which would change the
python bindings to call xc_domain_getinfolist and deal with
xc_domaininfo_t (aka dom0_getdomaininfo_t) directly (possibly modifying
dom0_getdomaininfo_t to contain something like a union of the flags and
a split-out bitfield structure)?  With that change, xc_domain_getinfo
could then become a backward-compatibility function; it could also
optionally be changed to fetch domain information in chunks using

Also, is it acceptable for libxc to make use of unnamed unions and
unnamed structs as structure members?

- Josh Triplett

Xen-devel mailing list