diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-07 11:13:41 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-07 11:13:41 +0100 |
commit | 757d07a4dbc3cf72f74001d19af4a47603531e26 (patch) | |
tree | 29801c1547316a985b99cd5bca105a7800532ce2 /tools/xenstat/libxenstat | |
parent | 918b0012a90c98b9868d0e17c0b9de887f5a57a1 (diff) | |
download | xen-757d07a4dbc3cf72f74001d19af4a47603531e26.tar.gz xen-757d07a4dbc3cf72f74001d19af4a47603531e26.tar.bz2 xen-757d07a4dbc3cf72f74001d19af4a47603531e26.zip |
xenstat: Adding to scan blktap information.
Signed-off-by: Satoshi UCHIDA <s-uchida@ap.jp.nec.com>
Diffstat (limited to 'tools/xenstat/libxenstat')
-rw-r--r-- | tools/xenstat/libxenstat/src/xenstat.c | 6 | ||||
-rw-r--r-- | tools/xenstat/libxenstat/src/xenstat.h | 4 | ||||
-rw-r--r-- | tools/xenstat/libxenstat/src/xenstat_linux.c | 14 | ||||
-rw-r--r-- | tools/xenstat/libxenstat/src/xenstat_priv.h | 9 |
4 files changed, 25 insertions, 8 deletions
diff --git a/tools/xenstat/libxenstat/src/xenstat.c b/tools/xenstat/libxenstat/src/xenstat.c index 7678aca46e..93d228c2f6 100644 --- a/tools/xenstat/libxenstat/src/xenstat.c +++ b/tools/xenstat/libxenstat/src/xenstat.c @@ -625,6 +625,12 @@ static void xenstat_free_vbds(xenstat_node * node) free(node->domains[i].vbds); } +/* Get the back driver type for Virtual Block Device */ +unsigned int xenstat_vbd_type(xenstat_vbd * vbd) +{ + return vbd->back_type; +} + /* Get the major number of VBD device */ unsigned int xenstat_vbd_dev(xenstat_vbd * vbd) { diff --git a/tools/xenstat/libxenstat/src/xenstat.h b/tools/xenstat/libxenstat/src/xenstat.h index 345a1eda14..e7bf3e130c 100644 --- a/tools/xenstat/libxenstat/src/xenstat.h +++ b/tools/xenstat/libxenstat/src/xenstat.h @@ -172,6 +172,10 @@ unsigned long long xenstat_network_tdrop(xenstat_network * network); /* * VBD functions - extract information from a xen_vbd */ + +/* Get the back driver type for Virtual Block Device */ +unsigned int xenstat_vbd_type(xenstat_vbd * vbd); + /* Get the device number for Virtual Block Device */ unsigned int xenstat_vbd_dev(xenstat_vbd * vbd); diff --git a/tools/xenstat/libxenstat/src/xenstat_linux.c b/tools/xenstat/libxenstat/src/xenstat_linux.c index db45ad5761..d6e2cf3fe0 100644 --- a/tools/xenstat/libxenstat/src/xenstat_linux.c +++ b/tools/xenstat/libxenstat/src/xenstat_linux.c @@ -204,17 +204,23 @@ int xenstat_collect_vbds(xenstat_node * node) int ret; char buf[256]; + ret = sscanf(dp->d_name, "%3s-%u-%u", buf, &domid, &vbd.dev); + if (ret != 3) + continue; - ret = sscanf(dp->d_name, "vbd-%u-%u", &domid, &vbd.dev); - if (ret != 2) + if (strcmp(buf,"vbd") == 0) + vbd.back_type = 1; + else if (strcmp(buf,"tap") == 0) + vbd.back_type = 2; + else continue; domain = xenstat_node_domain(node, domid); if (domain == NULL) { fprintf(stderr, - "Found interface vbd-%u-%u but domain %u" + "Found interface %s-%u-%u but domain %u" " does not exist.\n", - domid, vbd.dev, domid); + buf, domid, vbd.dev, domid); continue; } diff --git a/tools/xenstat/libxenstat/src/xenstat_priv.h b/tools/xenstat/libxenstat/src/xenstat_priv.h index 719edad8ff..46607a61f2 100644 --- a/tools/xenstat/libxenstat/src/xenstat_priv.h +++ b/tools/xenstat/libxenstat/src/xenstat_priv.h @@ -87,10 +87,11 @@ struct xenstat_network { }; struct xenstat_vbd { - unsigned int dev; - unsigned long long oo_reqs; - unsigned long long rd_reqs; - unsigned long long wr_reqs; + unsigned int back_type; + unsigned int dev; + unsigned long long oo_reqs; + unsigned long long rd_reqs; + unsigned long long wr_reqs; }; extern int xenstat_collect_networks(xenstat_node * node); |