kdump - Add options to print physical cpu
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 18:33:52 +0000 (11:33 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 20 Sep 2012 18:33:52 +0000 (11:33 -0700)
* -c option adds the physical cpu to the output

* -a option humanform.  This options turns on -c and -R.

usr.bin/kdump/kdump.1
usr.bin/kdump/kdump.c

index bb23d82..3074029 100644 (file)
@@ -41,7 +41,7 @@
 .Nd display kernel trace data
 .Sh SYNOPSIS
 .Nm
-.Op Fl djnlRT
+.Op Fl acdjnlRT
 .Op Fl f Ar file
 .Op Fl m Ar maxdata
 .Op Fl t Op cnisuw
@@ -58,6 +58,14 @@ in the current directory is displayed.
 .Pp
 The options are as follows:
 .Bl -tag -width Fl
+.It Fl a
+Display full human readable output.
+This option turns on
+.Fl c
+and
+.Fl R .
+.It Fl c
+Display the cpu the thread is executing on.
 .It Fl d
 Display all numbers in decimal.
 .It Fl j
index 03584c8..0a422b0 100644 (file)
@@ -74,6 +74,7 @@ static void   usage(void);
 
 int timestamp, decimal, fancy = 1, tail, maxdata = 64;
 int fixedformat;
+int cpustamp;
 const char *tracefile = DEF_TRACEFILE;
 struct ktr_header ktr_header;
 
@@ -90,7 +91,7 @@ main(int argc, char **argv)
 
        (void) setlocale(LC_CTYPE, "");
 
-       while ((ch = getopt(argc,argv,"f:djlm:np:RTt:")) != -1)
+       while ((ch = getopt(argc,argv,"acf:djlm:np:RTt:")) != -1)
                switch((char)ch) {
                case 'f':
                        tracefile = optarg;
@@ -98,6 +99,13 @@ main(int argc, char **argv)
                case 'j':
                        fixedformat = 1;
                        break;
+               case 'c':
+                       cpustamp = 1;
+                       break;
+               case 'a':
+                       timestamp = 2;  /* relative timestamp */
+                       cpustamp = 1;
+                       break;
                case 'd':
                        decimal = 1;
                        break;
@@ -238,6 +246,8 @@ dumpheader(struct ktr_header *kth)
                col = printf("%5d:%-4d", kth->ktr_pid, kth->ktr_tid);
        else
                col = printf("%5d", kth->ktr_pid);
+       if (cpustamp)
+               col += printf(" %d", KTRH_CPUID_DECODE(kth->ktr_flags));
        col += printf(" %-8.*s ", MAXCOMLEN, kth->ktr_comm);
        if (timestamp) {
                if (timestamp == 2) {