1. 13 9月, 2016 2 次提交
    • S
      nvme-rdma: use ib_client API to detect device removal · e87a911f
      Steve Wise 提交于
      Change nvme-rdma to use the IB Client API to detect device removal.
      This has the wonderful benefit of being able to blow away all the
      ib/rdma_cm resources for the device being removed.  No craziness about
      not destroying the cm_id handling the event.  No deadlocks due to broken
      iw_cm/rdma_cm/iwarp dependencies.  And no need to have a bound cm_id
      around during controller recovery/reconnect to catch device removal
      events.
      
      We don't use the device_add aspect of the ib_client service since we only
      want to create resources for an IB device if we have a target utilizing
      that device.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      e87a911f
    • S
      nvme-rdma: add DELETING queue flag · e89ca58f
      Sagi Grimberg 提交于
      When we get a surprise disconnect from the target we queue a periodic
      reconnect (which is the sane thing to do...).
      
      We only move the queues out of CONNECTED when we retry to reconnect (after
      10 seconds in the default case) but we stop the blk queues immediately
      so we are not bothered with traffic from now on. If delete() is kicking
      off in this period the queues are still in CONNECTED state.
      
      Part of the delete sequence is trying to issue ctrl shutdown if the
      admin queue is CONNECTED (which it is!). This request is issued but
      stuck in blk-mq waiting for the queues to start again. This might be
      the one preventing us from forward progress...
      
      The patch separates the queue flags to CONNECTED and DELETING. Now we
      will move out of CONNECTED as soon as error recovery kicks in (before
      stopping the queues) and DELETING is on when we start the queue deletion.
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      e89ca58f
  2. 04 9月, 2016 2 次提交
  3. 28 8月, 2016 2 次提交
  4. 18 8月, 2016 2 次提交
    • J
      nvme-rdma: fix sqsize/hsqsize per spec · c5af8654
      Jay Freyensee 提交于
      Per NVMe-over-Fabrics 1.0 spec, sqsize is represented as
      a 0-based value.
      
      Also per spec, the RDMA binding values shall be set
      to sqsize, which makes hsqsize 0-based values.
      
      Thus, the sqsize during NVMf connect() is now:
      
      [root@fedora23-fabrics-host1 for-48]# dmesg
      [  318.720645] nvme_fabrics: nvmf_connect_admin_queue(): sqsize for
      admin queue: 31
      [  318.720884] nvme nvme0: creating 16 I/O queues.
      [  318.810114] nvme_fabrics: nvmf_connect_io_queue(): sqsize for i/o
      queue: 127
      
      Finally, current interpretation implies hrqsize is 1's based
      so set it appropriately.
      Reported-by: NDaniel Verkamp <daniel.verkamp@intel.com>
      Signed-off-by: NJay Freyensee <james_p_freyensee@linux.intel.com>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      c5af8654
    • J
      fabrics: define admin sqsize min default, per spec · f994d9dc
      Jay Freyensee 提交于
      Upon admin queue connect(), the rdma qp was being
      set based on NVMF_AQ_DEPTH.  However, the fabrics layer was
      using the sqsize field value set for I/O queues for the admin
      queue, which threw the nvme layer and rdma layer off-whack:
      
      root@fedora23-fabrics-host1 nvmf]# dmesg
      [ 3507.798642] nvme_fabrics: nvmf_connect_admin_queue():admin sqsize
      being sent is: 128
      [ 3507.798858] nvme nvme0: creating 16 I/O queues.
      [ 3507.896407] nvme nvme0: new ctrl: NQN "nullside-nqn", addr
      192.168.1.3:4420
      
      Thus, to have a different admin queue value, we use
      NVMF_AQ_DEPTH for connect() and RDMA private data
      as the minimum depth specified in the NVMe-over-Fabrics 1.0 spec
      (and in that RDMA private data we treat hrqsize as 1's-based
      value, per current understanding of the fabrics spec).
      Reported-by: NDaniel Verkamp <daniel.verkamp@intel.com>
      Signed-off-by: NJay Freyensee <james_p_freyensee@linux.intel.com>
      Reviewed-by: NDaniel Verkamp <daniel.verkamp@intel.com>
      Signed-off-by: NSagi Grimberg <sagi@grimberg.me>
      f994d9dc
  5. 16 8月, 2016 1 次提交
  6. 04 8月, 2016 2 次提交
  7. 03 8月, 2016 6 次提交
  8. 12 7月, 2016 2 次提交
  9. 08 7月, 2016 1 次提交