BTT: Clean up output in preparation for first major documentation effort.
authorAlan D. Brunelle <Alan.Brunelle@hp.com>
Mon, 5 Mar 2007 11:41:19 +0000 (12:41 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 5 Mar 2007 11:41:19 +0000 (12:41 +0100)
Took out non-useful verbose per-device and per-process data from
default output. Added in -A option to put that out.

Signed-off-by: Alan D. Brunelle <Alan.Brunelle@hp.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
btt/args.c
btt/bt_timeline.c
btt/globals.h
btt/output.c

index e6df5e7606c35ae2fc9ff8b963b1a7657b43945e..a7cf01e2e052413874e68a092720e58b3bf82b6c 100644 (file)
 #include <fcntl.h>
 #include "globals.h"
 
-#define S_OPTS "d:D:e:hi:I:l:M:o:p:q:s:S:t:T:Vv"
+#define S_OPTS "Ad:D:e:hi:I:l:M:o:p:q:s:S:t:T:Vv"
 static struct option l_opts[] = {
+       {
+               .name = "all-data",
+               .has_arg = no_argument,
+               .flag = NULL,
+               .val = 'A'
+       },
        {
                .name = "range-delta",
                .has_arg = required_argument,
@@ -167,6 +173,9 @@ void handle_args(int argc, char *argv[])
 
        while ((c = getopt_long(argc, argv, S_OPTS, l_opts, NULL)) != -1) {
                switch (c) {
+               case 'A':
+                       output_all_data = 1;
+                       break;
                case 'd':
                        sscanf(optarg, "%lf", &range_delta);
                        break;
index 0438e3f2cb73261de96eab507ef32ee06177f686..ad7ce49af05cceea04b2ccf5a1d222884ebfb08b 100644 (file)
@@ -30,7 +30,7 @@ char bt_timeline_version[] = "0.99";
 char *devices, *exes, *input_name, *output_name, *seek_name;
 char *d2c_name, *q2c_name, *per_io_name;
 FILE *ranges_ofp, *avgs_ofp, *per_io_ofp;
-int verbose, done, time_bounded;
+int verbose, done, time_bounded, output_all_data;
 double t_astart, t_aend;
 unsigned long n_traces;
 struct avgs_info all_avgs;
index cdf6fc9b1b6489ca3c2e5c4308736ee5ff9cf480..b4e989498e5a5c158483775ea618520a385283d2 100644 (file)
@@ -195,7 +195,7 @@ extern char bt_timeline_version[], *devices, *exes, *input_name, *output_name;
 extern char *seek_name, *iostat_name, *d2c_name, *q2c_name, *per_io_name;
 extern double range_delta;
 extern FILE *ranges_ofp, *avgs_ofp, *iostat_ofp, *per_io_ofp;;
-extern int verbose, done, time_bounded;
+extern int verbose, done, time_bounded, output_all_data;
 extern unsigned int n_devs;
 extern unsigned long n_traces;
 extern struct list_head all_devs, all_procs, retries;
index 44e7bac85073114ebe258bc954a79e129a287c0d..1c80dfebfd3f0e8a1bcc38bed2a34543c74c734b 100644 (file)
@@ -523,23 +523,25 @@ void output_histos(void)
 
 int output_avgs(FILE *ofp)
 {
-       if (exes == NULL || *exes != '\0') {
-               output_section_hdr(ofp, "Per Process");
-               output_pip_avg(ofp, "Q2Q", pip_q2q_avg);
-               output_pip_avg(ofp, "Q2A", pip_q2a_avg);
-               output_pip_avg(ofp, "Q2I", pip_q2i_avg);
-               output_pip_avg(ofp, "I2D", pip_i2d_avg);
-               output_pip_avg(ofp, "D2C", pip_d2c_avg);
-               output_pip_avg(ofp, "Q2C", pip_q2c_avg);
-       }
+       if (output_all_data) {
+               if (exes == NULL || *exes != '\0') {
+                       output_section_hdr(ofp, "Per Process");
+                       output_pip_avg(ofp, "Q2Q", pip_q2q_avg);
+                       output_pip_avg(ofp, "Q2A", pip_q2a_avg);
+                       output_pip_avg(ofp, "Q2I", pip_q2i_avg);
+                       output_pip_avg(ofp, "I2D", pip_i2d_avg);
+                       output_pip_avg(ofp, "D2C", pip_d2c_avg);
+                       output_pip_avg(ofp, "Q2C", pip_q2c_avg);
+               }
 
-       output_section_hdr(ofp, "Per Device");
-       output_dip_avg(ofp, "Q2Q", dip_q2q_avg);
-       output_dip_avg(ofp, "Q2A", dip_q2a_avg);
-       output_dip_avg(ofp, "Q2I", dip_q2i_avg);
-       output_dip_avg(ofp, "I2D", dip_i2d_avg);
-       output_dip_avg(ofp, "D2C", dip_d2c_avg);
-       output_dip_avg(ofp, "Q2C", dip_q2c_avg);
+               output_section_hdr(ofp, "Per Device");
+               output_dip_avg(ofp, "Q2Q", dip_q2q_avg);
+               output_dip_avg(ofp, "Q2A", dip_q2a_avg);
+               output_dip_avg(ofp, "Q2I", dip_q2i_avg);
+               output_dip_avg(ofp, "I2D", dip_i2d_avg);
+               output_dip_avg(ofp, "D2C", dip_d2c_avg);
+               output_dip_avg(ofp, "Q2C", dip_q2c_avg);
+       }
 
        output_section_hdr(ofp, "All Devices");
        output_hdr(ofp, "ALL");
@@ -554,13 +556,15 @@ int output_avgs(FILE *ofp)
        output_section_hdr(ofp, "Device Overhead");
        output_dip_prep_ohead(ofp);
 
-       if (exes == NULL || *exes != '\0') {
-               output_section_hdr(ofp, "Per Process (avgs)");
-               output_pip_avgs(ofp);
-       }
+       if (output_all_data) {
+               if (exes == NULL || *exes != '\0') {
+                       output_section_hdr(ofp, "Per Process (avgs)");
+                       output_pip_avgs(ofp);
+               }
 
-       output_section_hdr(ofp, "Per Device (avgs)");
-       output_dip_avgs(ofp);
+               output_section_hdr(ofp, "Per Device (avgs)");
+               output_dip_avgs(ofp);
+       }
 
        output_section_hdr(ofp, "Device Merge Information");
        output_dip_merge_ratio(ofp);