From 8181c59293e5b78e162a109e3ef7c576fbaaf9ea Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Tue, 19 Sep 2017 04:38:47 -0400 Subject: [PATCH] nvme: override the default queue depth if users specified the value SPDK already uses DEFAULT_IO_QUEUE_SIZE and MQES to decide the correct queue depth of NVMe queue pair, hardcoded it to NVME_IO_ENTRIES(512) does not make sense if users want to set queue depth bigger than 512. Change-Id: Iaa73fc79e055292ae9bd19af0c8c12f257ae5c46 Signed-off-by: Changpeng Liu Reviewed-on: https://review.gerrithub.io/379052 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/nvme/nvme_ctrlr.c | 3 --- lib/nvme/nvme_internal.h | 1 - lib/nvme/nvme_pcie.c | 14 -------------- lib/nvme/nvme_rdma.c | 8 -------- lib/nvme/nvme_transport.c | 6 ------ test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c | 6 ------ 6 files changed, 38 deletions(-) diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index ea14be93e1..825c944bab 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -1450,8 +1450,6 @@ nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr) void nvme_ctrlr_init_cap(struct spdk_nvme_ctrlr *ctrlr, const union spdk_nvme_cap_register *cap) { - uint32_t max_io_queue_size = nvme_transport_ctrlr_get_max_io_queue_size(ctrlr); - ctrlr->cap = *cap; ctrlr->min_page_size = 1u << (12 + ctrlr->cap.bits.mpsmin); @@ -1461,7 +1459,6 @@ nvme_ctrlr_init_cap(struct spdk_nvme_ctrlr *ctrlr, const union spdk_nvme_cap_reg ctrlr->opts.io_queue_size = spdk_max(ctrlr->opts.io_queue_size, SPDK_NVME_IO_QUEUE_MIN_ENTRIES); ctrlr->opts.io_queue_size = spdk_min(ctrlr->opts.io_queue_size, ctrlr->cap.bits.mqes + 1u); - ctrlr->opts.io_queue_size = spdk_min(ctrlr->opts.io_queue_size, max_io_queue_size); ctrlr->opts.io_queue_requests = spdk_max(ctrlr->opts.io_queue_requests, ctrlr->opts.io_queue_size); } diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index efc341dec7..edf4f282c0 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -607,7 +607,6 @@ void nvme_qpair_print_completion(struct spdk_nvme_qpair *qpair, struct spdk_nvme int nvme_ ## name ## _ctrlr_get_reg_4(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint32_t *value); \ int nvme_ ## name ## _ctrlr_get_reg_8(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint64_t *value); \ uint32_t nvme_ ## name ## _ctrlr_get_max_xfer_size(struct spdk_nvme_ctrlr *ctrlr); \ - uint32_t nvme_ ## name ## _ctrlr_get_max_io_queue_size(struct spdk_nvme_ctrlr *ctrlr); \ uint16_t nvme_ ## name ## _ctrlr_get_max_sges(struct spdk_nvme_ctrlr *ctrlr); \ struct spdk_nvme_qpair *nvme_ ## name ## _ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid, const struct spdk_nvme_io_qpair_opts *opts); \ int nvme_ ## name ## _ctrlr_delete_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair *qpair); \ diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index 5c9966ef66..c23af6035c 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -44,14 +44,6 @@ #define NVME_ADMIN_ENTRIES (128) #define NVME_ADMIN_TRACKERS (64) -/* - * NVME_IO_ENTRIES defines the size of an I/O qpair's submission and completion - * queues, this value will be used to negotiate with user specified size and - * hardware allowed size to determine the maximum number of outstanding IOs on - * an I/O qpair at any time. - */ -#define NVME_IO_ENTRIES (512) - /* * NVME_MAX_SGL_DESCRIPTORS defines the maximum number of descriptors in one SGL * segment. @@ -398,12 +390,6 @@ nvme_pcie_ctrlr_get_max_xfer_size(struct spdk_nvme_ctrlr *ctrlr) return NVME_MAX_PRP_LIST_ENTRIES * ctrlr->page_size; } -uint32_t -nvme_pcie_ctrlr_get_max_io_queue_size(struct spdk_nvme_ctrlr *ctrlr) -{ - return NVME_IO_ENTRIES; -} - uint16_t nvme_pcie_ctrlr_get_max_sges(struct spdk_nvme_ctrlr *ctrlr) { diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 6fd455348e..fe237c6617 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -57,8 +57,6 @@ #define NVME_RDMA_RW_BUFFER_SIZE 131072 #define NVME_HOST_ID_DEFAULT "12345679890" -#define NVME_HOST_MAX_ENTRIES_PER_QUEUE (128) - /* NVME RDMA qpair Resouce Defaults */ @@ -1525,12 +1523,6 @@ nvme_rdma_ctrlr_get_max_xfer_size(struct spdk_nvme_ctrlr *ctrlr) return NVME_RDMA_RW_BUFFER_SIZE; } -uint32_t -nvme_rdma_ctrlr_get_max_io_queue_size(struct spdk_nvme_ctrlr *ctrlr) -{ - return NVME_HOST_MAX_ENTRIES_PER_QUEUE; -} - uint16_t nvme_rdma_ctrlr_get_max_sges(struct spdk_nvme_ctrlr *ctrlr) { diff --git a/lib/nvme/nvme_transport.c b/lib/nvme/nvme_transport.c index 61bf844ac2..406905b54f 100644 --- a/lib/nvme/nvme_transport.c +++ b/lib/nvme/nvme_transport.c @@ -139,12 +139,6 @@ nvme_transport_ctrlr_get_max_xfer_size(struct spdk_nvme_ctrlr *ctrlr) NVME_TRANSPORT_CALL(ctrlr->trid.trtype, ctrlr_get_max_xfer_size, (ctrlr)); } -uint32_t -nvme_transport_ctrlr_get_max_io_queue_size(struct spdk_nvme_ctrlr *ctrlr) -{ - NVME_TRANSPORT_CALL(ctrlr->trid.trtype, ctrlr_get_max_io_queue_size, (ctrlr)); -} - uint16_t nvme_transport_ctrlr_get_max_sges(struct spdk_nvme_ctrlr *ctrlr) { diff --git a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c index 5b415c5fad..12a74a10b9 100644 --- a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c +++ b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c @@ -115,12 +115,6 @@ nvme_transport_ctrlr_get_max_xfer_size(struct spdk_nvme_ctrlr *ctrlr) return UINT32_MAX; } -uint32_t -nvme_transport_ctrlr_get_max_io_queue_size(struct spdk_nvme_ctrlr *ctrlr) -{ - return SPDK_NVME_IO_QUEUE_MAX_ENTRIES; -} - uint16_t nvme_transport_ctrlr_get_max_sges(struct spdk_nvme_ctrlr *ctrlr) {