From: Ankit Kumar Date: Mon, 11 Sep 2023 16:25:00 +0000 (+0530) Subject: engines:nvme: fill command fields as per pi check bits X-Git-Tag: fio-3.36~13 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=e4a9812dee084b058eca6ebde9634a3d573a0079;p=fio.git 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 Signed-off-by: Jens Axboe --- diff --git a/engines/nvme.c b/engines/nvme.c index 08503b33..75a5e0c1 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;