From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v2 3/3] xenstat: handle more than 1024 domains Date: Mon, 4 Jan 2016 16:38:06 +0000 Message-ID: <20160104163806.GG12639@citrix.com> References: <1451919353-11547-1-git-send-email-jgross@suse.com> <1451919353-11547-4-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1451919353-11547-4-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Juergen Gross Cc: wei.liu2@citrix.com, stefano.stabellini@eu.citrix.com, ian.jackson@eu.citrix.com, Ian.Campbell@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Mon, Jan 04, 2016 at 03:55:53PM +0100, Juergen Gross wrote: > get_domain_ids() in libxenstat used by read_attributes_qdisk() is > limited to 1024 domains. Remove that limit. > > Signed-off-by: Juergen Gross Reviewed-by: Wei Liu > --- > tools/xenstat/libxenstat/src/xenstat_qmp.c | 67 +++++++++++++----------------- > 1 file changed, 29 insertions(+), 38 deletions(-) > > diff --git a/tools/xenstat/libxenstat/src/xenstat_qmp.c b/tools/xenstat/libxenstat/src/xenstat_qmp.c > index 5e261af..5104afb 100644 > --- a/tools/xenstat/libxenstat/src/xenstat_qmp.c > +++ b/tools/xenstat/libxenstat/src/xenstat_qmp.c > @@ -356,18 +356,6 @@ static int qmp_connect(char *path) > return s; > } > > -/* Get up to 1024 active domains */ > -static xc_domaininfo_t *get_domain_ids(xc_interface *xc_handle, int *num_doms) > -{ > - xc_domaininfo_t *dominfo; > - > - dominfo = calloc(1024, sizeof(xc_domaininfo_t)); > - if (dominfo == NULL) > - return NULL; > - *num_doms = xc_domain_getinfolist(xc_handle, 0, 1024, dominfo); > - return dominfo; > -} > - > /* Gather the qdisk statistics by querying QMP > Resources: http://wiki.qemu.org/QMP and qmp-commands.hx from the qemu code > QMP Syntax for entering command mode. This command must be issued before > @@ -398,44 +386,47 @@ void read_attributes_qdisk(xenstat_node * node) > { > char *cmd_mode = "{ \"execute\": \"qmp_capabilities\" }"; > char *query_blockstats_cmd = "{ \"execute\": \"query-blockstats\" }"; > - xc_domaininfo_t *dominfo = NULL; > + xc_domaininfo_t dominfo[1024]; > unsigned char *qmp_stats, *val; > char path[80]; > int i, qfd, num_doms; > + domid_t next_domid = 0; > > - dominfo = get_domain_ids(node->handle->xc_handle, &num_doms); > - if (dominfo == NULL) > - return; > + for (;;) { > + num_doms = xc_domain_getinfolist(node->handle->xc_handle, next_domid, 1024, dominfo); Some lines have exceeded 80 columns. Not really your fault so no need to resend. Wei.