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: Mon, 27 Jun 2005 11:33:55 -0700
Delivery-date: Mon, 27 Jun 2005 18:33:03 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <A95E2296287EAD4EB592B5DEEFCE0E9D28239A@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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 
> 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?

- Josh Triplett

Xen-devel mailing list