1. 17 2月, 2016 1 次提交
    • D
      RDMA/ocrdma: Fix arm logic to align with new cq API · b41f7852
      Devesh Sharma 提交于
      Today ocrdma driver defer arming the CQ till poll is called.
      This was used to prevent calling poll-cq on an armed CQ.
      
      Recently a set of new CQ API has been introduced into the linux
      kernel. The implementation of this API guarantees that a given
      CQ is never armed before calling poll on it. Most of the kernel
      ULPs have already moved to use this new API or have a code where
      poll is called before arming the CQ.
      
      Thus, the above workaround in ocrdma is not needed anymore.
      This patch removes the additional logic to deffer arm till poll
      is called. This patch adds a simple scheme where ib_req_notify_cq()
      will actually arm the cq.
      Signed-off-by: NDevesh Sharma <devesh.sharma@broadcom.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      b41f7852
  2. 06 2月, 2016 2 次提交
  3. 20 1月, 2016 1 次提交
    • D
      RDMA/ocrdma: Depend on async link events from CNA · 3b1ea430
      Devesh Sharma 提交于
      Recently Dough Ledford reported a deadlock happening
      between ocrdma-load sequence and NetworkManager service
      issuing "open" on be2net interface.
      
      The deadlock happens when any be2net hook (e.g. open/close) is called
      in parallel to insmod ocrdma.ko.
      
      A. be2net is sending administrative open/close event to ocrdma holding
         device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net.
         So sequence of locks is rtnl_lock---> device_list lock
      
      B.  When new ocrdma roce device gets registered, infiniband stack now
          takes rtnl_lock in ib_register_device() in GID initialization routines.
          So sequence of locks in this path is device_list lock ---> rtnl_lock.
      
      This improper locking sequence causes deadlock.
      
      With this patch we stop using administrative open and close events
      injected by be2net driver. These events were used to dispatch PORT_ACTIVE
      and PORT_ERROR events to the IB-stack. This patch implements a logic
      to receive async-link-events generated from CNA whenever link-state-change
      is detected. Now on, these async-events will be used to dispatch
      PORT_ACTIVE and PORT_ERROR events to IB-stack.
      
      Depending on async-events from CNA removes the need to hold device-list-mutex
      and thus breaks the busy-wait scenario.
      Reported-by: NDoug Ledford <dledford@redhat.com>
      CC: Sathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NPadmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Signed-off-by: NSelvin Xavier <selvin.xavier@avagotech.com>
      Signed-off-by: NDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      3b1ea430
  4. 29 12月, 2015 1 次提交
    • D
      RDMA/ocrdma: Depend on async link events from CNA · 10a214dc
      Devesh Sharma 提交于
      Recently Dough Ledford reported a deadlock happening
      between ocrdma-load sequence and NetworkManager service
      issuing "open" on be2net interface.
      
      The deadlock happens when any be2net hook (e.g. open/close) is called
      in parallel to insmod ocrdma.ko.
      
      A. be2net is sending administrative open/close event to ocrdma holding
         device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net.
         So sequence of locks is rtnl_lock---> device_list lock
      
      B.  When new ocrdma roce device gets registered, infiniband stack now
          takes rtnl_lock in ib_register_device() in GID initialization routines.
          So sequence of locks in this path is device_list lock ---> rtnl_lock.
      
      This improper locking sequence causes deadlock.
      
      With this patch we stop using administrative open and close events
      injected by be2net driver. These events were used to dispatch PORT_ACTIVE
      and PORT_ERROR events to the IB-stack. This patch implements a logic
      to receive async-link-events generated from CNA whenever link-state-change
      is detected. Now on, these async-events will be used to dispatch
      PORT_ACTIVE and PORT_ERROR events to IB-stack.
      
      Depending on async-events from CNA removes the need to hold device-list-mutex
      and thus breaks the busy-wait scenario.
      Reported-by: NDoug Ledford <dledford@redhat.com>
      CC: Sathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: NPadmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Signed-off-by: NSelvin Xavier <selvin.xavier@avagotech.com>
      Signed-off-by: NDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      10a214dc
  5. 24 12月, 2015 1 次提交
  6. 29 10月, 2015 2 次提交
  7. 22 10月, 2015 2 次提交
  8. 08 10月, 2015 1 次提交
    • C
      IB: split struct ib_send_wr · e622f2f4
      Christoph Hellwig 提交于
      This patch split up struct ib_send_wr so that all non-trivial verbs
      use their own structure which embedds struct ib_send_wr.  This dramaticly
      shrinks the size of a WR for most common operations:
      
      sizeof(struct ib_send_wr) (old):	96
      
      sizeof(struct ib_send_wr):		48
      sizeof(struct ib_rdma_wr):		64
      sizeof(struct ib_atomic_wr):		96
      sizeof(struct ib_ud_wr):		88
      sizeof(struct ib_fast_reg_wr):		88
      sizeof(struct ib_bind_mw_wr):		96
      sizeof(struct ib_sig_handover_wr):	80
      
      And with Sagi's pending MR rework the fast registration WR will also be
      down to a reasonable size:
      
      sizeof(struct ib_fastreg_wr):		64
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> [srp, srpt]
      Reviewed-by: Chuck Lever <chuck.lever@oracle.com> [sunrpc]
      Tested-by: NHaggai Eran <haggaie@mellanox.com>
      Tested-by: NSagi Grimberg <sagig@mellanox.com>
      Tested-by: NSteve Wise <swise@opengridcomputing.com>
      e622f2f4
  9. 31 8月, 2015 2 次提交
  10. 24 7月, 2015 1 次提交
    • D
      RDMA/ocrdma: update ocrdma license to dual-license · 71ee6730
      Devesh Sharma 提交于
      Change of license from GPLv2 to dual-license (GPLv2 and BSD 2-Clause)
      
      All contributors were contacted off-list and permission to make this
      change was received.  The complete list of contributors are Cc:ed here.
      
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Duan Jiong <duanj.fnst@cn.fujitsu.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Jes Sorensen <Jes.Sorensen@redhat.com>
      Cc: Sasha Levin <levinsasha928@gmail.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: Prarit Bhargava <prarit@redhat.com>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
      Cc: Moni Shoua <monis@mellanox.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Li RongQing <roy.qing.li@gmail.com>
      Cc: Devendra Naga <devendra.aaru@gmail.com>
      Signed-off-by: NDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      71ee6730
  11. 13 6月, 2015 2 次提交
  12. 11 6月, 2015 1 次提交
  13. 02 6月, 2015 1 次提交
  14. 21 5月, 2015 1 次提交
  15. 19 5月, 2015 1 次提交
  16. 18 5月, 2015 2 次提交
  17. 19 2月, 2015 10 次提交
  18. 16 12月, 2014 2 次提交
  19. 11 10月, 2014 1 次提交
  20. 20 9月, 2014 2 次提交
  21. 01 9月, 2014 1 次提交
  22. 13 8月, 2014 1 次提交
  23. 02 8月, 2014 1 次提交