Whamcloud - gitweb
LU-2989 build: some make targets are broken
[fs/lustre-release.git] / lnet / utils / debug.c
index 91200c6..ec4393e 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2012, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -367,8 +367,10 @@ static void print_rec(struct dbg_line ***linevp, int used, int fdout)
                 int bytes;
                 ssize_t bytes_written;
 
-                bytes = sprintf(out, "%08x:%08x:%u:%u.%06llu:%u:%u:%u:(%s:%u:%s()) %s",
-                                hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
+                bytes = sprintf(out, "%08x:%08x:%u.%u%s:%u.%06llu:%u:%u:%u:(%s:%u:%s()) %s",
+                                hdr->ph_subsys, hdr->ph_mask,
+                                hdr->ph_cpu_id, hdr->ph_type,
+                                hdr->ph_flags & PH_FLAG_FIRST_RECORD ? "F" : "",
                                 hdr->ph_sec, (unsigned long long)hdr->ph_usec,
                                 hdr->ph_stack, hdr->ph_pid, hdr->ph_extern_pid,
                                 line->file, hdr->ph_line_num, line->fn, line->text);
@@ -415,6 +417,7 @@ static void dump_hdr(unsigned long long offset, struct ptldebug_header *hdr)
         fprintf(stderr, "  subsystem = %x\n", hdr->ph_subsys);
         fprintf(stderr, "  mask = %x\n", hdr->ph_mask);
         fprintf(stderr, "  cpu_id = %u\n", hdr->ph_cpu_id);
+        fprintf(stderr, "  type = %u\n", hdr->ph_type);
         fprintf(stderr, "  seconds = %u\n", hdr->ph_sec);
         fprintf(stderr, "  microseconds = %lu\n", (long)hdr->ph_usec);
         fprintf(stderr, "  stack = %u\n", hdr->ph_stack);
@@ -454,7 +457,7 @@ static int parse_buffer(int fdin, int fdout)
                         goto readhdr;
                 
                 if (hdr->ph_len > 4094 ||       /* is this header bogus? */
-                    hdr->ph_cpu_id > 65536 ||
+                    hdr->ph_type >= libcfs_tcd_type_max() ||
                     hdr->ph_stack > 65536 ||
                     hdr->ph_sec < (1 << 30) ||
                     hdr->ph_usec > 1000000000 ||
@@ -846,72 +849,56 @@ int jt_dbg_mark_debug_buf(int argc, char **argv)
 }
 
 static struct mod_paths {
-        char *name, *path;
+       char *name, *path;
 } mod_paths[] = {
-        {"libcfs", "libcfs/libcfs"},
-        {"lnet", "lnet/lnet"},
-        {"kciblnd", "lnet/klnds/ciblnd"},
-        {"kgmlnd", "lnet/klnds/gmlnd"},
-        {"kmxlnd", "lnet/klnds/mxlnd"},
-        {"kiiblnd", "lnet/klnds/iiblnd"},
-        {"ko2iblnd", "lnet/klnds/o2iblnd"},
-        {"kopeniblnd", "lnet/klnds/openiblnd"},
-        {"kptllnd", "lnet/klnds/ptllnd"},
-        {"kqswlnd", "lnet/klnds/qswlnd"},
-        {"kralnd", "lnet/klnds/ralnd"},
-        {"ksocklnd", "lnet/klnds/socklnd"},
-        {"ktdilnd", "lnet/klnds/tdilnd"},
-        {"kviblnd", "lnet/klnds/viblnd"},
-        {"lvfs", "lustre/lvfs"},
-        {"obdclass", "lustre/obdclass"},
-        {"llog_test", "lustre/obdclass"},
-        {"ptlrpc_gss", "lustre/ptlrpc/gss"},
-        {"ptlrpc", "lustre/ptlrpc"},
-        {"gks", "lustre/sec/gks"},
-        {"gkc", "lustre/sec/gks"},
-        {"ost", "lustre/ost"},
-        {"osc", "lustre/osc"},
-        {"mds", "lustre/mds"},
-        {"mdc", "lustre/mdc"},
-        {"llite", "lustre/llite"},
-        {"lustre", "lustre/llite"},
-        {"llite_lloop", "lustre/llite"},
-        {"ldiskfs", "ldiskfs/ldiskfs"},
-        {"smfs", "lustre/smfs"},
-        {"obdecho", "lustre/obdecho"},
-        {"ldlm", "lustre/ldlm"},
-        {"obdfilter", "lustre/obdfilter"},
-        {"lov", "lustre/lov"},
-        {"lmv", "lustre/lmv"},
-        {"fsfilt_ext3", "lustre/lvfs"},
-        {"fsfilt_reiserfs", "lustre/lvfs"},
-        {"fsfilt_smfs", "lustre/lvfs"},
-        {"fsfilt_ldiskfs", "lustre/lvfs"},
-        {"mds_ext3", "lustre/mds"},
-        {"cobd", "lustre/cobd"},
-        {"cmobd", "lustre/cmobd"},
-        {"lquota", "lustre/quota"},
-        {"mgs", "lustre/mgs"},
-        {"mgc", "lustre/mgc"},
-        {"mdt", "lustre/mdt"},
-        {"mdd", "lustre/mdd"},
-        {"osd", "lustre/osd"},
-        {"cmm", "lustre/cmm"},
+       { "libcfs", "libcfs/libcfs" },
+       { "lnet", "lnet/lnet" },
+       { "kmxlnd", "lnet/klnds/mxlnd" },
+       { "ko2iblnd", "lnet/klnds/o2iblnd" },
+       { "kptllnd", "lnet/klnds/ptllnd" },
+       { "kgnilnd", "lnet/klnds/gnilnd"},
+       { "kqswlnd", "lnet/klnds/qswlnd" },
+       { "kralnd", "lnet/klnds/ralnd" },
+       { "ksocklnd", "lnet/klnds/socklnd" },
+       { "ktdilnd", "lnet/klnds/tdilnd" },
+       { "lvfs", "lustre/lvfs" },
+       { "obdclass", "lustre/obdclass" },
+       { "llog_test", "lustre/obdclass" },
+       { "ptlrpc_gss", "lustre/ptlrpc/gss" },
+       { "ptlrpc", "lustre/ptlrpc" },
+       { "gks", "lustre/sec/gks" },
+       { "gkc", "lustre/sec/gks" },
+       { "ost", "lustre/ost" },
+       { "osc", "lustre/osc" },
+       { "mds", "lustre/mds" },
+       { "mdc", "lustre/mdc" },
+       { "lustre", "lustre/llite" },
+       { "llite_lloop", "lustre/llite" },
+       { "ldiskfs", "ldiskfs/ldiskfs" },
+       { "obdecho", "lustre/obdecho" },
+       { "ldlm", "lustre/ldlm" },
+       { "obdfilter", "lustre/obdfilter" },
+       { "lov", "lustre/lov" },
+       { "lmv", "lustre/lmv" },
+       { "fsfilt_ldiskfs", "lustre/lvfs" },
+       { "lquota", "lustre/quota" },
+       { "mgs", "lustre/mgs" },
+       { "mgc", "lustre/mgc" },
+       { "mdt", "lustre/mdt" },
+       { "mdd", "lustre/mdd" },
+       { "osd", "lustre/osd" },
+       { "cmm", "lustre/cmm" },
         {"fid", "lustre/fid"},
         {"fld", "lustre/fld"},
+       {"lod", "lustre/lod"},
+       {"osp", "lustre/osp"},
         {NULL, NULL}
 };
 
-static int jt_dbg_modules_2_4(int argc, char **argv)
-{
-        return -EINVAL;
-}
-
-static int jt_dbg_modules_2_5(int argc, char **argv)
+int jt_dbg_modules(int argc, char **argv)
 {
         struct mod_paths *mp;
         char *path = "";
-        char *kernel = "linux";
         const char *proc = "/proc/modules";
         char modname[128], buf[4096];
         long modaddr;
@@ -919,8 +906,6 @@ static int jt_dbg_modules_2_5(int argc, char **argv)
 
         if (argc >= 2)
                 path = argv[1];
-        if (argc == 3)
-                kernel = argv[2];
         if (argc > 3) {
                 printf("%s [path] [kernel]\n", argv[0]);
                 return 0;
@@ -938,11 +923,11 @@ static int jt_dbg_modules_2_5(int argc, char **argv)
                                 if (!strcmp(mp->name, modname))
                                         break;
                         }
-                        if (mp->name) {
-                                printf("add-symbol-file %s%s%s/%s.o 0x%0lx\n", 
-                                       path, path[0] ? "/" : "", 
-                                       mp->path, mp->name, modaddr);
-                        }
+                       if (mp->name) {
+                               printf("add-symbol-file %s%s%s/%s.o 0x%0lx\n",
+                                       path, path[0] ? "/" : "",
+                                       mp->path, mp->name, modaddr);
+                       }
                 }
         }
 
@@ -950,26 +935,6 @@ static int jt_dbg_modules_2_5(int argc, char **argv)
         return 0;
 }
 
-int jt_dbg_modules(int argc, char **argv)
-{
-        int rc = 0;
-        struct utsname sysinfo;
-
-        rc = uname(&sysinfo);
-        if (rc) {
-                printf("uname() failed: %s\n", strerror(errno));
-                return 0;
-        }
-
-        if (sysinfo.release[2] > '4') {
-                return jt_dbg_modules_2_5(argc, argv);
-        } else {
-                return jt_dbg_modules_2_4(argc, argv);
-        }
-
-        return 0;
-}
-
 int jt_dbg_panic(int argc, char **argv)
 {
         int rc;