aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnkit Kumar <ankit.kumar@samsung.com>2023-09-11 21:55:00 +0530
committerJens Axboe <axboe@kernel.dk>2023-09-11 10:55:56 -0600
commite4a9812dee084b058eca6ebde9634a3d573a0079 (patch)
tree8629952250329ba6a18cf0159549cbe99a81884e
parentba342e585aa512edbd37cf736850fcb3cb5ca76d (diff)
downloadfio-e4a9812dee084b058eca6ebde9634a3d573a0079.tar.gz
engines:nvme: fill command fields as per pi check bits
Fill the application and reference tag field for read and write command only when pi_chk has the relevant bit set. Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--engines/nvme.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/engines/nvme.c b/engines/nvme.c
index 08503b339..75a5e0c12 100644
--- a/engines/nvme.c
+++ b/engines/nvme.c
@@ -415,19 +415,24 @@ void fio_nvme_pi_fill(struct nvme_uring_cmd *cmd, struct io_u *io_u,
case NVME_NS_DPS_PI_TYPE2:
switch (data->guard_type) {
case NVME_NVM_NS_16B_GUARD:
- cmd->cdw14 = (__u32)slba;
+ if (opts->io_flags & NVME_IO_PRINFO_PRCHK_REF)
+ cmd->cdw14 = (__u32)slba;
break;
case NVME_NVM_NS_64B_GUARD:
- cmd->cdw14 = (__u32)slba;
- cmd->cdw3 = ((slba >> 32) & 0xffff);
+ if (opts->io_flags & NVME_IO_PRINFO_PRCHK_REF) {
+ cmd->cdw14 = (__u32)slba;
+ cmd->cdw3 = ((slba >> 32) & 0xffff);
+ }
break;
default:
break;
}
- cmd->cdw15 = (opts->apptag_mask << 16 | opts->apptag);
+ if (opts->io_flags & NVME_IO_PRINFO_PRCHK_APP)
+ cmd->cdw15 = (opts->apptag_mask << 16 | opts->apptag);
break;
case NVME_NS_DPS_PI_TYPE3:
- cmd->cdw15 = (opts->apptag_mask << 16 | opts->apptag);
+ if (opts->io_flags & NVME_IO_PRINFO_PRCHK_APP)
+ cmd->cdw15 = (opts->apptag_mask << 16 | opts->apptag);
break;
case NVME_NS_DPS_PI_NONE:
break;