Commit d604d494 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

bdev: add spdk_bdev_io padding in place of io_submit_ch



Commit 055de83a ("bdev: multiple QoS queues with atomic-based QoS
quota") changed the way bdev layer handles IOs with QoS enabled.  It
shouldn't affect IOs when QoS is disabled.  However, apparently, this
change *has* shown performance drop on some workloads.  Specifically,
single core bdepverf performance running on 7 Kioxia KCM61VUL3T20 drives
with qd=192 went down from ~5.9M to ~5.4M.

As part of that commit, the layout of struct spdk_bdev_io has been
changed due to removing io_submit_ch.  Re-adding the padding in place of
that field has proven to improve IOPS in the case mentioned above from
~5.3M (current master) to ~5.7M.  This patch does exactly that, but we
should look into the layout of this structure more thoroughly in the
future.

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21576

 (master)

(cherry picked from commit 61623c5c)
Change-Id: I35a04b93bec54620a6a2c8f1133870f5f101eda9
Signed-off-by: default avatarMarek Chomnicki <marek.chomnicki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21606


Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Bypass-Merge-Requirements: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 2afcbd0d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -917,6 +917,8 @@ struct spdk_bdev_io {
		/** The bdev I/O channel that this was handled on. */
		struct spdk_bdev_channel *ch;

		uint8_t	reserved[8];

		/** The bdev descriptor that was used when submitting this I/O. */
		struct spdk_bdev_desc *desc;