Whamcloud - gitweb
smash the HEAD with the contents of b_cmd. HEAD_PRE_CMD_SMASH and
[fs/lustre-release.git] / lnet / utils / portals.c
index f8107d8..fb031ae 100644 (file)
@@ -34,7 +34,7 @@
 #include <unistd.h>
 #include <time.h>
 #include <stdarg.h>
-#include <endian.h>
+#include <asm/byteorder.h>
 
 #ifdef __CYGWIN__
 
@@ -61,7 +61,7 @@
 unsigned int portal_debug;
 unsigned int portal_printk;
 unsigned int portal_stack;
-unsigned int portal_cerror = 1;
+unsigned int portal_cerror;
 
 static unsigned int g_nal = 0;
 
@@ -81,73 +81,12 @@ static name2num_t nalnames[] = {
         {"elan",       QSWNAL},
         {"gm",         GMNAL},
         {"ib",         IBNAL},
+        {"scimac",      SCIMACNAL},
         {NULL,         -1}
 };
 
 static cfg_record_cb_t g_record_cb;
 
-/* Convert a string boolean to an int; "enable" -> 1 */
-int ptl_parse_bool (int *b, char *str) {
-        if (!strcasecmp (str, "no") ||
-            !strcasecmp (str, "n") ||
-            !strcasecmp (str, "off") ||
-            !strcasecmp (str, "down") ||
-            !strcasecmp (str, "disable"))
-        {
-                *b = 0;
-                return (0);
-        }
-        
-        if (!strcasecmp (str, "yes") ||
-            !strcasecmp (str, "y") ||
-            !strcasecmp (str, "on") ||
-            !strcasecmp (str, "up") ||
-            !strcasecmp (str, "enable"))
-        {
-                *b = 1;
-                return (0);
-        }
-        
-        return (-1);
-}
-
-/* Convert human readable size string to and int; "1k" -> 1000 */
-int ptl_parse_size (int *sizep, char *str) {
-        int size;
-        char mod[32];
-
-        switch (sscanf (str, "%d%1[gGmMkK]", &size, mod)) {
-        default:
-                return (-1);
-
-        case 1:
-                *sizep = size;
-                return (0);
-
-        case 2:
-                switch (*mod) {
-                case 'g':
-                case 'G':
-                        *sizep = size << 30;
-                        return (0);
-
-                case 'm':
-                case 'M':
-                        *sizep = size << 20;
-                        return (0);
-
-                case 'k':
-                case 'K':
-                        *sizep = size << 10;
-                        return (0);
-
-                default:
-                        *sizep = size;
-                        return (0);
-                }
-        }
-}
-
 int 
 ptl_set_cfg_record_cb(cfg_record_cb_t cb)
 {
@@ -364,40 +303,16 @@ ptl_parse_nid (ptl_nid_t *nidp, char *str)
         return (-1);
 }
 
-__u64 ptl_nid2u64(ptl_nid_t nid)
-{
-        switch (sizeof (nid)) {
-        case 8:
-                return (nid);
-        case 4:
-                return ((__u32)nid);
-        default:
-                fprintf(stderr, "Unexpected sizeof(ptl_nid_t) == %u\n", sizeof(nid));
-                abort();
-                /* notreached */
-                return (-1);
-        }
-}
-
 char *
 ptl_nid2str (char *buffer, ptl_nid_t nid)
 {
-        __u64           nid64 = ptl_nid2u64(nid);
-        struct hostent *he;
-
-        if ((nid64 & ~((__u64)((__u32)-1))) != 0) {
-                /* top bits set */
-                he = NULL;
-        } else {
-                __u32 addr = htonl((__u32)nid); /* back to NETWORK byte order */
-
-                he = gethostbyaddr ((const char *)&addr, sizeof (addr), AF_INET);
-        }
+        __u32           addr = htonl((__u32)nid); /* back to NETWORK byte order */
+        struct hostent *he = gethostbyaddr ((const char *)&addr, sizeof (addr), AF_INET);
 
         if (he != NULL)
                 strcpy (buffer, he->h_name);
         else
-                sprintf (buffer, LPX64, nid64);
+                sprintf (buffer, LPX64, nid);
         
         return (buffer);
 }
@@ -1093,7 +1008,7 @@ int jt_ptl_mynid(int argc, char **argv)
         char *nidstr;
         struct portals_cfg pcfg;
         ptl_nid_t mynid;
-
+        
         if (argc > 2) {
                 fprintf(stderr, "usage: %s [NID]\n", argv[0]);
                 fprintf(stderr, "NID defaults to the primary IP address of the machine.\n");
@@ -1127,8 +1042,7 @@ int jt_ptl_mynid(int argc, char **argv)
                 fprintf(stderr, "setting my NID failed: %s\n",
                        strerror(errno));
         else
-                printf("registered my nid "LPX64" (%s)\n", 
-                       ptl_nid2u64(mynid), hostname);
+                printf("registered my nid "LPX64" (%s)\n", mynid, hostname);
         return 0;
 }
 
@@ -1186,7 +1100,7 @@ jt_ptl_rxmem (int argc, char **argv)
         
         if (argc > 1)
         {
-                if (ptl_parse_size (&size, argv[1]) != 0 || size < 0)
+                if (Parser_size (&size, argv[1]) != 0 || size < 0)
                 {
                         fprintf (stderr, "Can't parse size %s\n", argv[1]);
                         return (0);
@@ -1205,7 +1119,7 @@ jt_ptl_txmem (int argc, char **argv)
         
         if (argc > 1)
         {
-                if (ptl_parse_size (&size, argv[1]) != 0 || size < 0)
+                if (Parser_size (&size, argv[1]) != 0 || size < 0)
                 {
                         fprintf (stderr, "Can't parse size %s\n", argv[1]);
                         return (0);
@@ -1223,7 +1137,7 @@ jt_ptl_nagle (int argc, char **argv)
 
         if (argc > 1)
         {
-                if (ptl_parse_bool (&enable, argv[1]) != 0)
+                if (Parser_bool (&enable, argv[1]) != 0)
                 {
                         fprintf (stderr, "Can't parse boolean %s\n", argv[1]);
                         return (-1);
@@ -1346,8 +1260,7 @@ jt_ptl_del_route (int argc, char **argv)
         rc = pcfg_ioctl(&pcfg);
         if (rc != 0) 
         {
-                fprintf (stderr, "NAL_CMD_DEL_ROUTE ("LPX64") failed: %s\n", 
-                         ptl_nid2u64(nid), strerror (errno));
+                fprintf (stderr, "NAL_CMD_DEL_ROUTE ("LPX64") failed: %s\n", nid, strerror (errno));
                 return (-1);
         }
         
@@ -1377,7 +1290,7 @@ jt_ptl_notify_router (int argc, char **argv)
                 return (-1);
         }
 
-        if (ptl_parse_bool (&enable, argv[2]) != 0) {
+        if (Parser_bool (&enable, argv[2]) != 0) {
                 fprintf (stderr, "Can't parse boolean %s\n", argv[2]);
                 return (-1);
         }
@@ -1409,7 +1322,7 @@ jt_ptl_notify_router (int argc, char **argv)
         if (rc != 0) 
         {
                 fprintf (stderr, "NAL_CMD_NOTIFY_ROUTER ("LPX64") failed: %s\n",
-                         ptl_nid2u64(nid), strerror (errno));
+                         nid, strerror (errno));
                 return (-1);
         }
         
@@ -1565,11 +1478,14 @@ lwt_put_string(char *ustr)
 static int
 lwt_print(FILE *f, cycles_t t0, cycles_t tlast, double mhz, int cpu, lwt_event_t *e)
 {
+        char            whenstr[32];
         char           *where = lwt_get_string(e->lwte_where);
 
         if (where == NULL)
                 return (-1);
 
+        sprintf(whenstr, LPD64, e->lwte_when - t0);
+
         fprintf(f, "%#010lx %#010lx %#010lx %#010lx: %#010lx %1d %10.6f %10.2f %s\n",
                 e->lwte_p1, e->lwte_p2, e->lwte_p3, e->lwte_p4,
                 (long)e->lwte_task, cpu, (e->lwte_when - t0) / (mhz * 1000000.0),
@@ -1621,7 +1537,6 @@ jt_ptl_lwt(int argc, char **argv)
         cycles_t        tnow;
         struct timeval  tvnow;
         int             printed_date = 0;
-        int             nlines = 0;
         FILE           *f = stdout;
 
         if (argc < 2 ||
@@ -1771,12 +1686,6 @@ jt_ptl_lwt(int argc, char **argv)
                         rc = lwt_print(f, t0, tlast, mhz, cpu, next_event[cpu]);
                         if (rc != 0)
                                 break;
-
-                        if (++nlines % 10000 == 0 && f != stdout) {
-                                /* show some activity... */
-                                printf(".");
-                                fflush (stdout);
-                        }
                 }
 
                 tlast = next_event[cpu]->lwte_when;
@@ -1790,10 +1699,8 @@ jt_ptl_lwt(int argc, char **argv)
                         next_event[cpu] = NULL;
         }
 
-        if (f != stdout) {
-                printf("\n");
+        if (f != stdout)
                 fclose(f);
-        }
 
         free(events);
         return (0);