Commit d18d51b0 authored by Jim Harris's avatar Jim Harris
Browse files

bdev: add _spdk_bdev_io_stat_add helper function



This will be used further in an additional patch.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: I1126e5adfc24f17e5cdf33b0d3e04c78470771c8

Reviewed-on: https://review.gerrithub.io/421027


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 66a91a04
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -1478,6 +1478,17 @@ spdk_bdev_qos_destroy(struct spdk_bdev *bdev)
	return 0;
}

static void
_spdk_bdev_io_stat_add(struct spdk_bdev_io_stat *total, struct spdk_bdev_io_stat *add)
{
	total->bytes_read += add->bytes_read;
	total->num_read_ops += add->num_read_ops;
	total->bytes_written += add->bytes_written;
	total->num_write_ops += add->num_write_ops;
	total->read_latency_ticks += add->read_latency_ticks;
	total->write_latency_ticks += add->write_latency_ticks;
}

static void
spdk_bdev_channel_destroy(void *io_device, void *ctx_buf)
{
@@ -2269,13 +2280,7 @@ _spdk_bdev_get_each_channel_stat(struct spdk_io_channel_iter *i)
	struct spdk_io_channel *ch = spdk_io_channel_iter_get_channel(i);
	struct spdk_bdev_channel *channel = spdk_io_channel_get_ctx(ch);

	bdev_iostat_ctx->stat->bytes_read += channel->stat.bytes_read;
	bdev_iostat_ctx->stat->num_read_ops += channel->stat.num_read_ops;
	bdev_iostat_ctx->stat->bytes_written += channel->stat.bytes_written;
	bdev_iostat_ctx->stat->num_write_ops += channel->stat.num_write_ops;
	bdev_iostat_ctx->stat->read_latency_ticks += channel->stat.read_latency_ticks;
	bdev_iostat_ctx->stat->write_latency_ticks += channel->stat.write_latency_ticks;

	_spdk_bdev_io_stat_add(bdev_iostat_ctx->stat, &channel->stat);
	spdk_for_each_channel_continue(i, 0);
}