Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

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
DOM0_GETINFOLIST.

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

- Josh Triplett



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel