tools/power/turbostat: add option to count SMIs, re-name some options
authorLen Brown <len.brown@intel.com>
Sat, 6 Oct 2012 19:26:31 +0000 (15:26 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 6 Oct 2012 19:26:31 +0000 (15:26 -0400)
Counting SMIs is popular, so add a dedicated "-s" option to do it,
and juggle some of the other option letters.

-S is now system summary (was -s)
-c is 32 bit counter (was -d)
-C is 64-bit counter (was -D)
-p is 1st thread in core (was -c)
-P is 1st thread in package (was -p)

bump the minor version number

Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.8
tools/power/x86/turbostat/turbostat.c

index 0fc7a11f300e799535ee9a0f7d0e96f7b8da7d6d..e4d0690cccf9e888a2e920bcb783d17958b81470 100644 (file)
@@ -23,17 +23,19 @@ supports an "invariant" TSC, plus the APERF and MPERF MSRs.
 on processors that additionally support C-state residency counters.
 
 .SS Options
-The \fB-s\fP option limits output to a 1-line system summary for each interval.
+The \fB-p\fP option limits output to the 1st thread in 1st core of each package.
 .PP
-The \fB-c\fP option limits output to the 1st thread in each core.
+The \fB-P\fP option limits output to the 1st thread in each Package.
 .PP
-The \fB-p\fP option limits output to the 1st thread in each package.
+The \fB-S\fP option limits output to a 1-line System Summary for each interval.
 .PP
 The \fB-v\fP option increases verbosity.
 .PP
-The \fB-d MSR#\fP option includes the delta of the specified 32-bit MSR counter.
+The \fB-s\fP option prints the SMI counter, equivalent to "-c 0x34"
 .PP
-The \fB-D MSR#\fP option includes the delta of the specified 64-bit MSR counter.
+The \fB-c MSR#\fP option includes the delta of the specified 32-bit MSR counter.
+.PP
+The \fB-C MSR#\fP option includes the delta of the specified 64-bit MSR counter.
 .PP
 The \fB-m MSR#\fP option includes the the specified 32-bit MSR value.
 .PP
index e38976c0b0a2f12c6350167a3fd515883b385d0d..2655ae9a3ad8d9e6f7676006336a5e3b8fec99d1 100644 (file)
@@ -230,9 +230,9 @@ void print_header(void)
                outp += sprintf(outp, "  GHz");
        outp += sprintf(outp, "  TSC");
        if (extra_delta_offset32)
-               outp += sprintf(outp, "  delta 0x%03X", extra_delta_offset32);
+               outp += sprintf(outp, "  count 0x%03X", extra_delta_offset32);
        if (extra_delta_offset64)
-               outp += sprintf(outp, "  DELTA 0x%03X", extra_delta_offset64);
+               outp += sprintf(outp, "  COUNT 0x%03X", extra_delta_offset64);
        if (extra_msr_offset32)
                outp += sprintf(outp, "   MSR 0x%03X", extra_msr_offset32);
        if (extra_msr_offset64)
@@ -1304,7 +1304,7 @@ void check_cpuid()
 
 void usage()
 {
-       fprintf(stderr, "%s: [-v][-d MSR#][-D MSR#][-m MSR#][-M MSR#][-i interval_sec | command ...]\n",
+       fprintf(stderr, "%s: [-v][-p|-P|-S][-c MSR# | -s]][-C MSR#][-m MSR#][-M MSR#][-i interval_sec | command ...]\n",
                progname);
        exit(1);
 }
@@ -1594,15 +1594,15 @@ void cmdline(int argc, char **argv)
 
        progname = argv[0];
 
-       while ((opt = getopt(argc, argv, "+cpsvid:D:m:M:")) != -1) {
+       while ((opt = getopt(argc, argv, "+pPSvisc:sC:m:M:")) != -1) {
                switch (opt) {
-               case 'c':
+               case 'p':
                        show_core_only++;
                        break;
-               case 'p':
+               case 'P':
                        show_pkg_only++;
                        break;
-               case 's':
+               case 'S':
                        summary_only++;
                        break;
                case 'v':
@@ -1611,10 +1611,13 @@ void cmdline(int argc, char **argv)
                case 'i':
                        interval_sec = atoi(optarg);
                        break;
-               case 'd':
+               case 'c':
                        sscanf(optarg, "%x", &extra_delta_offset32);
                        break;
-               case 'D':
+               case 's':
+                       extra_delta_offset32 = 0x34;    /* SMI counter */
+                       break;
+               case 'C':
                        sscanf(optarg, "%x", &extra_delta_offset64);
                        break;
                case 'm':
@@ -1634,7 +1637,7 @@ int main(int argc, char **argv)
        cmdline(argc, argv);
 
        if (verbose > 1)
-               fprintf(stderr, "turbostat v2.0 May 16, 2012"
+               fprintf(stderr, "turbostat v2.1 October 6, 2012"
                        " - Len Brown <lenb@kernel.org>\n");
 
        turbostat_init();