aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenstat/libxenstat
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-07 11:13:41 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-07 11:13:41 +0100
commit757d07a4dbc3cf72f74001d19af4a47603531e26 (patch)
tree29801c1547316a985b99cd5bca105a7800532ce2 /tools/xenstat/libxenstat
parent918b0012a90c98b9868d0e17c0b9de887f5a57a1 (diff)
downloadxen-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.c6
-rw-r--r--tools/xenstat/libxenstat/src/xenstat.h4
-rw-r--r--tools/xenstat/libxenstat/src/xenstat_linux.c14
-rw-r--r--tools/xenstat/libxenstat/src/xenstat_priv.h9
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);