[PATCH rdma-next v2 0/4] Mark create/destroy address handle calls as atomic/sleepable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jason and Doug,
This patchset adds a new 'flags' field to create/destroy address handle flow
and a flag that marks whether the callback is executed in a sleepable context
in order to allow drivers to wait for device completion instead of busy polling
when possible.

Patches #1, #2 add the flag to create/destroy AH callbacks and change all the
drivers, patches #3, #4 change bnxt_re driver to make use of the flag and not
poll for firmware completion.

Note that I left the bool function parameter in the bnxt_re internal qplib
calls because that's consistent with all other functions, changed it anywhere
else.

Changelog:
v1->v2:
* Rebased on top of rdmavt callbacks fixes by Kamal and adjust the callbacks accordingly
* Use flags and an enum instead of bool flag
* Make bnxt_re_create_shadow_qp_ah call create AH as sleepable (changed from non-sleepable)
* Make bnxt_re_destroy_qp call destroy AH as sleepable (changed from non-sleepable)

Thanks,
Gal

Gal Pressman (4):
  RDMA: Mark if create address handle is in a sleepable context
  RDMA: Mark if destroy address handle is in a sleepable context
  RDMA/bnxt_re: Make use of create AH sleepable flag
  RDMA/bnxt_re: Make use of destroy AH sleepable flag

 drivers/infiniband/core/agent.c                 |  4 ++--
 drivers/infiniband/core/cm.c                    |  6 +++---
 drivers/infiniband/core/mad_rmpp.c              | 10 ++++-----
 drivers/infiniband/core/sa_query.c              |  5 +++--
 drivers/infiniband/core/user_mad.c              |  4 ++--
 drivers/infiniband/core/uverbs_cmd.c            |  2 +-
 drivers/infiniband/core/uverbs_std_types.c      |  3 ++-
 drivers/infiniband/core/verbs.c                 | 21 ++++++++++++-------
 drivers/infiniband/hw/bnxt_re/ib_verbs.c        | 13 +++++++-----
 drivers/infiniband/hw/bnxt_re/ib_verbs.h        |  3 ++-
 drivers/infiniband/hw/bnxt_re/qplib_sp.c        | 10 +++++----
 drivers/infiniband/hw/bnxt_re/qplib_sp.h        |  6 ++++--
 drivers/infiniband/hw/hfi1/mad.c                |  2 +-
 drivers/infiniband/hw/hns/hns_roce_ah.c         |  3 ++-
 drivers/infiniband/hw/hns/hns_roce_device.h     |  3 ++-
 drivers/infiniband/hw/mlx4/ah.c                 |  6 +++---
 drivers/infiniband/hw/mlx4/mad.c                | 28 ++++++++++++-------------
 drivers/infiniband/hw/mlx4/mlx4_ib.h            |  4 ++--
 drivers/infiniband/hw/mlx5/ah.c                 |  4 ++--
 drivers/infiniband/hw/mlx5/mlx5_ib.h            |  4 ++--
 drivers/infiniband/hw/mthca/mthca_mad.c         |  7 ++++---
 drivers/infiniband/hw/mthca/mthca_provider.c    |  3 ++-
 drivers/infiniband/hw/ocrdma/ocrdma_ah.c        |  4 ++--
 drivers/infiniband/hw/ocrdma/ocrdma_ah.h        |  4 ++--
 drivers/infiniband/hw/qedr/verbs.c              |  4 ++--
 drivers/infiniband/hw/qedr/verbs.h              |  4 ++--
 drivers/infiniband/hw/qib/qib_mad.c             |  3 ++-
 drivers/infiniband/hw/qib/qib_verbs.c           |  2 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c    |  3 ++-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.h    |  3 ++-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c |  6 ++++--
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h |  4 ++--
 drivers/infiniband/sw/rdmavt/ah.c               |  5 ++++-
 drivers/infiniband/sw/rdmavt/ah.h               |  3 ++-
 drivers/infiniband/sw/rdmavt/mad.c              |  3 ++-
 drivers/infiniband/sw/rxe/rxe_verbs.c           |  3 ++-
 drivers/infiniband/ulp/ipoib/ipoib_ib.c         |  4 ++--
 drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c |  8 +++----
 drivers/infiniband/ulp/srpt/ib_srpt.c           |  4 ++--
 include/rdma/ib_verbs.h                         | 20 +++++++++++++++---
 40 files changed, 142 insertions(+), 96 deletions(-)

-- 
2.7.4




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux