1. 20 2月, 2019 8 次提交
  2. 06 2月, 2019 2 次提交
  3. 04 2月, 2019 2 次提交
  4. 24 1月, 2019 4 次提交
    • H
      nvme-multipath: drop optimization for static ANA group IDs · 78a61cd4
      Hannes Reinecke 提交于
      Bit 6 in the ANACAP field is used to indicate that the ANA group ID
      doesn't change while the namespace is attached to the controller.
      There is an optimisation in the code to only allocate space
      for the ANA group header, as the namespace list won't change and
      hence would not need to be refreshed.
      However, this optimisation was never carried over to the actual
      workflow, which always assumes that the buffer is large enough
      to hold the ANA header _and_ the namespace list.
      So drop this optimisation and always allocate enough space.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      78a61cd4
    • S
      nvme-rdma: rework queue maps handling · b1064d3e
      Sagi Grimberg 提交于
      If the device supports less queues than provided (if the device has less
      completion vectors), we might hit a bug due to the fact that we ignore
      that in nvme_rdma_map_queues (we override the maps nr_queues with user
      opts).
      
      Instead, keep track of how many default/read/poll queues we actually
      allocated (rather than asked by the user) and use that to assign our
      queue mappings.
      
      Fixes: b65bb777 (" nvme-rdma: support separate queue maps for read and write")
      Reported-by: NSaleem, Shiraz <shiraz.saleem@intel.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      b1064d3e
    • S
      nvme-tcp: fix timeout handler · 39d57757
      Sagi Grimberg 提交于
      Currently, we have several problems with the timeout
      handler:
      1. If we timeout on the controller establishment flow, we will hang
      because we don't execute the error recovery (and we shouldn't because
      the create_ctrl flow needs to fail and cleanup on its own)
      2. We might also hang if we get a disconnet on a queue while the
      controller is already deleting. This racy flow can cause the controller
      disable/shutdown admin command to hang.
      
      We cannot complete a timed out request from the timeout handler without
      mutual exclusion from the teardown flow (e.g. nvme_rdma_error_recovery_work).
      So we serialize it in the timeout handler and teardown io and admin
      queues to guarantee that no one races with us from completing the
      request.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      39d57757
    • S
      nvme-rdma: fix timeout handler · 4c174e63
      Sagi Grimberg 提交于
      Currently, we have several problems with the timeout
      handler:
      1. If we timeout on the controller establishment flow, we will hang
      because we don't execute the error recovery (and we shouldn't because
      the create_ctrl flow needs to fail and cleanup on its own)
      2. We might also hang if we get a disconnet on a queue while the
      controller is already deleting. This racy flow can cause the controller
      disable/shutdown admin command to hang.
      
      We cannot complete a timed out request from the timeout handler without
      mutual exclusion from the teardown flow (e.g. nvme_rdma_error_recovery_work).
      So we serialize it in the timeout handler and teardown io and admin
      queues to guarantee that no one races with us from completing the
      request.
      Reported-by: NJaesoo Lee <jalee@purestorage.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      4c174e63
  5. 17 1月, 2019 1 次提交
    • M
      nvme-pci: fix nvme_setup_irqs() · c45b1fa2
      Ming Lei 提交于
      When -ENOSPC is returned from pci_alloc_irq_vectors_affinity(),
      we still try to allocate multiple irq vectors again, so irq queues
      covers the admin queue actually. But we don't consider that, then
      number of the allocated irq vector may be same with sum of
      io_queues[HCTX_TYPE_DEFAULT] and io_queues[HCTX_TYPE_READ], this way
      is obviously wrong, and finally breaks nvme_pci_map_queues(), and
      warning from pci_irq_get_affinity() is triggered.
      
      IRQ queues should cover admin queues, this patch makes this
      point explicitely in nvme_calc_io_queues().
      
      We got severl boot failure internal report on aarch64, so please
      consider to fix it in v4.20.
      
      Fixes: 6451fe73 ("nvme: fix irq vs io_queue calculations")
      Signed-off-by: NMing Lei <ming.lei@redhat.com>
      Reviewed-by: NKeith Busch <keith.busch@intel.com>
      Tested-by: Nfin4478 <fin4478@hotmail.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      c45b1fa2
  6. 10 1月, 2019 11 次提交
  7. 08 1月, 2019 1 次提交
  8. 19 12月, 2018 9 次提交
  9. 17 12月, 2018 1 次提交
  10. 14 12月, 2018 1 次提交