mbox series

[GIT,PULL] Please pull RDMA subsystem changes

Message ID 20200401230133.GA14469@ziepe.ca (mailing list archive)
State Superseded
Headers show
Series [GIT,PULL] Please pull RDMA subsystem changes | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

Message

Jason Gunthorpe April 1, 2020, 11:01 p.m. UTC
Hi Linus,

These are the proposed RDMA patches for 5.7.

This cycle saw some more activity from Syzkaller, I think we are now clean on
all but one of those bugs, including the long standing and obnoxious rdma_cm
locking design defect. Continue to see many drivers getting cleanups, with a
few new user visible features.

Thanks,
Jason

The following changes since commit 826096d84f509d95ee8f72728fe19c44fbb9df6b:

  mlx5: Remove uninitialized use of key in mlx5_core_create_mkey (2020-03-16 23:30:32 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

for you to fetch changes up to b4d8ddf8356d8ac73fb931d16bcc661a83b2c0fe:

  RDMA/bnxt_re: make bnxt_re_ib_init static (2020-03-30 15:03:19 -0300)

----------------------------------------------------------------
RDMA 5.7 pull request

The majority of the patches are cleanups, refactorings and clarity
improvements

- Various driver updates for siw, bnxt_re, rxe, efa, mlx5, hfi1

- Lots of cleanup patches for hns

- Convert more places to use refcount

- Aggressively lock the RDMA CM code that syzkaller says isn't working

- Work to clarify ib_cm

- Use the new ib_device lifecycle model in bnxt_re

- Fix mlx5's MR cache which seems to be failing more often with the new
  ODP code

- mlx5 'dynamic uar' and 'tx steering' user interfaces

----------------------------------------------------------------
Alex Vesker (1):
      IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads

Alexander Lobakin (1):
      IB/mlx5: Optimize u64 division on 32-bit arches

Andrew Morton (1):
      RDMA/siw: Suppress uninitialized var warning

Avihai Horon (1):
      RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow

Bart Van Assche (1):
      RDMA/rxe: Fix configuration of atomic queue pair attributes

Bernard Metzler (1):
      RDMA/siw: Fix passive connection establishment

Christophe JAILLET (1):
      RDMA/bnxt_re: Remove a redundant 'memset'

Colin Ian King (2):
      RDMA/hns: fix spelling mistake: "attatch" -> "attach"
      RDMA/hns: fix spelling mistake "attatch" -> "attach"

Dan Carpenter (1):
      IB/mlx5: Fix a NULL vs IS_ERR() check

Devesh Sharma (8):
      RDMA/bnxt_re: Refactor queue pair creation code
      RDMA/bnxt_re: Replace chip context structure with pointer
      RDMA/bnxt_re: Refactor hardware queue memory allocation
      RDMA/bnxt_re: Refactor net ring allocation function
      RDMA/bnxt_re: Refactor command queue management code
      RDMA/bnxt_re: Refactor notification queue management code
      RDMA/bnxt_re: Refactor doorbell management functions
      RDMA/bnxt_re: use ibdev based message printing functions

Erez Shitrit (1):
      RDMA/mlx5: Remove duplicate definitions of SW_ICM macros

Gal Pressman (3):
      RDMA/efa: Unified getters/setters for device structs bitmask access
      RDMA/efa: Properly document the interrupt mask register
      RDMA/efa: Do not delay freeing of DMA pages

George Spelvin (1):
      IB/qib: Delete struct qib_ivdev.qp_rnd

Gustavo A. R. Silva (2):
      RDMA: Replace zero-length array with flexible-array member
      RDMA/hns: Fix uninitialized variable bug

Jason Gunthorpe (35):
      RDMA/core: Get rid of ib_create_qp_user
      RDMA/ucma: Use refcount_t for the ctx->ref
      RDMA/bnxt_re: Using vmalloc requires including vmalloc.h
      RDMA/ucma: Put a lock around every call to the rdma_cm layer
      Merge tag 'v5.6-rc4' into rdma.git for-next
      Merge branch 'mlx5_packet_pacing' into rdma.git for-next
      Merge tag 'v5.6-rc5' into rdma.git for-next
      RDMA/cma: Teach lockdep about the order of rtnl and lock
      RDMA/mlx5: Rename the tracking variables for the MR cache
      RDMA/mlx5: Simplify how the MR cache bucket is located
      RDMA/mlx5: Always remove MRs from the cache before destroying them
      RDMA/mlx5: Fix MR cache size and limit debugfs
      RDMA/mlx5: Lock access to ent->available_mrs/limit when doing queue_work
      RDMA/mlx5: Fix locking in MR cache work queue
      RDMA/mlx5: Revise how the hysteresis scheme works for cache filling
      RDMA/mlx5: Allow MRs to be created in the cache synchronously
      Merge branch 'mlx5_mr_cache' into rdma.git for-next
      RDMA/cm: Fix ordering of xa_alloc_cyclic() in ib_create_cm_id()
      RDMA/cm: Fix checking for allowed duplicate listens
      RDMA/cm: Remove a race freeing timewait_info
      RDMA/cm: Make the destroy_id flow more robust
      RDMA/cm: Simplify establishing a listen cm_id
      RDMA/cm: Read id.state under lock when doing pr_debug()
      RDMA/cm: Make it clear that there is no concurrency in cm_sidr_req_handler()
      RDMA/cm: Make it clearer how concurrency works in cm_req_handler()
      RDMA/cm: Add missing locking around id.state in cm_dup_req_handler
      RDMA/cm: Add some lockdep assertions for cm_id_priv->lock
      RDMA/cm: Allow ib_send_cm_dreq() to be done under lock
      RDMA/cm: Allow ib_send_cm_drep() to be done under lock
      RDMA/cm: Allow ib_send_cm_rej() to be done under lock
      RDMA/cm: Allow ib_send_cm_sidr_rep() to be done under lock
      RDMA/cm: Make sure the cm_id is in the IB_CM_IDLE state in destroy
      RDMA/bnxt_re: Use ib_device_try_get()
      RDMA/bnxt_re: Fix lifetimes in bnxt_re_task
      Merge branch 'mlx5_tx_steering' into rdma.git for-next

Jihua Tao (1):
      RDMA/hns: Reduce PFC frames in congestion scenarios

Kaike Wan (3):
      IB/hfi1: Remove kobj from hfi1_devdata
      IB/hfi1: Fix memory leaks in sysfs registration and unregistration
      IB/hfi1: Call kobject_put() when kobject_init_and_add() fails

Kamal Heib (3):
      RDMA/siw: Fix setting active_mtu attribute
      RDMA/siw: Fix setting active_{speed, width} attributes
      RDMA/providers: Fix return value when QP type isn't supported

Lang Cheng (10):
      RDMA/hns: Cleanups of magic numbers
      RDMA/hns: Initialize all fields of doorbells to zero
      RDMA/hns: Treat revision HIP08_A as a special case
      RDMA/hns: Check if depth of qp is 0 before configure
      RDMA/hns: Simplify attribute judgment code
      RDMA/hns: Adjust the qp status value sequence of the hardware
      RDMA/hns: Remove definition of cq doorbell structure
      RDMA/hns: Remove redundant qpc setup operations
      RDMA/hns: Reduce the maximum number of extend SGE per WQE
      RDMA/hns: Modify the mask of QP number for CQE of hip08

Leon Romanovsky (8):
      RDMA/ucma: Mask QPN to be 24 bits according to IBTA
      RDMA/ipoib: Don't set constant driver version
      RDMA/opa_vnic: Delete driver version
      RDMA/mlx4: Delete duplicated offsetofend implementation
      RDMA/mlx5: Use offsetofend() instead of duplicated variant
      RDMA/cm: Delete not implemented CM peer to peer communication
      RDMA/efa: Use in-kernel offsetofend() to check field availability
      IB/mlx5: Limit the scope of struct mlx5_bfreg_info to mlx5_ib

Lijun Ou (2):
      RDMA/hns: Unify format of prints
      RDMA/hns: Optimize hns_roce_alloc_vf_resource()

Mauro Carvalho Chehab (1):
      IB/hfi1: Get rid of a warning

Max Gurtovoy (1):
      RDMA/rw: map P2P memory correctly for signature operations

Michael Guralnik (4):
      RDMA/core: Add weak ordering dma attr to dma mapping
      RDMA/mlx5: Prevent UMR usage with RO only when we have RO caps
      net/mlx5: Add support for RDMA TX steering
      RDMA/mlx5: Add support for RDMA TX flow table

Mike Marciniszyn (1):
      IB/rdmavt: Delete unused routine

Parav Pandit (8):
      RDMA/cma: Use a helper function to enqueue resolve work items
      RDMA/cma: Use RDMA device port iterator
      RDMA/cma: Rename cma_device ref/deref helpers to to get/put
      RDMA/cma: Use refcount API to reflect refcount
      RDMA/cma: Rename cma_device ref/deref helpers to to get/put
      RDMA/cma: Use refcount API to reflect refcount
      IB/mlx5: Add np_min_time_between_cnps and rp_max_rate debug params
      IB/mlx5: Fix missing congestion control debugfs on rep rdma device

Saeed Mahameed (1):
      RDMA/mlx5: Replace spinlock protected write with atomic var

Selvin Xavier (6):
      RDMA/core: Add helper function to retrieve driver gid context from gid attr
      RDMA/bnxt_re: Use rdma_read_gid_hw_context to retrieve HW gid index
      RDMA/bnxt_re: Refactor device add/remove functionalities
      RDMA/bnxt_re: Use driver_unregister and unregistration API
      RDMA/bnxt_re: Remove unnecessary sched count
      RDMA/bnxt_re: Wait for all the CQ events before freeing CQ data structures

Sergey Gorenko (1):
      IB/iser: Always check sig MR before putting it to the free pool

Shiraz Saleem (1):
      i40iw: Do an RCU lookup in i40iw_add_ipv4_addr

Sindhu, Devale (1):
      i40iw: Report correct firmware version

Takashi Iwai (1):
      IB/hfi1: Use scnprintf() for avoiding potential buffer overflow

Weihang Li (4):
      RDMA/hns: Fix wrong judgments of udata->outlen
      RDMA/hns: Fix a wrong judgment of return value
      RDMA/hns: Remove redundant assignment of wc->smac when polling cq
      RDMA/hns: Remove redundant judgment of qp_type

Wenpeng Liang (1):
      RDMA/hns: Remove meaningless prints

Xi Wang (15):
      RDMA/hns: Optimize eqe buffer allocation flow
      RDMA/hns: Optimize qp destroy flow
      RDMA/hns: Optimize qp context create and destroy flow
      RDMA/hns: Optimize qp number assign flow
      RDMA/hns: Optimize qp buffer allocation flow
      RDMA/hns: Optimize qp param setup flow
      RDMA/hns: Optimize kernel qp wrid allocation flow
      RDMA/hns: Optimize qp doorbell allocation flow
      RDMA/hns: Rename wqe buffer related functions
      RDMA/hns: Optimize wqe buffer filling process for post send
      RDMA/hns: Optimize the wr opcode conversion from ib to hns
      RDMA/hns: Optimize base address table config flow for qp buffer
      RDMA/hns: Optimize wqe buffer set flow for post send
      RDMA/hns: Optimize mhop get flow for multi-hop addressing
      RDMA/hns: Optimize mhop put flow for multi-hop addressing

Yishai Hadas (6):
      IB/mlx5: Introduce UAPIs to manage packet pacing
      IB/mlx5: Generally use the WC auto detection test result
      IB/mlx5: Expose UAR object and its alloc/destroy commands
      IB/mlx5: Extend CQ creation to get uar page index from user space
      IB/mlx5: Extend QP creation to get uar page index from user space
      IB/mlx5: Move to fully dynamic UAR mode once user space supports it

Yixian Liu (4):
      RDMA/hns: Add the workqueue framework for flush cqe handler
      RDMA/hns: Delayed flush cqe process with workqueue
      RDMA/hns: Use flush framework for the case in aeq
      RDMA/hns: Stop doorbell update while qp state error

YueHaibing (4):
      RDMA/bnxt_re: Remove set but not used variable 'pg_size'
      RDMA/bnxt_re: Remove set but not used variable 'dev_attr'
      RDMA/bnxt_re: Remove set but not used variables 'pg' and 'idx'
      RDMA/bnxt_re: make bnxt_re_ib_init static

Zhu Yanjun (2):
      RDMA/core: Remove the duplicate header file
      RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices

 drivers/infiniband/core/cache.c                    |   19 +-
 drivers/infiniband/core/cm.c                       |  746 ++++----
 drivers/infiniband/core/cma.c                      |  114 +-
 drivers/infiniband/core/cma_configfs.c             |    6 +-
 drivers/infiniband/core/cma_priv.h                 |    6 +-
 drivers/infiniband/core/mad_priv.h                 |    4 +-
 drivers/infiniband/core/multicast.c                |    2 +-
 drivers/infiniband/core/rw.c                       |   12 +-
 drivers/infiniband/core/sa_query.c                 |    2 +-
 drivers/infiniband/core/ucma.c                     |   61 +-
 drivers/infiniband/core/umem.c                     |   11 +-
 drivers/infiniband/core/verbs.c                    |   24 +-
 drivers/infiniband/hw/bnxt_re/bnxt_re.h            |   26 +-
 drivers/infiniband/hw/bnxt_re/ib_verbs.c           |  926 ++++++----
 drivers/infiniband/hw/bnxt_re/main.c               |  492 +++---
 drivers/infiniband/hw/bnxt_re/qplib_fp.c           |  489 +++---
 drivers/infiniband/hw/bnxt_re/qplib_fp.h           |   95 +-
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c         |  463 +++--
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h         |   85 +-
 drivers/infiniband/hw/bnxt_re/qplib_res.c          |  470 +++--
 drivers/infiniband/hw/bnxt_re/qplib_res.h          |  145 +-
 drivers/infiniband/hw/bnxt_re/qplib_sp.c           |   48 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h             |    4 +-
 drivers/infiniband/hw/cxgb4/qp.c                   |    2 +-
 drivers/infiniband/hw/cxgb4/t4fw_ri_api.h          |    8 +-
 drivers/infiniband/hw/efa/efa_admin_cmds_defs.h    |    7 +-
 drivers/infiniband/hw/efa/efa_admin_defs.h         |    4 +-
 drivers/infiniband/hw/efa/efa_com.c                |  158 +-
 drivers/infiniband/hw/efa/efa_com_cmd.c            |   29 +-
 drivers/infiniband/hw/efa/efa_common_defs.h        |   13 +-
 drivers/infiniband/hw/efa/efa_regs_defs.h          |   25 +-
 drivers/infiniband/hw/efa/efa_verbs.c              |   51 +-
 drivers/infiniband/hw/hfi1/fault.c                 |    4 +-
 drivers/infiniband/hw/hfi1/file_ops.c              |    4 +-
 drivers/infiniband/hw/hfi1/hfi.h                   |    2 -
 drivers/infiniband/hw/hfi1/init.c                  |   26 +-
 drivers/infiniband/hw/hfi1/mad.c                   |    4 +-
 drivers/infiniband/hw/hfi1/mad.h                   |    2 +-
 drivers/infiniband/hw/hfi1/pio.h                   |    4 +-
 drivers/infiniband/hw/hfi1/sdma.c                  |    2 +-
 drivers/infiniband/hw/hfi1/sdma.h                  |    4 +-
 drivers/infiniband/hw/hfi1/sysfs.c                 |   26 +-
 drivers/infiniband/hw/hfi1/user_exp_rcv.h          |    2 +-
 drivers/infiniband/hw/hns/hns_roce_cq.c            |    8 +-
 drivers/infiniband/hw/hns/hns_roce_device.h        |   54 +-
 drivers/infiniband/hw/hns/hns_roce_hem.c           |  474 ++---
 drivers/infiniband/hw/hns/hns_roce_hw_v1.c         |   46 +-
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c         | 1851 +++++++-------------
 drivers/infiniband/hw/hns/hns_roce_hw_v2.h         |   16 +-
 drivers/infiniband/hw/hns/hns_roce_mr.c            |    2 +-
 drivers/infiniband/hw/hns/hns_roce_pd.c            |    6 +-
 drivers/infiniband/hw/hns/hns_roce_qp.c            |  977 ++++++-----
 drivers/infiniband/hw/hns/hns_roce_srq.c           |    3 +-
 drivers/infiniband/hw/i40iw/i40iw.h                |   22 +-
 drivers/infiniband/hw/i40iw/i40iw_cm.h             |    4 +-
 drivers/infiniband/hw/i40iw/i40iw_ctrl.c           |   96 +
 drivers/infiniband/hw/i40iw/i40iw_d.h              |   26 +-
 drivers/infiniband/hw/i40iw/i40iw_main.c           |   24 +-
 drivers/infiniband/hw/i40iw/i40iw_p.h              |    1 +
 drivers/infiniband/hw/i40iw/i40iw_status.h         |    3 +-
 drivers/infiniband/hw/i40iw/i40iw_type.h           |   12 +
 drivers/infiniband/hw/i40iw/i40iw_verbs.c          |   12 +-
 drivers/infiniband/hw/mlx4/main.c                  |    9 +-
 drivers/infiniband/hw/mlx4/qp.c                    |    2 +-
 drivers/infiniband/hw/mlx5/Makefile                |    1 +
 drivers/infiniband/hw/mlx5/cong.c                  |   20 +
 drivers/infiniband/hw/mlx5/cq.c                    |   21 +-
 drivers/infiniband/hw/mlx5/flow.c                  |    3 +
 drivers/infiniband/hw/mlx5/main.c                  |  265 ++-
 drivers/infiniband/hw/mlx5/mem.c                   |    2 +-
 drivers/infiniband/hw/mlx5/mlx5_ib.h               |   89 +-
 drivers/infiniband/hw/mlx5/mr.c                    |  608 ++++---
 drivers/infiniband/hw/mlx5/odp.c                   |    2 +-
 drivers/infiniband/hw/mlx5/qos.c                   |  136 ++
 drivers/infiniband/hw/mlx5/qp.c                    |   35 +-
 drivers/infiniband/hw/mthca/mthca_memfree.c        |    2 +-
 drivers/infiniband/hw/mthca/mthca_memfree.h        |    2 +-
 drivers/infiniband/hw/mthca/mthca_provider.c       |    2 +-
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c        |    2 +-
 drivers/infiniband/hw/qedr/verbs.c                 |    2 +-
 drivers/infiniband/hw/qib/qib_verbs.c              |    2 -
 drivers/infiniband/hw/qib/qib_verbs.h              |    1 -
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c       |    2 +-
 drivers/infiniband/hw/usnic/usnic_uiom.h           |    2 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c       |    2 +-
 drivers/infiniband/sw/rdmavt/qp.c                  |    2 +-
 drivers/infiniband/sw/rdmavt/vt.c                  |    6 -
 drivers/infiniband/sw/rxe/rxe.c                    |    2 +
 drivers/infiniband/sw/rxe/rxe_qp.c                 |    7 +-
 drivers/infiniband/sw/rxe/rxe_queue.h              |    2 +-
 drivers/infiniband/sw/siw/siw_cm.c                 |  137 +-
 drivers/infiniband/sw/siw/siw_qp_rx.c              |    2 +-
 drivers/infiniband/sw/siw/siw_verbs.c              |   11 +-
 drivers/infiniband/ulp/ipoib/ipoib.h               |    2 -
 drivers/infiniband/ulp/ipoib/ipoib_ethtool.c       |    3 -
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |    4 -
 drivers/infiniband/ulp/iser/iser_memory.c          |   21 +-
 drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h   |    6 +-
 drivers/infiniband/ulp/opa_vnic/opa_vnic_ethtool.c |    2 -
 .../infiniband/ulp/opa_vnic/opa_vnic_internal.h    |    1 -
 drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c    |    5 -
 drivers/infiniband/ulp/srp/ib_srp.h                |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c   |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  |   53 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.h  |    7 +-
 include/linux/mlx5/device.h                        |    6 +
 include/linux/mlx5/driver.h                        |   17 -
 include/linux/mlx5/fs.h                            |    1 +
 include/linux/mlx5/mlx5_ifc.h                      |    8 +-
 include/rdma/ib_cache.h                            |    1 +
 include/rdma/ib_cm.h                               |    1 -
 include/rdma/ib_fmr_pool.h                         |    2 +-
 include/rdma/ib_verbs.h                            |   49 +-
 include/rdma/opa_vnic.h                            |    2 +-
 include/rdma/rdmavt_mr.h                           |    2 +-
 include/rdma/rdmavt_qp.h                           |    2 +-
 include/rdma/uverbs_ioctl.h                        |    2 +-
 include/uapi/rdma/mlx5-abi.h                       |    6 +
 include/uapi/rdma/mlx5_user_ioctl_cmds.h           |   35 +
 include/uapi/rdma/mlx5_user_ioctl_verbs.h          |   10 +
 120 files changed, 5401 insertions(+), 4495 deletions(-)
(diffstat from tag for-linus-merged)

Comments

pr-tracker-bot@kernel.org April 2, 2020, 2:05 a.m. UTC | #1
The pull request you sent on Wed, 1 Apr 2020 20:01:33 -0300:

> git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/919dce24701f7b34681a6a1d3ef95c9f6c4fb1cc

Thank you!