diff options
author | Ankit Kumar <ankit.kumar@samsung.com> | 2023-09-11 21:55:00 +0530 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-09-11 10:55:56 -0600 |
commit | e4a9812dee084b058eca6ebde9634a3d573a0079 (patch) | |
tree | 8629952250329ba6a18cf0159549cbe99a81884e | |
parent | ba342e585aa512edbd37cf736850fcb3cb5ca76d (diff) | |
download | fio-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.c | 15 |
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; |