diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a3c19690..8618d8815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ required bdev. New `spdk_bdev_copy_blocks` and `spdk_bdev_get_max_copy` APIs to support copy commands. +A new API `spdk_bdev_io_get_submit_tsc` was added to get the submit_tsc of the bdev I/O. + ## v22.09 ### accel diff --git a/include/spdk/bdev_module.h b/include/spdk/bdev_module.h index d598d05d6..e0f572f06 100644 --- a/include/spdk/bdev_module.h +++ b/include/spdk/bdev_module.h @@ -1077,6 +1077,15 @@ struct spdk_thread *spdk_bdev_io_get_thread(struct spdk_bdev_io *bdev_io); */ struct spdk_io_channel *spdk_bdev_io_get_io_channel(struct spdk_bdev_io *bdev_io); +/** + * Get the submit_tsc of a bdev I/O. + * + * \param bdev_io The bdev I/O to get the submit_tsc. + * + * \return The submit_tsc of the specified bdev I/O. + */ +uint64_t spdk_bdev_io_get_submit_tsc(struct spdk_bdev_io *bdev_io); + /** * Resize for a bdev. * diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 0bdbf0131..0a5a1dba4 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -3095,6 +3095,12 @@ spdk_bdev_io_type_supported(struct spdk_bdev *bdev, enum spdk_bdev_io_type io_ty return supported; } +uint64_t +spdk_bdev_io_get_submit_tsc(struct spdk_bdev_io *bdev_io) +{ + return bdev_io->internal.submit_tsc; +} + int spdk_bdev_dump_info_json(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w) { diff --git a/lib/bdev/spdk_bdev.map b/lib/bdev/spdk_bdev.map index c04cc7dc6..26ae9aa96 100644 --- a/lib/bdev/spdk_bdev.map +++ b/lib/bdev/spdk_bdev.map @@ -134,6 +134,7 @@ spdk_bdev_io_complete_aio_status; spdk_bdev_io_get_thread; spdk_bdev_io_get_io_channel; + spdk_bdev_io_get_submit_tsc; spdk_bdev_notify_blockcnt_change; spdk_scsi_nvme_translate; spdk_bdev_module_list_add;