Group reporting fixes
[fio.git] / stat.c
diff --git a/stat.c b/stat.c
index 8d391a35d4dec7058e0670bde73685d3fa176937..1eb55be43f708119f43c69ec3f40d4c112940413 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -669,18 +669,27 @@ void show_run_stats(void)
                        ts->slat_stat[j].min_val = -1UL;
                        ts->bw_stat[j].min_val = -1UL;
                }
                        ts->slat_stat[j].min_val = -1UL;
                        ts->bw_stat[j].min_val = -1UL;
                }
+               ts->groupid = -1;
        }
 
        j = 0;
        last_ts = -1;
        idx = 0;
        for_each_td(td, i) {
        }
 
        j = 0;
        last_ts = -1;
        idx = 0;
        for_each_td(td, i) {
+               if (idx && (!td->group_reporting ||
+                   (td->group_reporting && last_ts != td->groupid))) {
+                       idx = 0;
+                       j++;
+               }
+
+               last_ts = td->groupid;
+
                ts = &threadstats[j];
 
                idx++;
                ts->members++;
 
                ts = &threadstats[j];
 
                idx++;
                ts->members++;
 
-               if (!ts->groupid) {
+               if (ts->groupid == -1) {
                        /*
                         * These are per-group shared already
                         */
                        /*
                         * These are per-group shared already
                         */
@@ -724,21 +733,6 @@ void show_run_stats(void)
                        ts->total_io_u[k] += td->ts.total_io_u[k];
 
                ts->total_run_time += td->ts.total_run_time;
                        ts->total_io_u[k] += td->ts.total_io_u[k];
 
                ts->total_run_time += td->ts.total_run_time;
-
-               if (!td->group_reporting) {
-                       idx = 0;
-                       j++;
-                       continue;
-               }
-               if (last_ts == td->groupid)
-                       continue;
-
-               if (last_ts != -1) {
-                       idx = 0;
-                       j++;
-               }
-
-               last_ts = td->groupid;
        }
 
        for (i = 0; i < nr_ts; i++) {
        }
 
        for (i = 0; i < nr_ts; i++) {