bdev_nvme: remove io_outstanding from nvme_io_path
Revert commit:61b8122dc51 to remove io_outstanding in nvme_io_path, because it's decided to use num_outstanding_reqs in spdk_nvme_qpair instead. Change-Id: Ib3afc6e93d4cb426bb46986faf575737312da6b6 Signed-off-by: Richael Zhuang <richael.zhuang@arm.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15977 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
This commit is contained in:
parent
7e0a9a84e7
commit
2ebbeba7d9
@ -578,7 +578,6 @@ _bdev_nvme_add_io_path(struct nvme_bdev_channel *nbdev_ch, struct nvme_ns *nvme_
|
||||
}
|
||||
|
||||
io_path->nvme_ns = nvme_ns;
|
||||
io_path->io_outstanding = 0;
|
||||
|
||||
ch = spdk_get_io_channel(nvme_ns->ctrlr);
|
||||
if (ch == NULL) {
|
||||
@ -610,7 +609,6 @@ _bdev_nvme_delete_io_path(struct nvme_bdev_channel *nbdev_ch, struct nvme_io_pat
|
||||
struct nvme_qpair *nvme_qpair;
|
||||
struct nvme_ctrlr_channel *ctrlr_ch;
|
||||
|
||||
assert(io_path->io_outstanding == 0);
|
||||
nbdev_ch->current_io_path = NULL;
|
||||
|
||||
STAILQ_REMOVE(&nbdev_ch->io_path_list, io_path, nvme_io_path, stailq);
|
||||
@ -1032,10 +1030,6 @@ bdev_nvme_io_complete_nvme_status(struct nvme_bdev_io *bio,
|
||||
|
||||
assert(!bdev_nvme_io_type_is_admin(bdev_io->type));
|
||||
|
||||
assert(bio->io_path != NULL);
|
||||
assert(bio->io_path->io_outstanding > 0);
|
||||
bio->io_path->io_outstanding--;
|
||||
|
||||
if (spdk_likely(spdk_nvme_cpl_is_success(cpl))) {
|
||||
goto complete;
|
||||
}
|
||||
@ -1047,6 +1041,7 @@ bdev_nvme_io_complete_nvme_status(struct nvme_bdev_io *bio,
|
||||
|
||||
nbdev_ch = spdk_io_channel_get_ctx(spdk_bdev_io_get_io_channel(bdev_io));
|
||||
|
||||
assert(bio->io_path != NULL);
|
||||
nvme_ctrlr = bio->io_path->qpair->ctrlr;
|
||||
|
||||
if (spdk_nvme_cpl_is_path_error(cpl) ||
|
||||
@ -2069,9 +2064,7 @@ bdev_nvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
|
||||
bdev_io->u.bdev.ext_opts);
|
||||
|
||||
exit:
|
||||
if (spdk_likely(ret == 0)) {
|
||||
bio->io_path->io_outstanding++;
|
||||
} else {
|
||||
if (spdk_unlikely(ret != 0)) {
|
||||
bdev_nvme_io_complete(bio, ret);
|
||||
}
|
||||
}
|
||||
@ -2112,7 +2105,7 @@ bdev_nvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
|
||||
} else {
|
||||
spdk_bdev_io_get_buf(bdev_io, bdev_nvme_get_buf_cb,
|
||||
bdev_io->u.bdev.num_blocks * bdev->blocklen);
|
||||
return;
|
||||
rc = 0;
|
||||
}
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_WRITE:
|
||||
@ -2158,10 +2151,10 @@ bdev_nvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
|
||||
case SPDK_BDEV_IO_TYPE_RESET:
|
||||
nbdev_io->io_path = NULL;
|
||||
bdev_nvme_reset_io(nbdev_ch, nbdev_io);
|
||||
return;
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_FLUSH:
|
||||
bdev_nvme_io_complete(nbdev_io, 0);
|
||||
return;
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_ZONE_APPEND:
|
||||
rc = bdev_nvme_zone_appendv(nbdev_io,
|
||||
bdev_io->u.bdev.iovs,
|
||||
@ -2189,7 +2182,7 @@ bdev_nvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
|
||||
&bdev_io->u.nvme_passthru.cmd,
|
||||
bdev_io->u.nvme_passthru.buf,
|
||||
bdev_io->u.nvme_passthru.nbytes);
|
||||
return;
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_NVME_IO:
|
||||
rc = bdev_nvme_io_passthru(nbdev_io,
|
||||
&bdev_io->u.nvme_passthru.cmd,
|
||||
@ -2210,7 +2203,7 @@ bdev_nvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
|
||||
bdev_nvme_abort(nbdev_ch,
|
||||
nbdev_io,
|
||||
nbdev_io_to_abort);
|
||||
return;
|
||||
break;
|
||||
case SPDK_BDEV_IO_TYPE_COPY:
|
||||
rc = bdev_nvme_copy(nbdev_io,
|
||||
bdev_io->u.bdev.offset_blocks,
|
||||
@ -2223,13 +2216,7 @@ bdev_nvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
|
||||
}
|
||||
|
||||
exit:
|
||||
if (spdk_likely(rc == 0)) {
|
||||
/* bdev io sent to a namespace gets counted. bdev io sent to a controller(i.e. RESET,
|
||||
* NVME_ADMIN,ABORT) doesn't get counted. FLUSH case is special which directly calls
|
||||
* bdev_nvme_io_complete(), it does not get counted.
|
||||
*/
|
||||
nbdev_io->io_path->io_outstanding++;
|
||||
} else {
|
||||
if (spdk_unlikely(rc != 0)) {
|
||||
bdev_nvme_io_complete(nbdev_io, rc);
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,6 @@ struct nvme_ctrlr_channel {
|
||||
struct nvme_io_path {
|
||||
struct nvme_ns *nvme_ns;
|
||||
struct nvme_qpair *qpair;
|
||||
uint64_t io_outstanding;
|
||||
STAILQ_ENTRY(nvme_io_path) stailq;
|
||||
|
||||
/* The following are used to update io_path cache of the nvme_bdev_channel. */
|
||||
|
@ -2181,14 +2181,12 @@ ut_test_submit_nvme_cmd(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io
|
||||
|
||||
CU_ASSERT(bdev_io->internal.in_submit_request == true);
|
||||
CU_ASSERT(qpair->num_outstanding_reqs == 1);
|
||||
CU_ASSERT(io_path->io_outstanding == 1);
|
||||
|
||||
poll_threads();
|
||||
|
||||
CU_ASSERT(bdev_io->internal.in_submit_request == false);
|
||||
CU_ASSERT(bdev_io->internal.status == SPDK_BDEV_IO_STATUS_SUCCESS);
|
||||
CU_ASSERT(qpair->num_outstanding_reqs == 0);
|
||||
CU_ASSERT(io_path->io_outstanding == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2212,7 +2210,6 @@ ut_test_submit_nop(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
|
||||
CU_ASSERT(bdev_io->internal.in_submit_request == false);
|
||||
CU_ASSERT(bdev_io->internal.status == SPDK_BDEV_IO_STATUS_SUCCESS);
|
||||
CU_ASSERT(qpair->num_outstanding_reqs == 0);
|
||||
CU_ASSERT(io_path->io_outstanding == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2238,7 +2235,6 @@ ut_test_submit_fused_nvme_cmd(struct spdk_io_channel *ch, struct spdk_bdev_io *b
|
||||
CU_ASSERT(bdev_io->internal.in_submit_request == true);
|
||||
CU_ASSERT(qpair->num_outstanding_reqs == 2);
|
||||
CU_ASSERT(bio->first_fused_submitted == true);
|
||||
CU_ASSERT(io_path->io_outstanding == 1);
|
||||
|
||||
/* First outstanding request is compare operation. */
|
||||
req = TAILQ_FIRST(&qpair->outstanding_reqs);
|
||||
@ -2251,7 +2247,6 @@ ut_test_submit_fused_nvme_cmd(struct spdk_io_channel *ch, struct spdk_bdev_io *b
|
||||
CU_ASSERT(bdev_io->internal.in_submit_request == false);
|
||||
CU_ASSERT(bdev_io->internal.status == SPDK_BDEV_IO_STATUS_SUCCESS);
|
||||
CU_ASSERT(qpair->num_outstanding_reqs == 0);
|
||||
CU_ASSERT(io_path->io_outstanding == 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user