Hi Linus, These are the proposed RDMA patches for 5.6. A very quiet cycle with few notable changes. Mostly the usual list of one or two patches to drivers changing something that isn't quite rc worthy. The subsystem seems to be seeing a larger number of rework and cleanup style patches right now, I feel that several vendors are prepping their drivers for new silicon. Thanks, Jason The following changes since commit b2dfc6765e45a3154800333234e4952b5412d792: net/rds: Use prefetch for On-Demand-Paging MR (2020-01-18 11:48:19 +0200) 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 8889f6fa35884d09f24734e10fea0c9ddcbc6429: RDMA/core: Make the entire API tree static (2020-01-30 16:28:52 -0400) ---------------------------------------------------------------- RDMA subsystem updates for 5.6 - Driver updates and cleanup for qedr, bnxt_re, hns, siw, mlx5, mlx4, rxe, i40iw - Larger series doing cleanup and rework for hns and hfi1. - Some general reworking of the CM code to make it a little more understandable - Unify the different code paths connected to the uverbs FD scheme - New UAPI ioctls conversions for get context and get async fd - Trace points for CQ and CM portions of the RDMA stack - mlx5 driver support for virtio-net formatted rings as RDMA raw ethernet QPs - verbs support for setting the PCI-E relaxed ordering bit on DMA traffic connected to a MR - A couple of bug fixes that came too late to make rc7 ---------------------------------------------------------------- Aditya Pakki (1): RDMA/srpt: Remove unnecessary assertion in srpt_queue_response Arnd Bergmann (1): IB/core: Fix build failure without hugepages Artemy Kovalyov (2): IB/mlx5: Unify ODP MR code paths to allow extra flexibility RDMA/umem: Fix ib_umem_find_best_pgsz() Avihai Horon (1): IB/mlx5: Expose RoCE accelerator counters Bernard Metzler (1): RDMA/siw: Simplify QP representation Chuck Lever (3): RDMA/cma: Add trace points in RDMA Connection Manager RDMA/core: Trace points for diagnosing completion queue issues RDMA/core: Add trace points to follow MR allocation Danit Goldberg (2): RDMA/cm: Use RCU synchronization mechanism to protect cm_id_private xa_load() IB/mlx5: Return the administrative GUID if exists Dillon Brock (1): IB/opa_vnic: Spelling correction of 'erorr' to 'error' Eugene Crosser (1): RDMA/mlx4: Redo TX checksum offload in line with docs Gal Pressman (4): RDMA/efa: Device definitions documentation updates RDMA/efa: Remove {} brackets from single statement if RDMA/efa: Remove unused ucontext parameter from efa_qp_user_mmap_entries_remove RDMA/efa: Mask access flags with the correct optional range Grzegorz Andrejczuk (3): IB/hfi1: Move common receive IRQ code to function IB/hfi1: Decouple IRQ name from type IB/hfi1: Return void in packet receiving functions Guoqing Jiang (1): RDMA/core: Remove err in iw_query_port HÃ¥kon Bugge (2): RDMA/netlink: Do not always generate an ACK for some netlink operations IB/mlx4: Fix leak in id_map_find_del Jack Morgenstein (1): IB/mlx4: Fix memory leak in add_gid error flow Jason Gunthorpe (29): RDMA/core: Fix locking in ib_uverbs_event_read Merge branch 'mlx5_vdpa' into rdma.git for-next RDMA/uverbs: Remove needs_kfree_rcu from uverbs_obj_type_class RDMA/mlx5: Use RCU and direct refcounts to keep memory alive RDMA/core: Simplify destruction of FD uobjects RDMA/mlx5: Simplify devx async commands RDMA/core: Do not allow alloc_commit to fail RDMA/core: Make ib_ucq_object use ib_uevent_object RDMA/core: Do not erase the type of ib_cq.uobject RDMA/core: Do not erase the type of ib_qp.uobject RDMA/core: Do not erase the type of ib_srq.uobject RDMA/core: Do not erase the type of ib_wq.uobject RDMA/core: Simplify type usage for ib_uverbs_async_handler() RDMA/core: Remove the ufile arg from rdma_alloc_begin_uobject RDMA/core: Make ib_uverbs_async_event_file into a uobject RDMA/core: Use READ_ONCE for ib_ufile.async_file Merge branch 'mlx5-next' into rdma.git for-next RDMA/core: Add UVERBS_METHOD_ASYNC_EVENT_ALLOC RDMA/core: Remove ucontext_lock from the uverbs_destry_ufile_hw() path RDMA/uverbs: Add ioctl command to get a device context Merge tag 'rds-odp-for-5.5' into rdma.git for-next RDMA/core: Ensure that rdma_user_mmap_entry_remove() is a fence RDMA/cm: Add accessors for CM_REQ transport_type RDMA/cm: Use IBA functions for simple get/set acessors RDMA/cm: Use IBA functions for swapping get/set acessors RDMA/cm: Use IBA functions for simple structure members RDMA/cm: Use IBA functions for complex structure members RDMA/cm: Remove CM message structs RDMA/core: Make the entire API tree static Jiaran Zhang (1): RDMA/hns: Add support for extended atomic in userspace Jiewei Ke (1): RDMA/rxe: Fix error type of mmap_offset Leon Romanovsky (4): RDMA/cm: Delete unused CM LAP functions RDMA/cm: Delete unused CM ARP functions net/mlx5: Add RoCE accelerator counters RDMA/cm: Add SET/GET implementations to hide IBA wire format Lijun Ou (7): RDMA/hns: Remove unused function hns_roce_init_eq_table() RDMA/hns: Update the value of qp type RDMA/hns: Delete unnessary parameters in hns_roce_v2_qp_modify() RDMA/hns: Fix coding style issues RDMA/hns: Bugfix for posting a wqe with sge RDMA/hns: Add interfaces to get pf capabilities from firmware RDMA/hns: Get pf capabilities from firmware Michael Guralnik (7): net/mlx5: Expose relaxed ordering bits RDMA/uverbs: Verify MR access flags RDMA/core: Add optional access flags range RDMA/efa: Allow passing of optional access flags for MR registration RDMA/uverbs: Add new relaxed ordering memory region access flag RDMA/core: Add the core support field to METHOD_GET_CONTEXT RDMA/mlx5: Set relaxed ordering when requested Michael J. Ruhl (1): IB/hfi1: List all receive contexts from debugfs Michal Kalderon (1): RDMA/qedr: Add kernel capability flags for dpm enabled mode Mike Marciniszyn (8): IB/hfi1: Add accessor API routines to access context members IB/rdmavt: Correct comments in rdmavt_qp.h header IB/hfi1: Move chip specific functions to chip.c IB/hfi1: Add fast and slow handlers for receive context IB/hfi1: IB/hfi1: Add an API to handle special case drop IB/hfi1: Create API for auto activate IB/hfi1: Add software counter for ctxt0 seq drop IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats Nathan Chancellor (1): IB/hfi1: Fix logical condition in msix_request_irq Parav Pandit (5): IB/mlx5: Do reverse sequence during device removal IB/core: Let IB core distribute cache update events IB/core: Cut down single member ib_cache structure IB/core: Rename event_handler_lock to qp_open_list_lock RDMA/cma: Fix unbalanced cm_id reference count during address resolve Prabhath Sajeepa (1): IB/mlx5: Fix outstanding_pi index for GSI qps Rao Shoaib (2): Introduce maximum WQE size to check limits RDMA/rxe: Compute the maximum sges and inline size based on the WQE size Selvin Xavier (1): RDMA/bnxt_re: Report more number of completion vectors Sergey Gorenko (1): IB/srp: Never use immediate data if it is disabled by a user Weihang Li (1): RDMA/hns: Remove some redundant variables related to capabilities Wenpeng Liang (2): RDMA/hns: Avoid printing address of mtt page RDMA/hns: Replace custom macros HNS_ROCE_ALIGN_UP Xi Wang (1): RDMA/hns: Add support for reporting wc as software mode Xiyu Yang (1): RDMA/i40iw: fix a potential NULL pointer dereference Yishai Hadas (5): IB/core: Fix ODP get user pages flow IB/core: Fix ODP with IB_ACCESS_HUGETLB handling IB/mlx5: Extend caps stage to handle VAR capabilities IB/mlx5: Introduce VAR object and its alloc/destroy methods IB/mlx5: Add mmap support for VAR Yixian Liu (1): RDMA/hns: Simplify the calculation and usage of wqe idx for post verbs Yixing Liu (1): RDMA/hns: Remove redundant print information zhengbin (5): RDMA/siw: use true,false for bool variable IB/hfi1: use true,false for bool variable IB/iser: use true,false for bool variable RDMA/mlx4: use true,false for bool variable RDMA/mlx5: use true,false for bool variable drivers/infiniband/core/Makefile | 9 +- drivers/infiniband/core/addr.c | 2 +- drivers/infiniband/core/cache.c | 151 +-- drivers/infiniband/core/cm.c | 1000 ++++++++++---------- drivers/infiniband/core/cm_msgs.h | 755 +-------------- drivers/infiniband/core/cma.c | 90 +- drivers/infiniband/core/cma_trace.c | 16 + drivers/infiniband/core/cma_trace.h | 391 ++++++++ drivers/infiniband/core/core_priv.h | 3 +- drivers/infiniband/core/cq.c | 27 +- drivers/infiniband/core/device.c | 42 +- drivers/infiniband/core/ib_core_uverbs.c | 2 + drivers/infiniband/core/nldev.c | 3 +- drivers/infiniband/core/rdma_core.c | 235 ++--- drivers/infiniband/core/rdma_core.h | 45 +- drivers/infiniband/core/sa_query.c | 4 +- drivers/infiniband/core/trace.c | 14 + drivers/infiniband/core/umem.c | 9 +- drivers/infiniband/core/umem_odp.c | 22 +- drivers/infiniband/core/uverbs.h | 48 +- drivers/infiniband/core/uverbs_cmd.c | 320 ++++--- drivers/infiniband/core/uverbs_ioctl.c | 45 +- drivers/infiniband/core/uverbs_main.c | 301 ++---- drivers/infiniband/core/uverbs_std_types.c | 44 +- .../infiniband/core/uverbs_std_types_async_fd.c | 52 + drivers/infiniband/core/uverbs_std_types_cq.c | 19 +- drivers/infiniband/core/uverbs_std_types_device.c | 38 + drivers/infiniband/core/uverbs_uapi.c | 7 +- drivers/infiniband/core/verbs.c | 55 +- drivers/infiniband/hw/bnxt_re/main.c | 2 +- drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 37 +- drivers/infiniband/hw/efa/efa_verbs.c | 15 +- drivers/infiniband/hw/hfi1/chip.c | 198 +++- drivers/infiniband/hw/hfi1/chip.h | 8 + drivers/infiniband/hw/hfi1/chip_registers.h | 1 + drivers/infiniband/hw/hfi1/common.h | 3 + drivers/infiniband/hw/hfi1/debugfs.c | 2 +- drivers/infiniband/hw/hfi1/driver.c | 237 ++--- drivers/infiniband/hw/hfi1/file_ops.c | 12 +- drivers/infiniband/hw/hfi1/hfi.h | 195 +++- drivers/infiniband/hw/hfi1/init.c | 87 +- drivers/infiniband/hw/hfi1/msix.c | 106 ++- drivers/infiniband/hw/hfi1/msix.h | 1 + drivers/infiniband/hw/hfi1/rc.c | 2 +- drivers/infiniband/hw/hfi1/trace_ctxts.h | 2 +- drivers/infiniband/hw/hfi1/trace_rx.h | 15 +- drivers/infiniband/hw/hfi1/vnic_main.c | 2 +- drivers/infiniband/hw/hns/hns_roce_cq.c | 2 + drivers/infiniband/hw/hns/hns_roce_device.h | 44 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 51 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 874 +++++++++++------ drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 159 +++- drivers/infiniband/hw/hns/hns_roce_main.c | 106 ++- drivers/infiniband/hw/hns/hns_roce_mr.c | 4 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 92 +- drivers/infiniband/hw/i40iw/i40iw_main.c | 2 + drivers/infiniband/hw/mlx4/cm.c | 29 +- drivers/infiniband/hw/mlx4/cq.c | 18 +- drivers/infiniband/hw/mlx4/main.c | 20 +- drivers/infiniband/hw/mlx4/qp.c | 4 +- drivers/infiniband/hw/mlx5/devx.c | 159 ++-- drivers/infiniband/hw/mlx5/gsi.c | 3 +- drivers/infiniband/hw/mlx5/ib_virt.c | 28 +- drivers/infiniband/hw/mlx5/main.c | 224 ++++- drivers/infiniband/hw/mlx5/mem.c | 25 - drivers/infiniband/hw/mlx5/mlx5_ib.h | 38 +- drivers/infiniband/hw/mlx5/mr.c | 81 +- drivers/infiniband/hw/mlx5/odp.c | 44 +- drivers/infiniband/hw/mlx5/qp.c | 4 +- drivers/infiniband/hw/qedr/verbs.c | 13 +- drivers/infiniband/sw/rdmavt/rc.c | 9 +- drivers/infiniband/sw/rxe/rxe_param.h | 7 +- drivers/infiniband/sw/rxe/rxe_qp.c | 18 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 2 +- drivers/infiniband/sw/siw/siw.h | 26 +- drivers/infiniband/sw/siw/siw_cm.c | 2 +- drivers/infiniband/sw/siw/siw_cq.c | 2 +- drivers/infiniband/sw/siw/siw_main.c | 2 +- drivers/infiniband/sw/siw/siw_qp.c | 13 +- drivers/infiniband/sw/siw/siw_qp_rx.c | 6 +- drivers/infiniband/sw/siw/siw_qp_tx.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.c | 61 +- drivers/infiniband/ulp/iser/iser_memory.c | 2 +- drivers/infiniband/ulp/iser/iser_verbs.c | 2 +- drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 3 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 2 - include/linux/mlx4/cq.h | 5 + include/linux/mlx5/driver.h | 5 + include/linux/mlx5/mlx5_ifc.h | 24 +- include/rdma/ib_cm.h | 34 - include/rdma/ib_verbs.h | 42 +- include/rdma/iba.h | 146 +++ include/rdma/ibta_vol1_c12.h | 213 +++++ include/rdma/rdmavt_qp.h | 22 +- include/rdma/uverbs_named_ioctl.h | 6 +- include/rdma/uverbs_std_types.h | 13 +- include/rdma/uverbs_types.h | 34 +- include/trace/events/rdma_core.h | 394 ++++++++ include/uapi/rdma/ib_user_ioctl_cmds.h | 15 + include/uapi/rdma/ib_user_ioctl_verbs.h | 12 + include/uapi/rdma/mlx5_user_ioctl_cmds.h | 17 + include/uapi/rdma/qedr-abi.h | 18 +- 103 files changed, 4659 insertions(+), 3200 deletions(-) (diffstat from tag for-linus-merged)