[PATCH rdma-next 0/8] Introduce vector CALC support

Leon Romanovsky
2016-02-20T07:47:37Z

This patch set introduces vector CALC support.

This feature takes as input several vectors of equal length,
combines them with a single operation type, producing result vectors
which are sent to the destination.

The proposed operations are "add, and, or, xor, max, min" and "swap
endianness".

The hardware processes the data an MTU of at a time, processing the elements
of each segment in parallel.

This patch set depends on commit b4ff3a36d3e4 ("net/mlx5: Use offset based
reserved field names in the IFC header file") which is part of net tree.

The series consists from two parts: IB and net.

NET part (patches #1-3)
* Patch #1 fixes ATOMIC capability mode. This change has no impact on
* the system, since MAX property is not in use for ATOMIC.
* Patch #2 merges two device capability calls in one.
* Patch #3 adds infrastructure to support vector CALC querying.
IB part (patches #4-8)
* Patch #4 refactors device query code by eliminating the unnecessary zeroing
of variables
* Patch #5 converts device capability mask from u32 to be u64 and support more
than 32 device capabilities.
* Patch #6 adds vector CALC device capability flag.
* Patch #7 exports all possible supported operations.
* Patch #8 advertises the mlx5 driver support of vector CALC.

Leon Romanovsky (8):
net/mlx5_core: Fix caching ATOMIC endian mode capability
net/mlx5_core: Refactor device capability function
net/mlx5_core: Introduce offload arithmetic hardware capabilities
IB/core: Replace setting the zero values in ib_uverbs_ex_query_device
IB/{core,ulp} Support above 32 possible device capability flags
IB/core: Add offload arithmetic operations support
IB/core: Exposure supported CALC capabilities
IB/mlx5: Exposure offload arithmetic operations

drivers/infiniband/core/uverbs_cmd.c | 29 +++++++------
drivers/infiniband/hw/mlx5/main.c | 3 ++
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 57 ++++++--------------------
drivers/net/ethernet/mellanox/mlx5/core/main.c | 24 +++++++----
include/linux/mlx5/device.h | 6 +++
include/linux/mlx5/driver.h | 3 +-
include/linux/mlx5/mlx5_ifc.h | 31 +++++++++++++-
include/rdma/ib_verbs.h | 29 ++++++++++++-
include/uapi/rdma/ib_user_verbs.h | 13 ++++++
10 files changed, 124 insertions(+), 73 deletions(-)