]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
NVMe: Allocate queues only for online cpus
authorKeith Busch <keith.busch@intel.com>
Fri, 13 May 2016 18:38:09 +0000 (12:38 -0600)
committerChuck Anderson <chuck.anderson@oracle.com>
Tue, 15 Aug 2017 04:27:43 +0000 (21:27 -0700)
The driver previously requested allocating queues for the total possible
number of CPUs so that blk-mq could rebalance these if CPUs were added
after initialization. The number of hardware contexts can now be changed
at runtime, so we only need to allocate the number of online queues
since we can add more later.

Suggested-by: Jeff Lien <jeff.lien@hgst.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Orabug: 24675382
(cherry picked from commit 2800b8e7d9dfca1fd9d044dcf7a046b5de5a7239)
Signed-off-by: Kyle Fortin <kyle.fortin@oracle.com>
Conflicts:
drivers/nvme/host/pci.c

Reviewed-by: Govinda Tatti<Govinda.Tatti@oracle.com>
Reviewed-by: Bhavesh Davda <bhavesh.davda@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/nvme/host/pci.c

index 1b27e954fd4316d0d9a4db0cedcaf31f56eb1774..75956a0a5d0a883cfb3c7835c20436215541534d 100644 (file)
@@ -1413,7 +1413,7 @@ static int nvme_setup_io_queues(struct nvme_dev *dev)
        struct pci_dev *pdev = to_pci_dev(dev->dev);
        int result, i, vecs, nr_io_queues, size;
 
-       nr_io_queues = min(nvme_io_queues, num_possible_cpus());
+       nr_io_queues = min(nvme_io_queues, num_online_cpus());
        result = nvme_set_queue_count(&dev->ctrl, &nr_io_queues);
        if (result < 0)
                return result;