[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Fix libxenstat on Solaris



# HG changeset patch
# User john.levon@xxxxxxx
# Date 1204039041 28800
# Node ID 472989331ad1f71fa99b8b6418073d4036c802ba
# Parent  6a09ea2f3b4e44a76962f6f62cd43039c1610824
Fix libxenstat on Solaris

Recent Solaris enhancements have changed the way virtual NIC statistics
are collected - fix libxenstat up for this.

Signed-off-by: John Levon <john.levon@xxxxxxx>

diff --git a/tools/xenstat/libxenstat/src/xenstat_solaris.c 
b/tools/xenstat/libxenstat/src/xenstat_solaris.c
--- a/tools/xenstat/libxenstat/src/xenstat_solaris.c
+++ b/tools/xenstat/libxenstat/src/xenstat_solaris.c
@@ -113,49 +113,23 @@ static void xenstat_uninit_devs(xenstat_
        priv->kc = NULL;
 }
 
-static int parse_nic(const char *nic, char *module, int *instance)
-{
-       const char *c;
-
-       for (c = &nic[strlen(nic) - 1]; c != nic && isdigit(*c); c--)
-               ;
-
-       if (c == nic)
-               return 0;
-
-       c++;
-
-       if (sscanf(c, "%d", instance) != 1)
-               return 0;
-
-       strncpy(module, nic, c - nic);
-       module[c - nic] = '\0';
-       return 1;
-}
-
 static int update_dev_stats(priv_data_t *priv, stdevice_t *dev)
 {
-       char mod[256];
-       const char *name;
-       int inst;
        kstat_t *ksp;
-
-       if (dev->type == DEVICE_NIC) {
-               if (!parse_nic(dev->name, mod, &inst))
-                       return 0;
-               name = "mac";
-       } else {
-               strcpy(mod, "xdb");
-               inst = dev->instance;
-               name = "req_statistics";
-       }
 
        if (kstat_chain_update(priv->kc) == -1)
                return 0;
 
-       ksp = kstat_lookup(priv->kc, mod, inst, (char *)name);
+       if (dev->type == DEVICE_NIC) {
+               ksp = kstat_lookup(priv->kc, "link", 0, (char *)dev->name);
+       } else {
+               ksp = kstat_lookup(priv->kc, "xdb", dev->instance,
+                   (char *)"req_statistics");
+       }
+
        if (ksp == NULL)
                return 0;
+
        if (kstat_read(priv->kc, ksp, NULL) == -1)
                return 0;
 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.