nvme/tcp: pass async_mode when creating qpairs
This allows for creating admin qpair in an asynchronous mode and I/O qpairs based on what the user specified in spdk_nvme_io_qpair_opts. Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I1801ea76d5a08b1bdc558eb0f18648f59454b654 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9077 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Monica Kenguva <monica.kenguva@intel.com>
This commit is contained in:
parent
37c36ec154
commit
681f5e6e8f
@ -2017,7 +2017,7 @@ static struct spdk_nvme_qpair *
|
|||||||
nvme_tcp_ctrlr_create_qpair(struct spdk_nvme_ctrlr *ctrlr,
|
nvme_tcp_ctrlr_create_qpair(struct spdk_nvme_ctrlr *ctrlr,
|
||||||
uint16_t qid, uint32_t qsize,
|
uint16_t qid, uint32_t qsize,
|
||||||
enum spdk_nvme_qprio qprio,
|
enum spdk_nvme_qprio qprio,
|
||||||
uint32_t num_requests)
|
uint32_t num_requests, bool async)
|
||||||
{
|
{
|
||||||
struct nvme_tcp_qpair *tqpair;
|
struct nvme_tcp_qpair *tqpair;
|
||||||
struct spdk_nvme_qpair *qpair;
|
struct spdk_nvme_qpair *qpair;
|
||||||
@ -2031,7 +2031,7 @@ nvme_tcp_ctrlr_create_qpair(struct spdk_nvme_ctrlr *ctrlr,
|
|||||||
|
|
||||||
tqpair->num_entries = qsize;
|
tqpair->num_entries = qsize;
|
||||||
qpair = &tqpair->qpair;
|
qpair = &tqpair->qpair;
|
||||||
rc = nvme_qpair_init(qpair, qid, ctrlr, qprio, num_requests, false);
|
rc = nvme_qpair_init(qpair, qid, ctrlr, qprio, num_requests, async);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
free(tqpair);
|
free(tqpair);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -2059,7 +2059,7 @@ nvme_tcp_ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid,
|
|||||||
const struct spdk_nvme_io_qpair_opts *opts)
|
const struct spdk_nvme_io_qpair_opts *opts)
|
||||||
{
|
{
|
||||||
return nvme_tcp_ctrlr_create_qpair(ctrlr, qid, opts->io_queue_size, opts->qprio,
|
return nvme_tcp_ctrlr_create_qpair(ctrlr, qid, opts->io_queue_size, opts->qprio,
|
||||||
opts->io_queue_requests);
|
opts->io_queue_requests, opts->async_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct spdk_nvme_ctrlr *nvme_tcp_ctrlr_construct(const struct spdk_nvme_transport_id *trid,
|
static struct spdk_nvme_ctrlr *nvme_tcp_ctrlr_construct(const struct spdk_nvme_transport_id *trid,
|
||||||
@ -2086,7 +2086,7 @@ static struct spdk_nvme_ctrlr *nvme_tcp_ctrlr_construct(const struct spdk_nvme_t
|
|||||||
|
|
||||||
tctrlr->ctrlr.adminq = nvme_tcp_ctrlr_create_qpair(&tctrlr->ctrlr, 0,
|
tctrlr->ctrlr.adminq = nvme_tcp_ctrlr_create_qpair(&tctrlr->ctrlr, 0,
|
||||||
tctrlr->ctrlr.opts.admin_queue_size, 0,
|
tctrlr->ctrlr.opts.admin_queue_size, 0,
|
||||||
tctrlr->ctrlr.opts.admin_queue_size);
|
tctrlr->ctrlr.opts.admin_queue_size, true);
|
||||||
if (!tctrlr->ctrlr.adminq) {
|
if (!tctrlr->ctrlr.adminq) {
|
||||||
SPDK_ERRLOG("failed to create admin qpair\n");
|
SPDK_ERRLOG("failed to create admin qpair\n");
|
||||||
nvme_tcp_ctrlr_destruct(&tctrlr->ctrlr);
|
nvme_tcp_ctrlr_destruct(&tctrlr->ctrlr);
|
||||||
|
Loading…
Reference in New Issue
Block a user