Commit 3851a64f authored by GangCao's avatar GangCao Committed by Tomasz Zawadzki
Browse files

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: default avatarGangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14418


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 29e4e4a8
Loading
Loading
Loading
Loading
+18 −19
Original line number Diff line number Diff line
@@ -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",