From cf82b9bcc21759f8e6f574ca350acb2389e0778a Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Thu, 5 Jul 2018 14:23:55 -0700 Subject: [PATCH] bdev: add extra parameters to iostat rpc. These parameters include read and write latency ticks, current queue depth, and the period at which the queue depth is beign polled. Change-Id: I7c57177e3cd1629b957a16dd8f4fa992ef53ae3d Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/418117 Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Jim Harris Reviewed-by: Ziye Yang Tested-by: SPDK CI Jenkins --- lib/bdev/rpc/bdev_rpc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/bdev/rpc/bdev_rpc.c b/lib/bdev/rpc/bdev_rpc.c index c49ba7ebf..1c80fb3b0 100644 --- a/lib/bdev/rpc/bdev_rpc.c +++ b/lib/bdev/rpc/bdev_rpc.c @@ -31,6 +31,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "spdk/env.h" #include "spdk/log.h" #include "spdk/rpc.h" #include "spdk/string.h" @@ -75,6 +76,20 @@ spdk_rpc_get_bdevs_iostat_cb(struct spdk_bdev *bdev, spdk_json_write_name(w, "num_write_ops"); spdk_json_write_uint64(w, stat->num_write_ops); + spdk_json_write_name(w, "read_latency_ticks"); + spdk_json_write_uint64(w, stat->read_latency_ticks); + + spdk_json_write_name(w, "write_latency_ticks"); + spdk_json_write_uint64(w, stat->write_latency_ticks); + + if (spdk_bdev_get_qd_sampling_period(bdev)) { + spdk_json_write_name(w, "queue_depth_polling_period"); + spdk_json_write_uint64(w, spdk_bdev_get_qd_sampling_period(bdev)); + + spdk_json_write_name(w, "queue_depth"); + spdk_json_write_uint64(w, spdk_bdev_get_qd(bdev)); + } + spdk_json_write_object_end(w); } @@ -153,6 +168,11 @@ spdk_rpc_get_bdevs_iostat(struct spdk_jsonrpc_request *request, spdk_json_write_array_begin(w); + spdk_json_write_object_begin(w); + spdk_json_write_name(w, "tick_rate"); + spdk_json_write_uint64(w, spdk_get_ticks_hz()); + spdk_json_write_object_end(w); + if (bdev != NULL) { stat = calloc(1, sizeof(struct spdk_bdev_io_stat)); if (stat == NULL) {