Whamcloud - gitweb
* simplified gmnal thread startup/shutdown
[fs/lustre-release.git] / lnet / utils / debug.c
index 462a91d..857be97 100644 (file)
 #endif
 #include <stdlib.h>
 #include <string.h>
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+#ifndef _IOWR
+#include "ioctl.h"
+#endif
 #include <fcntl.h>
 #include <errno.h>
 #include <unistd.h>
@@ -66,7 +72,7 @@ static const char *portal_debug_subsystems[] =
          "pinger", "filter", "ptlbd", "echo", 
          "ldlm", "lov", "router", "cobd", 
          "sm", "asobd", "confobd", "lmv", 
-         "cmobd", NULL};
+         "cmobd", "sec", NULL};
 static const char *portal_debug_masks[] =
         {"trace", "inode", "super", "ext2", 
          "malloc", "cache", "info", "ioctl",
@@ -74,7 +80,7 @@ static const char *portal_debug_masks[] =
          "other", "dentry", "portals", "page", 
          "dlmtrace", "error", "emerg", "ha", 
          "rpctrace", "vfstrace", "reada", "mmap",
-         "config", "console", NULL};
+         "config", "console", "quota", "sec", NULL};
 
 struct debug_daemon_cmd {
         char *cmd;
@@ -269,7 +275,7 @@ static void print_saved_records(struct list_head *list, FILE *out)
                 list_del(&line->chain);
 
                 hdr = line->hdr;
-                fprintf(out, "%06x:%06x:%u:%u.%06Lu:%u:%u:%u:(%s:%u:%s()) %s",
+                fprintf(out, "%07x:%06x:%u:%u.%06Lu:%u:%u:%u:(%s:%u:%s()) %s",
                         hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
                         hdr->ph_sec, (unsigned long long)hdr->ph_usec,
                         hdr->ph_stack, hdr->ph_pid, hdr->ph_extern_pid,
@@ -665,6 +671,10 @@ static struct mod_paths {
         {"lvfs", "lustre/lvfs"},
         {"obdclass", "lustre/obdclass"},
         {"llog_test", "lustre/obdclass"},
+        {"ptlrpcs", "lustre/sec"},
+        {"ptlrpcs_gss", "lustre/sec/gss"},
+        {"gks", "lustre/sec/gks"},
+        {"gkc", "lustre/sec/gks"},
         {"ptlrpc", "lustre/ptlrpc"},
         {"obdext2", "lustre/obdext2"},
         {"ost", "lustre/ost"},
@@ -702,7 +712,7 @@ static int jt_dbg_modules_2_4(int argc, char **argv)
 #ifdef HAVE_LINUX_VERSION_H
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
         struct mod_paths *mp;
-        char *path = "..";
+        char *path = "";
         char *kernel = "linux";
 
         if (argc >= 2)
@@ -714,6 +724,7 @@ static int jt_dbg_modules_2_4(int argc, char **argv)
                 return 0;
         }
 
+        printf("dir\n");
         for (mp = mod_paths; mp->name != NULL; mp++) {
                 struct module_info info;
                 int rc;
@@ -728,9 +739,11 @@ static int jt_dbg_modules_2_4(int argc, char **argv)
                                 printf("query_module(%s) failed: %s\n",
                                        mp->name, strerror(errno));
                 } else {
-                        printf("add-symbol-file %s/%s/%s.o 0x%0lx\n", path,
-                               mp->path, mp->name,
+                        printf("add-symbol-file %s%s%s/%s.o 0x%0lx\n", path,
+                               path[0] ? "/" : "", mp->path, mp->name,
                                info.addr + sizeof(struct module));
+                        printf("dir %s%s%s\n", path,
+                               path[0] ? "/" : "", mp->path);
                 }
         }
 
@@ -743,7 +756,7 @@ static int jt_dbg_modules_2_4(int argc, char **argv)
 static int jt_dbg_modules_2_5(int argc, char **argv)
 {
         struct mod_paths *mp;
-        char *path = "..";
+        char *path = "";
         char *kernel = "linux";
         const char *proc = "/proc/modules";
         char modname[128], others[128];
@@ -766,6 +779,7 @@ static int jt_dbg_modules_2_5(int argc, char **argv)
                 return 0;
         }
 
+        printf("dir\n");
         while ((rc = fscanf(file, "%s %s %s %s %s %lx\n",
                 modname, others, others, others, others, &modaddr)) == 6) {
                 for (mp = mod_paths; mp->name != NULL; mp++) {
@@ -773,8 +787,10 @@ static int jt_dbg_modules_2_5(int argc, char **argv)
                                 break;
                 }
                 if (mp->name) {
-                        printf("add-symbol-file %s/%s/%s.o 0x%0lx\n", path,
-                               mp->path, mp->name, modaddr);
+                        printf("add-symbol-file %s%s%s/%s.o 0x%0lx\n", path,
+                               path[0] ? "/" : "", mp->path, mp->name, modaddr);
+                        printf("dir %s%s%s\n", path,
+                               path[0] ? "/" : "", mp->path);
                 }
         }