WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxenstat: Fix statistics for blktap dis

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxenstat: Fix statistics for blktap disks on linux
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 10 Jun 2008 03:40:48 -0700
Delivery-date: Tue, 10 Jun 2008 03:42:04 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1213086421 -3600
# Node ID 7a0f1bf865160893b6fcb085abf2b518a0d69af7
# Parent  58e07771d45515aca3ca8f0bdd75a2c9b4081886
libxenstat: Fix statistics for blktap disks on linux

Overview: update xenstat vbd statistics parsing from
/sys/devices/xen-backend to process blktap disks

Reason:
        -blktap devices (now referenced as tap rather than vbd in
        /sys) have statistics counters
        (e.g.,  rd_req, wr_req, oo_req) prepended by tap_
        -xenstat behavior did not previously account for this
        behavior, which resulted in 0 disks
        visible and similarly impacted disk statistics

To reproduce these conditions, make a domain with tap:aio backed disks
on 3.2.x, run xentop, and press B to view VBD stats (nothing will
appear for the domain using tap:aio)

Signed-off-by: steve.maresca@xxxxxxxxx
---
 tools/xenstat/libxenstat/src/xenstat_linux.c |   28 +++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff -r 58e07771d455 -r 7a0f1bf86516 
tools/xenstat/libxenstat/src/xenstat_linux.c
--- a/tools/xenstat/libxenstat/src/xenstat_linux.c      Tue Jun 10 09:25:47 
2008 +0100
+++ b/tools/xenstat/libxenstat/src/xenstat_linux.c      Tue Jun 10 09:27:01 
2008 +0100
@@ -181,6 +181,12 @@ int xenstat_collect_vbds(xenstat_node * 
        struct dirent *dp;
        struct priv_data *priv = get_priv_data(node->handle);
 
+       char *sys_prefix = "statistics/";
+
+       /* 23 = "statistics/" + "xxxx_xx_req" */
+       char ooreq[23], rdreq[23], wrreq[23]; 
+       char *stat_prefix = NULL;
+
        if (priv == NULL) {
                perror("Allocation error");
                return 0;
@@ -208,12 +214,16 @@ int xenstat_collect_vbds(xenstat_node * 
                if (ret != 3)
                        continue;
 
-               if (strcmp(buf,"vbd") == 0)
+
+               if (strcmp(buf,"vbd") == 0){
+                       stat_prefix = "";
                        vbd.back_type = 1;
-               else if (strcmp(buf,"tap") == 0)
+               } else if (strcmp(buf,"tap") == 0){
+                       stat_prefix = "tap_";
                        vbd.back_type = 2;
-               else
-                       continue;
+               } else {
+                       continue;
+               }
 
                domain = xenstat_node_domain(node, domid);
                if (domain == NULL) {
@@ -224,24 +234,26 @@ int xenstat_collect_vbds(xenstat_node * 
                        continue;
                }
 
-               if((read_attributes_vbd(dp->d_name, "statistics/oo_req", buf, 
256)<=0)
+               snprintf(ooreq, sizeof(ooreq), "%s%soo_req", sys_prefix, 
stat_prefix);
+               if((read_attributes_vbd(dp->d_name, ooreq, buf, 256)<=0)
                   || ((ret = sscanf(buf, "%llu", &vbd.oo_reqs)) != 1))
                {
                        continue;
                }
 
-               if((read_attributes_vbd(dp->d_name, "statistics/rd_req", buf, 
256)<=0)
+               snprintf(rdreq,  sizeof(rdreq),"%s%srd_req", sys_prefix, 
stat_prefix);
+               if((read_attributes_vbd(dp->d_name, rdreq, buf, 256)<=0)
                   || ((ret = sscanf(buf, "%llu", &vbd.rd_reqs)) != 1))
                {
                        continue;
                }
 
-               if((read_attributes_vbd(dp->d_name, "statistics/wr_req", buf, 
256)<=0)
+               snprintf(wrreq,  sizeof(wrreq),"%s%swr_req", sys_prefix, 
stat_prefix);
+               if((read_attributes_vbd(dp->d_name, wrreq, buf, 256)<=0)
                   || ((ret = sscanf(buf, "%llu", &vbd.wr_reqs)) != 1))
                {
                        continue;
                }
-
 
                if (domain->vbds == NULL) {
                        domain->num_vbds = 1;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxenstat: Fix statistics for blktap disks on linux, Xen patchbot-unstable <=