summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2016-01-07 16:09:56 +0000
committerjimharris <jimharris@FreeBSD.org>2016-01-07 16:09:56 +0000
commit6f7e8e539309cc085154008676bff1a0d411d928 (patch)
tree2c886ab228e8530a5b1b6380a587ee54b2c4f80b /sys/dev/nvme
parent5fd9219620e73774fc395d0072c1133f4342a1d0 (diff)
downloadFreeBSD-src-6f7e8e539309cc085154008676bff1a0d411d928.zip
FreeBSD-src-6f7e8e539309cc085154008676bff1a0d411d928.tar.gz
nvme: remove per_cpu_io_queues from struct nvme_controller
Instead just use num_io_queues to make this determination. This prepares for some future changes enabling use of multiple queues when we do not have enough queues or MSI-X vectors for one queue per CPU. MFC after: 3 days Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvme')
-rw-r--r--sys/dev/nvme/nvme_ctrlr.c11
-rw-r--r--sys/dev/nvme/nvme_private.h1
2 files changed, 3 insertions, 9 deletions
diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index c0117fe..d5c7373 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -160,7 +160,7 @@ nvme_ctrlr_construct_io_qpairs(struct nvme_controller *ctrlr)
num_trackers,
ctrlr);
- if (ctrlr->per_cpu_io_queues)
+ if (ctrlr->num_io_queues > 1)
bus_bind_intr(ctrlr->dev, qpair->res, i);
}
@@ -402,7 +402,6 @@ nvme_ctrlr_set_num_qpairs(struct nvme_controller *ctrlr)
nvme_io_qpair_destroy(&ctrlr->ioq[i]);
ctrlr->num_io_queues = 1;
- ctrlr->per_cpu_io_queues = 0;
}
return (0);
@@ -779,7 +778,6 @@ nvme_ctrlr_configure_intx(struct nvme_controller *ctrlr)
{
ctrlr->num_io_queues = 1;
- ctrlr->per_cpu_io_queues = 0;
ctrlr->rid = 0;
ctrlr->res = bus_alloc_resource_any(ctrlr->dev, SYS_RES_IRQ,
&ctrlr->rid, RF_SHAREABLE | RF_ACTIVE);
@@ -969,9 +967,8 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev)
per_cpu_io_queues = 1;
TUNABLE_INT_FETCH("hw.nvme.per_cpu_io_queues", &per_cpu_io_queues);
- ctrlr->per_cpu_io_queues = per_cpu_io_queues ? TRUE : FALSE;
- if (ctrlr->per_cpu_io_queues)
+ if (per_cpu_io_queues)
ctrlr->num_io_queues = mp_ncpus;
else
ctrlr->num_io_queues = 1;
@@ -1002,7 +999,6 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev)
}
if (pci_msix_count(dev) < num_vectors_requested) {
- ctrlr->per_cpu_io_queues = FALSE;
ctrlr->num_io_queues = 1;
num_vectors_requested = 2; /* one for admin, one for I/O */
}
@@ -1020,7 +1016,6 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev)
goto intx;
}
- ctrlr->per_cpu_io_queues = FALSE;
ctrlr->num_io_queues = 1;
/*
* Release whatever vectors were allocated, and just
@@ -1192,7 +1187,7 @@ nvme_ctrlr_submit_io_request(struct nvme_controller *ctrlr,
{
struct nvme_qpair *qpair;
- if (ctrlr->per_cpu_io_queues)
+ if (ctrlr->num_io_queues > 1)
qpair = &ctrlr->ioq[curcpu];
else
qpair = &ctrlr->ioq[0];
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index 6137b41..a6d3eff 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -265,7 +265,6 @@ struct nvme_controller {
uint32_t enable_aborts;
uint32_t num_io_queues;
- boolean_t per_cpu_io_queues;
/* Fields for tracking progress during controller initialization. */
struct intr_config_hook config_hook;
OpenPOWER on IntegriCloud