X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=stat.c;h=da3ad2a22412dcadba647e7b5cee0250e6cfdec9;hb=9e129577b8799a9578a6aa6021a58367981e320a;hp=7fa601b72d0c3b2e6c449040cbe97f1ea9f60e1d;hpb=3d57c0e9b017a745c748416ce46d2a532d4bc274;p=fio.git diff --git a/stat.c b/stat.c index 7fa601b7..da3ad2a2 100644 --- a/stat.c +++ b/stat.c @@ -832,7 +832,7 @@ static void add_ddir_status_json(struct thread_stat *ts, unsigned int len, minv, maxv; int i; const char *ddirname[] = {"read", "write", "trim"}; - struct json_object *dir_object, *tmp_object, *percentile_object; + struct json_object *dir_object, *tmp_object, *percentile_object, *clat_bins_object; char buf[120]; double p_of_agg = 100.0; @@ -903,6 +903,18 @@ static void add_ddir_status_json(struct thread_stat *ts, json_object_add_value_int(percentile_object, (const char *)buf, ovals[i]); } + if (output_format & FIO_OUTPUT_JSON_PLUS) { + clat_bins_object = json_create_object(); + json_object_add_value_object(tmp_object, "bins", clat_bins_object); + for(i = 0; i < FIO_IO_U_PLAT_NR; i++) { + snprintf(buf, sizeof(buf), "%d", i); + json_object_add_value_int(clat_bins_object, (const char *)buf, ts->io_u_plat[ddir][i]); + } + json_object_add_value_int(clat_bins_object, "FIO_IO_U_PLAT_BITS", FIO_IO_U_PLAT_BITS); + json_object_add_value_int(clat_bins_object, "FIO_IO_U_PLAT_VAL", FIO_IO_U_PLAT_VAL); + json_object_add_value_int(clat_bins_object, "FIO_IO_U_PLAT_NR", FIO_IO_U_PLAT_NR); + } + if (!calc_lat(&ts->lat_stat[ddir], &min, &max, &mean, &dev)) { min = max = 0; mean = dev = 0.0; @@ -1083,9 +1095,10 @@ static struct json_object *show_thread_status_json(struct thread_stat *ts, /* ETA Info */ je = get_jobs_eta(1, &size); - json_object_add_value_int(root, "eta", je->eta_sec); - json_object_add_value_int(root, "elapsed", je->elapsed_sec); - + if (je) { + json_object_add_value_int(root, "eta", je->eta_sec); + json_object_add_value_int(root, "elapsed", je->elapsed_sec); + } add_ddir_status_json(ts, rs, DDIR_READ, root); add_ddir_status_json(ts, rs, DDIR_WRITE, root); @@ -1172,7 +1185,7 @@ static struct json_object *show_thread_status_json(struct thread_stat *ts, if (len) { struct json_object *block, *percentile_object, *states; - int state, i; + int state; block = json_create_object(); json_object_add_value_object(root, "block", block); @@ -1599,7 +1612,7 @@ void __show_run_stats(void) show_thread_status_normal(ts, rs, &output[__FIO_OUTPUT_NORMAL]); } } - if (output_format & FIO_OUTPUT_JSON) { + if (!is_backend && (output_format & FIO_OUTPUT_JSON)) { /* disk util stats, if any */ show_disk_util(1, root, &output[__FIO_OUTPUT_JSON]);