Use maximum over all traces for queue depth
authorJan Kara <jack@suse.com>
Thu, 5 May 2016 15:17:05 +0000 (17:17 +0200)
committerJens Axboe <axboe@fb.com>
Thu, 5 May 2016 15:20:18 +0000 (09:20 -0600)
So far we used maximum of the first trace for the maximum range of the
queue depth graph. Use maximum over all traces similarly as for other
line graphs.

Signed-off-by: Jan Kara <jack@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
iowatcher/main.c

index cbe915571c0e8f3c7d28db2ce44940f57ae101c9..b13f509ac943f02062db5e8411b2f0fd8f68c175 100644 (file)
@@ -991,6 +991,7 @@ static void plot_queue_depth(struct plot *plot, unsigned int min_seconds,
                             unsigned int max_seconds)
 {
        struct trace_file *tf;
+       u64 max = 0, val;
 
        if (active_graphs[QUEUE_DEPTH_GRAPH_INDEX] == 0)
                return;
@@ -1000,9 +1001,17 @@ static void plot_queue_depth(struct plot *plot, unsigned int min_seconds,
        if (num_traces > 1)
                svg_alloc_legend(plot, num_traces);
 
-       tf = list_entry(all_traces.next, struct trace_file, list);
+       list_for_each_entry(tf, &all_traces, list) {
+               val = line_graph_roll_avg_max(tf->queue_depth_gld);
+               if (val > max)
+                       max = val;
+       }
+
+       list_for_each_entry(tf, &all_traces, list)
+               tf->queue_depth_gld->max = max;
+
        set_ylabel(plot, "Pending IO");
-       set_yticks(plot, num_yticks, 0, tf->queue_depth_gld->max, "");
+       set_yticks(plot, num_yticks, 0, max, "");
        set_xticks(plot, num_xticks, min_seconds, max_seconds);
 
        list_for_each_entry(tf, &all_traces, list) {