|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] [PATCH] Add DOM0_GETDOMAININFOLIST op for bulkretrieval
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?
- Josh Triplett
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|