[PATCH V1 rdma-core 0/5] Enable mlx5 vendor functionality

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

 



Sending V1 as a follow-up version based on the discussion that was in the list
re the verbs patch that enabled CQ creation with vendor data, details below.

This patch set is the supplementary part of the kernel series that
was accepted few months ago into 4.10.

The below functionality was accepted in mlx5 kernel driver in the vendor
channel path as some driver specific capabilities and functionality, as such it
is exposed to user applications in the same manner by using the direct access
mechanism.

The vendor specific capabilities are reported via the direct mlx5 query
capabilities API.

In addition, an explicit API was added in mlx5 to enable creating a CQ with
some private data. This private data is passed to mlx5 kernel driver in the
vendor channel path.

This follows the requirement to have a more rigid, typed interface than
previous solution that was used on top of ibv_create_cq_ex().

To be able to share the libibverbs code of ibv_create_cq_ex() as of locking,
reference counting a verbs patch was added to enable any provider to register a
vendor create_cq API with libibverbs to be used as part of a direct CQ
creation. Please see patch #4 for further details.

Specifically this series:
Report whether mlx5 hardware supports multi packet send WQE offload for RAW QP.
- Multi packet WQE enables sending multiple fix sized packets using a single
  WQE. When the WQE is completed a single CQE will be generated.

Report CQE compressing capabilities and enable creating a CQ with such
capabilities.
- CQE compressing reduces PCI overhead by coalescing and compressing multiple
  CQEs into a single merged CQE. Successful compressing improves message rate
  especially for small packet traffic. 

The series is exposed from 5 patches:
#1:   Pre-patch which aligns mlx5 query device response to 64 bit.
#2-3: Report mlx5 specific hardware capabilities through direct verbs.
#4:   Enable private create_cq for providers.
#5:   Add support in mlx5 provider to create a CQ with compressed CQEs using
      private vendor data.

Pull request was sent:
https://github.com/linux-rdma/rdma-core/pull/103
Bodong Wang (3):
  mlx5: Explicitly align mlx5 query device response to 64 bit
  mlx5: Report multi packet send WQE capability for mlx5 based hardware
  mlx5: Report CQE compression capabilities through mlx5 direct verbs

Yishai Hadas (2):
  verbs: Enable private create_cq for providers
  mlx5: Expose direct create_cq with private data

 libibverbs/device.c                      | 22 +++++++++++++---
 libibverbs/driver.h                      | 11 ++++++++
 libibverbs/ibverbs.h                     |  7 +----
 libibverbs/libibverbs.map                |  5 ++++
 libibverbs/verbs.h                       |  4 +++
 providers/mlx5/libmlx5.map               |  5 ++++
 providers/mlx5/man/mlx5dv_query_device.3 |  1 +
 providers/mlx5/mlx5-abi.h                | 15 +++++++++--
 providers/mlx5/mlx5.c                    | 26 +++++++++++++++++--
 providers/mlx5/mlx5.h                    |  9 +++++++
 providers/mlx5/mlx5dv.h                  | 33 +++++++++++++++++++++++-
 providers/mlx5/verbs.c                   | 44 +++++++++++++++++++++++++++++---
 12 files changed, 164 insertions(+), 18 deletions(-)

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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