From 3851a64f9f84215655df5aa7800f9d9666ef381e Mon Sep 17 00:00:00 2001 From: GangCao Date: Wed, 7 Sep 2022 23:27:25 -0400 Subject: [PATCH] Lib/Bdev: add the new utility function For the iostat change, add a new utility function: rpc_bdev_get_iostat_dump() Change-Id: I5883fc3eb8c73a0dc2bf41c7889100e0e492359a Signed-off-by: GangCao Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14418 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Tested-by: SPDK CI Jenkins --- lib/bdev/bdev_rpc.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/bdev/bdev_rpc.c b/lib/bdev/bdev_rpc.c index eeecef923..3426b1d93 100644 --- a/lib/bdev/bdev_rpc.c +++ b/lib/bdev/bdev_rpc.c @@ -204,6 +204,23 @@ rpc_bdev_get_iostat_done(struct rpc_bdev_get_iostat_ctx *ctx) free(ctx); } +static void +rpc_bdev_get_iostat_dump(struct spdk_json_write_ctx *w, + struct spdk_bdev *bdev, + struct spdk_bdev_io_stat *stat) +{ + spdk_json_write_named_string(w, "name", spdk_bdev_get_name(bdev)); + spdk_json_write_named_uint64(w, "bytes_read", stat->bytes_read); + spdk_json_write_named_uint64(w, "num_read_ops", stat->num_read_ops); + spdk_json_write_named_uint64(w, "bytes_written", stat->bytes_written); + spdk_json_write_named_uint64(w, "num_write_ops", stat->num_write_ops); + spdk_json_write_named_uint64(w, "bytes_unmapped", stat->bytes_unmapped); + spdk_json_write_named_uint64(w, "num_unmap_ops", stat->num_unmap_ops); + spdk_json_write_named_uint64(w, "read_latency_ticks", stat->read_latency_ticks); + spdk_json_write_named_uint64(w, "write_latency_ticks", stat->write_latency_ticks); + spdk_json_write_named_uint64(w, "unmap_latency_ticks", stat->unmap_latency_ticks); +} + static void rpc_bdev_get_iostat_cb(struct spdk_bdev *bdev, struct spdk_bdev_io_stat *stat, void *cb_arg, int rc) @@ -223,25 +240,7 @@ rpc_bdev_get_iostat_cb(struct spdk_bdev *bdev, spdk_json_write_object_begin(w); - spdk_json_write_named_string(w, "name", spdk_bdev_get_name(bdev)); - - spdk_json_write_named_uint64(w, "bytes_read", stat->bytes_read); - - spdk_json_write_named_uint64(w, "num_read_ops", stat->num_read_ops); - - spdk_json_write_named_uint64(w, "bytes_written", stat->bytes_written); - - spdk_json_write_named_uint64(w, "num_write_ops", stat->num_write_ops); - - spdk_json_write_named_uint64(w, "bytes_unmapped", stat->bytes_unmapped); - - spdk_json_write_named_uint64(w, "num_unmap_ops", stat->num_unmap_ops); - - spdk_json_write_named_uint64(w, "read_latency_ticks", stat->read_latency_ticks); - - spdk_json_write_named_uint64(w, "write_latency_ticks", stat->write_latency_ticks); - - spdk_json_write_named_uint64(w, "unmap_latency_ticks", stat->unmap_latency_ticks); + rpc_bdev_get_iostat_dump(w, bdev, stat); if (spdk_bdev_get_qd_sampling_period(bdev)) { spdk_json_write_named_uint64(w, "queue_depth_polling_period",