[Focal][Pull] Hisilicon DMA engine driver and RDMA/hns updates

Ike Panhc ike.pan at canonical.com
Mon Mar 2 10:00:38 UTC 2020


Hi,

BugLink: http://launchpad.net/bugs/1859269
BugLink: http://launchpad.net/bugs/1864442

Here is new driver for Hisilicon DMA engine which only works on specific PCIid.
And also patches for RDMA on Hisilicon ethernet devices. Most of patches are
Hisilicon hardware specific but also need to cherry-pick 4 RDMA core patches
and backport IB/umem patch. The backport patch is pretty easy for removing
dmasync argument from ib_umem_get, and no functional changes.

Have functional tests on Software RoCE and Hisilicon RoCE, and they are all
good. 

The following changes since commit f4cad6f4a3475e695cb83b05fc519307d2024def:

  UBUNTU: [Config] CONFIG_SPI_HISI_SFC_V3XX=m (2020-02-25 20:57:41 -0600)

are available in the Git repository at:

  git://kernel.ubuntu.com/ikepanhc/public.git lp1859269.2

for you to fetch changes up to 7d80c16b1ed833aa83b4723a41995c5d7927de68:

  RDMA/hns: Add support for extended atomic in userspace (2020-02-27 11:06:33 +0800)

----------------------------------------------------------------
Christoph Hellwig (2):
      dma-mapping: remove the DMA_ATTR_WRITE_BARRIER flag
      IB/umem: remove the dmasync argument to ib_umem_get

Ike Panhc (1):
      UBUNTU: [Config] CONFIG_HISI_DMA=m

Jiaran Zhang (1):
      RDMA/hns: Add support for extended atomic in userspace

Kamal Heib (1):
      RDMA/hns: Remove unsupported modify_port callback

Lang Cheng (3):
      RDMA/hns: Remove unnecessary structure hns_roce_sqp
      RDMA/hns: Simplify doorbell initialization code
      RDMA/hns: Modify hns_roce_hw_v2_get_cfg to simplify the code

Leon Romanovsky (1):
      RDMA/hns: Delete BITS_PER_BYTE redefinition

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

Michal Kalderon (3):
      RDMA/core: Move core content from ib_uverbs to ib_core
      RDMA/core: Create mmap database and cookie helper functions
      RDMA: Connect between the mmap entry and the umap_priv structure

Weihang Li (2):
      RDMA/hns: Modify variable/field name from vlan to vlan_id
      RDMA/hns: Remove some redundant variables related to capabilities

Wenpeng Liang (2):
      RDMA/hns: Modify appropriate printings
      RDMA/hns: Replace custom macros HNS_ROCE_ALIGN_UP

Xi Wang (1):
      RDMA/hns: Add support for reporting wc as software mode

Yixian Liu (9):
      RDMA/hns: Delete unnecessary variable max_post
      RDMA/hns: Delete unnecessary uar from hns_roce_cq
      RDMA/hns: Modify fields of struct hns_roce_srq
      RDMA/hns: Fix non-standard error codes
      RDMA/hns: Redefine interfaces used in creating cq
      RDMA/hns: Redefine the member of hns_roce_cq struct
      RDMA/hns: Rename the functions used inside creating cq
      RDMA/hns: Delete unnecessary callback functions for cq
      RDMA/hns: Simplify the calculation and usage of wqe idx for post verbs

Yixing Liu (3):
      RDMA/hns: Fix a spelling mistake in a macro
      RDMA/hns: Replace not intuitive function/macro names
      RDMA/hns: Remove redundant print information

Zhou Wang (1):
      dmaengine: hisilicon: Add Kunpeng DMA engine support

 Documentation/DMA-attributes.txt              |  18 ---
 debian.master/config/config.common.ubuntu     |   1 +
 drivers/dma/Kconfig                           |   8 ++
 drivers/dma/Makefile                          |   1 +
 drivers/dma/hisi_dma.c                        | 611 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/infiniband/core/Makefile              |   2 +-
 drivers/infiniband/core/core_priv.h           |  11 ++
 drivers/infiniband/core/device.c              |   1 +
 drivers/infiniband/core/ib_core_uverbs.c      | 335 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/infiniband/core/rdma_core.c           |   1 +
 drivers/infiniband/core/umem.c                |  12 +-
 drivers/infiniband/core/uverbs_cmd.c          |   2 +
 drivers/infiniband/core/uverbs_main.c         |  84 ++------------
 drivers/infiniband/hw/bnxt_re/ib_verbs.c      |  10 +-
 drivers/infiniband/hw/cxgb3/iwch_provider.c   |   2 +-
 drivers/infiniband/hw/cxgb4/mem.c             |   2 +-
 drivers/infiniband/hw/efa/efa_verbs.c         |   8 +-
 drivers/infiniband/hw/hns/hns_roce_ah.c       |  14 +--
 drivers/infiniband/hw/hns/hns_roce_alloc.c    |   4 +-
 drivers/infiniband/hw/hns/hns_roce_cmd.h      |  14 +--
 drivers/infiniband/hw/hns/hns_roce_cq.c       | 302 +++++++++++++++++++++----------------------------
 drivers/infiniband/hw/hns/hns_roce_db.c       |   2 +-
 drivers/infiniband/hw/hns/hns_roce_device.h   |  97 ++++++++--------
 drivers/infiniband/hw/hns/hns_roce_hw_v1.c    |  89 +++++++--------
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c    | 930 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------
 drivers/infiniband/hw/hns/hns_roce_hw_v2.h    | 159 +++++++++++++++++++++++++-
 drivers/infiniband/hw/hns/hns_roce_main.c     | 127 ++++++++++++++-------
 drivers/infiniband/hw/hns/hns_roce_mr.c       |  69 ++++++------
 drivers/infiniband/hw/hns/hns_roce_pd.c       |   2 +-
 drivers/infiniband/hw/hns/hns_roce_qp.c       | 112 +++++++++++++------
 drivers/infiniband/hw/hns/hns_roce_srq.c      |  62 +++++------
 drivers/infiniband/hw/i40iw/i40iw_verbs.c     |   2 +-
 drivers/infiniband/hw/mlx4/cq.c               |   2 +-
 drivers/infiniband/hw/mlx4/doorbell.c         |   2 +-
 drivers/infiniband/hw/mlx4/main.c             |   9 +-
 drivers/infiniband/hw/mlx4/mr.c               |   2 +-
 drivers/infiniband/hw/mlx4/qp.c               |   5 +-
 drivers/infiniband/hw/mlx4/srq.c              |   2 +-
 drivers/infiniband/hw/mlx5/cq.c               |   4 +-
 drivers/infiniband/hw/mlx5/devx.c             |   2 +-
 drivers/infiniband/hw/mlx5/doorbell.c         |   2 +-
 drivers/infiniband/hw/mlx5/main.c             |   8 +-
 drivers/infiniband/hw/mlx5/mr.c               |   2 +-
 drivers/infiniband/hw/mlx5/qp.c               |   4 +-
 drivers/infiniband/hw/mlx5/srq.c              |   2 +-
 drivers/infiniband/hw/mthca/mthca_provider.c  |   4 +-
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c   |   2 +-
 drivers/infiniband/hw/qedr/verbs.c            |  25 ++---
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c  |   2 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c  |   2 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c  |   4 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c |   2 +-
 drivers/infiniband/sw/rdmavt/mr.c             |   2 +-
 drivers/infiniband/sw/rxe/rxe_mr.c            |   2 +-
 include/linux/dma-mapping.h                   |   5 +-
 include/rdma/ib_umem.h                        |   4 +-
 include/rdma/ib_verbs.h                       |  48 ++++++--
 57 files changed, 2325 insertions(+), 917 deletions(-)
 create mode 100644 drivers/dma/hisi_dma.c
 create mode 100644 drivers/infiniband/core/ib_core_uverbs.c



More information about the kernel-team mailing list