Author: jimharris
Date: Mon Jan 11 17:27:20 2016
New Revision: 293668
URL: https://svnweb.freebsd.org/changeset/base/293668

Log:
  MFC r293325:
  
    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.

Modified:
  stable/10/sys/dev/nvme/nvme_ctrlr.c
  stable/10/sys/dev/nvme/nvme_private.h

Modified: stable/10/sys/dev/nvme/nvme_ctrlr.c
==============================================================================
--- stable/10/sys/dev/nvme/nvme_ctrlr.c Mon Jan 11 17:26:06 2016        
(r293667)
+++ stable/10/sys/dev/nvme/nvme_ctrlr.c Mon Jan 11 17:27:20 2016        
(r293668)
@@ -160,7 +160,7 @@ nvme_ctrlr_construct_io_qpairs(struct nv
                                     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_co
                        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_co
 {
 
        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);
@@ -970,9 +968,8 @@ nvme_ctrlr_construct(struct nvme_control
 
        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;
@@ -1003,7 +1000,6 @@ nvme_ctrlr_construct(struct nvme_control
        }
 
        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 */
        }
@@ -1021,7 +1017,6 @@ nvme_ctrlr_construct(struct nvme_control
                        goto intx;
                }
 
-               ctrlr->per_cpu_io_queues = FALSE;
                ctrlr->num_io_queues = 1;
                /*
                 * Release whatever vectors were allocated, and just
@@ -1193,7 +1188,7 @@ nvme_ctrlr_submit_io_request(struct nvme
 {
        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];

Modified: stable/10/sys/dev/nvme/nvme_private.h
==============================================================================
--- stable/10/sys/dev/nvme/nvme_private.h       Mon Jan 11 17:26:06 2016        
(r293667)
+++ stable/10/sys/dev/nvme/nvme_private.h       Mon Jan 11 17:27:20 2016        
(r293668)
@@ -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;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to