net/mlx5: share Memory Regions for multiport device
authorViacheslav Ovsiienko <viacheslavo@mellanox.com>
Sat, 27 Apr 2019 04:32:56 +0000 (04:32 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 3 May 2019 16:45:23 +0000 (18:45 +0200)
commitab3cffcfc2b6d7612daa2e7048459e25650f56fc
tree3078bd159fcd5d6fcd10b3fdfecbc81e83d8185b
parent0333b2f584d95577681ea88e4238be6cb4369569
net/mlx5: share Memory Regions for multiport device

The multiport Infiniband device support was introduced [1].
All active ports, belonging to the same Infiniband device use the single
shared Infiniband context of that device and share the resources:
  - QPs are created within shared context
  - Verbs flows are also created with specifying port index
  - DV/DR resources
  - Protection Domain
  - Event Handlers

This patchset adds support for Memory Regions sharing between
ports, created on the base of multiport Infiniband device.
The datapath of mlx5 uses the layered cache subsystem for
allocating/releasing Memory Regions, only the lowest layer L3
is subject to share due to performance issues.

[1] http://patches.dpdk.org/cover/51800/

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_mr.c
drivers/net/mlx5/mlx5_mr.h
drivers/net/mlx5/mlx5_txq.c