[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v10 6/6] tools: enable Cache QoS Monitoring feature for libxl/libxc
On Thu, 2014-04-03 at 11:31 +0000, Xu, Dongxiao wrote: > > -----Original Message----- > > From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx] > > Sent: Friday, March 28, 2014 5:44 PM > > To: Xu, Dongxiao > > Cc: xen-devel@xxxxxxxxxxxxx; keir@xxxxxxx; JBeulich@xxxxxxxx; > > Ian.Jackson@xxxxxxxxxxxxx; stefano.stabellini@xxxxxxxxxxxxx; > > andrew.cooper3@xxxxxxxxxx; konrad.wilk@xxxxxxxxxx; dgdegra@xxxxxxxxxxxxx > > Subject: Re: [PATCH v10 6/6] tools: enable Cache QoS Monitoring feature for > > libxl/libxc > > > > On Fri, 2014-03-28 at 00:53 +0000, Xu, Dongxiao wrote: > > > > -----Original Message----- > > > > From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx] > > > > Sent: Thursday, March 27, 2014 11:14 PM > > > > To: Xu, Dongxiao > > > > Cc: xen-devel@xxxxxxxxxxxxx; keir@xxxxxxx; JBeulich@xxxxxxxx; > > > > Ian.Jackson@xxxxxxxxxxxxx; stefano.stabellini@xxxxxxxxxxxxx; > > > > andrew.cooper3@xxxxxxxxxx; konrad.wilk@xxxxxxxxxx; > > dgdegra@xxxxxxxxxxxxx > > > > Subject: Re: [PATCH v10 6/6] tools: enable Cache QoS Monitoring feature > > > > for > > > > libxl/libxc > > > > > > > > On Wed, 2014-03-26 at 14:35 +0800, Dongxiao Xu wrote: > > > > [...] > > > > > +int libxl_pqos_attach(libxl_ctx *ctx, uint32_t domid, libxl_pqos_type > > > > qos_type); > > > > > +int libxl_pqos_detach(libxl_ctx *ctx, uint32_t domid, libxl_pqos_type > > > > qos_type); > > > > > +libxl_cqminfo * libxl_getcqminfo(libxl_ctx *ctx, unsigned int > > > > > *l3c_total, > > > > > + unsigned int *nr_domains, unsigned int *nr_rmids, unsigned int > > > > *nr_sockets); > > > > [...] > > > > > +libxl_cqminfo = Struct("cqminfo", [ > > > > > + ("valid", uint32), > > > > > + ("l3c", uint64), > > > > > + ]) > > > > > > > > libxl_getcqminfo seems to have a strange mixture of returning an info > > > > struct and returning things via pointers passed as integers. why is > > > > that? > > > > > > The returned info is a unit data structure containing the L3 cache usage > > > data for > > certain RMID on certain socket. > > > These pointers passed integers tell caller the number of such units are > > returned. > > > > > > This follows one existing function: > > > libxl_dominfo * libxl_list_domain(libxl_ctx *ctx, int *nb_domain_out); > > > where the return value is the unit dominfo data structure, and > > *nb_domain_out tells caller how many data structure units are returned. > > > > But libxl_getqminfo has three such nr_* pointers as parameters, which > > one is the length of the returned array? What are the other two? How > > does one enumerate the things which the other nr_* refer to? > > The size is calculated by nr_domains*nr_sockets. The nr_rmids is to > show how many RMIDs a system has. How do I find the info for socket i and domain j then? Please can you add a doc comment to this function to explain. Is domains in this context a Xen domain or some other type of hardware related domain? Or maybe the result of this function should be something more structured like: struct cqpcpuinfo { uint??_t socket, domain; uint32_t valid; /* why not a bool? */ uint32_t l3c; }; struct cqminfo { int nr_rmids; int nr_sockets; int nr_domains; cqmcpuifo *info; /* indexed by ... }; ? Or even a three level thing with top-level, sockets and domains (or domains then sockets): struct cqminfo { ... int nr_sockets struct cqsocketinfo { int nr_domains ... } } Also can valid be a bool? and what is "l3c", I guess it has something to do with the l3 cache, but please can you name it something more descriptive. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |