[dpdk-dev] [PATCH v4 00/14] net/mlx5: add support for multiport IB devices
Shahaf Shuler
shahafs at mellanox.com
Thu Mar 28 10:21:30 CET 2019
Wednesday, March 27, 2019 3:16 PM, Viacheslav Ovsiienko:
> Subject: [PATCH v4 00/14] net/mlx5: add support for multiport IB devices
>
> The Mellanox NICs support SR-IOV and have E-Switch feature.
> When SR-IOV is set up in switchdev mode and E-Switch is enabled we have
> so called VF representors in the system. All representors belonging to the
> same E-Switch are created on the basis of the single PCI function and with
> current implementation each representor has its own dedicated Infiniband
> device and operates within its own Infiniband context. It is proposed to
> provide representors as ports of the single Infiniband device and operate on
> the shared Infiniband context.
>
> mlx5_pci_probe() routine is planned to be extended to probe the ports of
> found Infiniband devices. All active ports, belonging to the same Infiniband
> device will use the signle shared Infiniband context of that device:
> - QP are created within shared context, with assigning to
> specified port
> - Verb flows are also created with specifying port index
> - Protection Domain is shared by all representors
> - Global Memory Regions Cache is shared by all representors,
> local ones are not (not in this patchset)
> - Shared Asynchronous Event Handler distributes events
> among the device ports (not in this patchset)
> - UAR mapping to user space is also shared (not in patchset)
>
> Each representor has its own attached network interface device, interface
> name and index can be retrieved via IB device and port index, so the link
> control is performed via Netlink in the same way as in existing
> implementation.
>
> This patchset also superseedes http://patches.dpdk.org/patch/50486/
>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
Series applied to next-net-mlx.
Good job Slava.
>
> ---
> v4:
> - minor typo fixes for debug compilation
> - rebased on current top of repo
> - removed dependency on DR (Direct Rules)
>
> v3:
> http://patches.dpdk.org/cover/51728/
> - vport_id field is added, contains associated VF vport
> index on E-Switch. representor_id field is reverted
> to keep the VF index
> - some comment spellcheck
> - some error logging is added for master/representor
> wrong recognition
> - shared IB context alloc/free routines mutex
> protection added
>
> v2:
> http://patches.dpdk.org/patch/51642/
> - clarifying comments added
> - secondary process does not probe IB device at all and
> does not create shared context
> - minor bugs (like ++ in assert) fixed
> - representor_id contains corresponding VF vport index,
> no corrections +1 is needed anymore. vport index is
> calculated in the only place in code and if indexing
> schema is changed it would be easy to modify
>
> v1:
> http://patches.dpdk.org/cover/51451/
>
> Viacheslav Ovsiienko (13):
> net/mlx5: add representor recognition on kernels 5.x
> net/mlx5: modify get ifindex routine for multiport IB
> net/mlx5: add getting IB ports number for multiport IB
> net/mlx5: add multiport IB device support to probing
> net/mlx5: add IB shared context alloc/free functions
> net/mlx5: switch to the names in the shared IB context
> net/mlx5: switch to the shared Protection Domain
> net/mlx5: switch to the shared context IB attributes
> net/mlx5: switch to the shared IB device context
> net/mlx5: provide IB port for the object being created
> net/mlx5: update install/uninstall int handler routines
> net/mlx5: update event handler for multiport IB devices
> net/mlx5: add source vport match to the ingress rules
>
> drivers/net/mlx5/Makefile | 10 +
> drivers/net/mlx5/meson.build | 4 +
> drivers/net/mlx5/mlx5.c | 638 ++++++++++++++++++++++++++--------
> ---
> drivers/net/mlx5/mlx5.h | 45 ++-
> drivers/net/mlx5/mlx5_ethdev.c | 248 +++++++++-----
> drivers/net/mlx5/mlx5_flow.c | 2 +
> drivers/net/mlx5/mlx5_flow_dv.c | 44 ++-
> drivers/net/mlx5/mlx5_flow_verbs.c | 7 +-
> drivers/net/mlx5/mlx5_mr.c | 4 +-
> drivers/net/mlx5/mlx5_nl.c | 108 ++++++-
> drivers/net/mlx5/mlx5_rxq.c | 41 +--
> drivers/net/mlx5/mlx5_socket.c | 4 +-
> drivers/net/mlx5/mlx5_stats.c | 22 +-
> drivers/net/mlx5/mlx5_trigger.c | 2 +-
> drivers/net/mlx5/mlx5_txq.c | 24 +-
> 15 files changed, 868 insertions(+), 335 deletions(-)
>
> --
> 1.8.3.1
More information about the dev
mailing list