[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Josh Triplett <josht@xxxxxxxxxx>
  • Date: Thu, 30 Jun 2005 13:37:23 -0700
  • Delivery-date: Thu, 30 Jun 2005 20:36:37 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.