stats: Add hint information to per priority level stats prio-hints
authorDamien Le Moal <dlemoal@kernel.org>
Fri, 21 Jul 2023 11:05:10 +0000 (20:05 +0900)
committerJens Axboe <axboe@kernel.dk>
Fri, 21 Jul 2023 20:07:28 +0000 (14:07 -0600)
Modify the json and standard per-priority output stats to display the
hint value together with the priority class and level.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com>
Link: https://lore.kernel.org/r/20230721110510.44772-7-dlemoal@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
stat.c

diff --git a/stat.c b/stat.c
index 7fad73d139b14470e943eee9cf47ef96f628c1f5..7b791628f4f7ca776c8f22ca5e609d6e0a5904cf 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -597,10 +597,11 @@ static void show_ddir_status(struct group_run_stats *rs, struct thread_stat *ts,
                                continue;
 
                        snprintf(buf, sizeof(buf),
-                                "%s prio %u/%u",
+                                "%s prio %u/%u/%u",
                                 clat_type,
                                 ioprio_class(ts->clat_prio[ddir][i].ioprio),
-                                ioprio(ts->clat_prio[ddir][i].ioprio));
+                                ioprio(ts->clat_prio[ddir][i].ioprio),
+                                ioprio_hint(ts->clat_prio[ddir][i].ioprio));
                        display_lat(buf, min, max, mean, dev, out);
                }
        }
@@ -640,10 +641,11 @@ static void show_ddir_status(struct group_run_stats *rs, struct thread_stat *ts,
                                        continue;
 
                                snprintf(prio_name, sizeof(prio_name),
-                                        "%s prio %u/%u (%.2f%% of IOs)",
+                                        "%s prio %u/%u/%u (%.2f%% of IOs)",
                                         clat_type,
                                         ioprio_class(ts->clat_prio[ddir][i].ioprio),
                                         ioprio(ts->clat_prio[ddir][i].ioprio),
+                                        ioprio_hint(ts->clat_prio[ddir][i].ioprio),
                                         100. * (double) prio_samples / (double) samples);
                                show_clat_percentiles(ts->clat_prio[ddir][i].io_u_plat,
                                                prio_samples, ts->percentile_list,
@@ -1533,6 +1535,8 @@ static void add_ddir_status_json(struct thread_stat *ts,
                                ioprio_class(ts->clat_prio[ddir][i].ioprio));
                        json_object_add_value_int(obj, "prio",
                                ioprio(ts->clat_prio[ddir][i].ioprio));
+                       json_object_add_value_int(obj, "priohint",
+                               ioprio_hint(ts->clat_prio[ddir][i].ioprio));
 
                        tmp_object = add_ddir_lat_json(ts,
                                        ts->clat_percentiles | ts->lat_percentiles,