Add group reporting

Still needs some testing, so the option isn't documented yet. The
standard deviation averaging also isn't mathematically sound.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/init.c b/init.c
index 6dcd801..bbf6f2a 100644
--- a/init.c
+++ b/init.c
@@ -784,12 +784,6 @@
 	if (td == &def_thread)
 		return 0;
 
-	/*
-	 * this will later be shared between thread for group reporting
-	 */
-	td->ts = &td->__ts;
-	memset(td->ts, 0, sizeof(*td->ts));
-
 	assert(td->io_ops);
 
 	if (td->odirect)
@@ -856,9 +850,9 @@
 		
 	fio_sem_init(&td->mutex, 0);
 
-	td->ts->clat_stat[0].min_val = td->ts->clat_stat[1].min_val = ULONG_MAX;
-	td->ts->slat_stat[0].min_val = td->ts->slat_stat[1].min_val = ULONG_MAX;
-	td->ts->bw_stat[0].min_val = td->ts->bw_stat[1].min_val = ULONG_MAX;
+	td->ts.clat_stat[0].min_val = td->ts.clat_stat[1].min_val = ULONG_MAX;
+	td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX;
+	td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX;
 
 	if (td->stonewall && td->thread_number > 1)
 		groupid++;
@@ -869,11 +863,11 @@
 		goto err;
 
 	if (td->write_lat_log) {
-		setup_log(&td->ts->slat_log);
-		setup_log(&td->ts->clat_log);
+		setup_log(&td->ts.slat_log);
+		setup_log(&td->ts.clat_log);
 	}
 	if (td->write_bw_log)
-		setup_log(&td->ts->bw_log);
+		setup_log(&td->ts.bw_log);
 
 	if (!td->name)
 		td->name = strdup(jobname);