Sub-Function [1] is a portion of the PCI device, a SF netdev has its own dedicated queues(txq, rxq). A SF shares PCI level resources with other SFs and/or with its parent PCI function. Auxiliary bus is the fundamental of SF.
This patch set introduces Sub-Function support for mlx5 PMD driver including class net, regex, vdpa and compress. Version history: RFC: initial version V1: rebased on latest upstream code V2: init sh->numa_node earlier other bug fixes V3: split first patch and fix compilation issue [1] SubFunction in kernel: https://lore.kernel.org/netdev/20201112192424.2742-1-pa...@nvidia.com/ [2] Auxiliary bus: http://patchwork.dpdk.org/project/dpdk/patch/20210510134732.2174-1-xuemi...@nvidia.com/ Thomas Monjalon (5): common/mlx5: move description of PCI sysfs functions common/mlx5: get PCI device address from any bus vdpa/mlx5: define driver name as macro vdpa/mlx5: remove PCI specifics vdpa/mlx5: support SubFunction Xueming Li (10): common/mlx5: rename eth device class name common/mlx5: add common device driver common/mlx5: support auxiliary bus net/mlx5: remove PCI dependency net/mlx5: migrate to bus-agnostic common driver net/mlx5: support SubFunction net/mlx5: check max Verbs port number regex/mlx5: migrate to common driver compress/mlx5: migrate to common driver common/mlx5: clean up legacy PCI bus driver doc/guides/nics/mlx5.rst | 54 +- doc/guides/rel_notes/release_21_08.rst | 5 + doc/guides/vdpadevs/mlx5.rst | 10 + drivers/common/mlx5/linux/meson.build | 3 + .../common/mlx5/linux/mlx5_common_auxiliary.c | 192 +++++++ drivers/common/mlx5/linux/mlx5_common_os.c | 29 +- drivers/common/mlx5/linux/mlx5_common_os.h | 6 +- drivers/common/mlx5/linux/mlx5_common_verbs.c | 24 +- drivers/common/mlx5/meson.build | 2 +- drivers/common/mlx5/mlx5_common.c | 389 ++++++++++++- drivers/common/mlx5/mlx5_common.h | 179 +++++- drivers/common/mlx5/mlx5_common_pci.c | 526 ++++-------------- drivers/common/mlx5/mlx5_common_pci.h | 77 --- drivers/common/mlx5/mlx5_common_private.h | 50 ++ drivers/common/mlx5/mlx5_common_utils.h | 2 + drivers/common/mlx5/version.map | 12 +- drivers/compress/mlx5/mlx5_compress.c | 71 +-- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 14 +- drivers/net/mlx5/linux/mlx5_os.c | 203 +++++-- drivers/net/mlx5/linux/mlx5_os.h | 5 +- drivers/net/mlx5/mlx5.c | 116 ++-- drivers/net/mlx5/mlx5.h | 14 +- drivers/net/mlx5/mlx5_ethdev.c | 2 +- drivers/net/mlx5/mlx5_mac.c | 2 +- drivers/net/mlx5/mlx5_mr.c | 48 +- drivers/net/mlx5/mlx5_rxmode.c | 8 +- drivers/net/mlx5/mlx5_rxtx.h | 9 +- drivers/net/mlx5/mlx5_trigger.c | 14 +- drivers/net/mlx5/mlx5_txq.c | 3 +- drivers/net/mlx5/windows/mlx5_os.c | 15 +- drivers/regex/mlx5/mlx5_regex.c | 49 +- drivers/regex/mlx5/mlx5_regex.h | 1 - drivers/vdpa/mlx5/mlx5_vdpa.c | 128 ++--- drivers/vdpa/mlx5/mlx5_vdpa.h | 1 - 34 files changed, 1363 insertions(+), 900 deletions(-) create mode 100644 drivers/common/mlx5/linux/mlx5_common_auxiliary.c delete mode 100644 drivers/common/mlx5/mlx5_common_pci.h create mode 100644 drivers/common/mlx5/mlx5_common_private.h -- 2.25.1