Commit 075ba523 authored by GangCao's avatar GangCao Committed by Daniel Verkamp
Browse files

nvme: set the qprio when constructing the qpair



Change-Id: Id5b35c023b975cc07fe721e4749bac6a0c803719
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
parent 91d7bf5d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -492,7 +492,8 @@ int nvme_ctrlr_submit_admin_request(struct spdk_nvme_ctrlr *ctrlr,
int	nvme_ctrlr_get_cap(struct spdk_nvme_ctrlr *ctrlr, union spdk_nvme_cap_register *cap);
int	nvme_qpair_construct(struct spdk_nvme_qpair *qpair, uint16_t id,
			     uint16_t num_entries,
			     struct spdk_nvme_ctrlr *ctrlr);
			     struct spdk_nvme_ctrlr *ctrlr,
			     enum spdk_nvme_qprio qprio);
void	nvme_qpair_destroy(struct spdk_nvme_qpair *qpair);
void	nvme_qpair_enable(struct spdk_nvme_qpair *qpair);
void	nvme_qpair_disable(struct spdk_nvme_qpair *qpair);
+3 −5
Original line number Diff line number Diff line
@@ -430,7 +430,8 @@ nvme_pcie_ctrlr_construct_admin_qpair(struct spdk_nvme_ctrlr *ctrlr)
	return nvme_qpair_construct(ctrlr->adminq,
				    0, /* qpair ID */
				    NVME_ADMIN_ENTRIES,
				    ctrlr);
				    ctrlr,
				    SPDK_NVME_QPRIO_URGENT);
}

static struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(void *devhandle)
@@ -1059,9 +1060,6 @@ nvme_pcie_ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid,

	qpair = &pqpair->qpair;

	qpair->id = qid;
	qpair->qprio = qprio;

	/*
	 * NVMe spec sets a hard limit of 64K max entries, but
	 *  devices may specify a smaller limit, so we need to check
@@ -1069,7 +1067,7 @@ nvme_pcie_ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid,
	 */
	num_entries = nvme_min(NVME_IO_ENTRIES, ctrlr->cap.bits.mqes + 1);

	rc = nvme_qpair_construct(qpair, qid, num_entries, ctrlr);
	rc = nvme_qpair_construct(qpair, qid, num_entries, ctrlr, qprio);
	if (rc != 0) {
		free(pqpair);
		return NULL;
+3 −2
Original line number Diff line number Diff line
@@ -336,13 +336,14 @@ spdk_nvme_qpair_process_completions(struct spdk_nvme_qpair *qpair, uint32_t max_
int
nvme_qpair_construct(struct spdk_nvme_qpair *qpair, uint16_t id,
		     uint16_t num_entries,
		     struct spdk_nvme_ctrlr *ctrlr)
		     struct spdk_nvme_ctrlr *ctrlr,
		     enum spdk_nvme_qprio qprio)
{
	assert(num_entries != 0);

	qpair->id = id;
	qpair->num_entries = num_entries;
	qpair->qprio = 0;
	qpair->qprio = qprio;

	qpair->ctrlr = ctrlr;
	qpair->transport = ctrlr->transport;
+3 −2
Original line number Diff line number Diff line
@@ -177,11 +177,12 @@ static const struct spdk_nvme_transport nvme_ctrlr_ut_transport = {

int nvme_qpair_construct(struct spdk_nvme_qpair *qpair, uint16_t id,
			 uint16_t num_entries,
			 struct spdk_nvme_ctrlr *ctrlr)
			 struct spdk_nvme_ctrlr *ctrlr,
			 enum spdk_nvme_qprio qprio)
{
	qpair->id = id;
	qpair->num_entries = num_entries;
	qpair->qprio = 0;
	qpair->qprio = qprio;
	qpair->ctrlr = ctrlr;

	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ prepare_submit_request_test(struct spdk_nvme_qpair *qpair,
	ctrlr->transport = &nvme_qpair_ut_transport;
	ctrlr->free_io_qids = NULL;
	TAILQ_INIT(&ctrlr->active_io_qpairs);
	nvme_qpair_construct(qpair, 1, 128, ctrlr);
	nvme_qpair_construct(qpair, 1, 128, ctrlr, 0);

	ut_fail_vtophys = false;
}