Messages in this thread | | | From | Gautam Dawar <> | Subject | [PATCH net-next 00/11] sfc: add vDPA support for EF100 devices | Date | Wed, 7 Dec 2022 20:24:16 +0530 |
| |
Hi All,
This series adds the vdpa support for EF100 devices. For now, only a network class of vdpa device is supported and they can be created only on a VF. Each EF100 VF can have one of the three function personalities (EF100, vDPA & None) at any time with EF100 being the default. A VF's function personality is changed to vDPA while creating the vdpa device using vdpa tool.
A vDPA management device is created per VF to allow selection of the desired VF for vDPA device creation. The MAC address for the target net device must be specified at the device creation time via the `mac` parameter of the `vdpa dev add` command as the control virtqueue is not supported yet.
To use with vhost-vdpa, QEMU version 6.1.0 or later must be used as it fixes the incorrect feature negotiation (vhost-vdpa backend) without which VIRTIO_F_IN_ORDER feature bit is negotiated but not honored when using the guest kernel virtio driver.
Gautam Dawar (11): sfc: add function personality support for EF100 devices sfc: implement MCDI interface for vDPA operations sfc: implement init and fini functions for vDPA personality sfc: implement vDPA management device operations sfc: implement vdpa device config operations sfc: implement vdpa vring config operations sfc: implement filters for receiving traffic sfc: implement device status related vdpa config operations sfc: implement iova rbtree to store dma mappings sfc: implement vdpa config_ops for dma operations sfc: register the vDPA device
drivers/net/ethernet/sfc/Kconfig | 8 + drivers/net/ethernet/sfc/Makefile | 2 + drivers/net/ethernet/sfc/ef10.c | 2 +- drivers/net/ethernet/sfc/ef100.c | 6 +- drivers/net/ethernet/sfc/ef100_iova.c | 205 +++++ drivers/net/ethernet/sfc/ef100_iova.h | 40 + drivers/net/ethernet/sfc/ef100_nic.c | 126 ++- drivers/net/ethernet/sfc/ef100_nic.h | 22 + drivers/net/ethernet/sfc/ef100_vdpa.c | 693 +++++++++++++++++ drivers/net/ethernet/sfc/ef100_vdpa.h | 241 ++++++ drivers/net/ethernet/sfc/ef100_vdpa_ops.c | 897 ++++++++++++++++++++++ drivers/net/ethernet/sfc/mcdi.h | 7 + drivers/net/ethernet/sfc/mcdi_filters.c | 51 +- drivers/net/ethernet/sfc/mcdi_functions.c | 9 +- drivers/net/ethernet/sfc/mcdi_functions.h | 3 +- drivers/net/ethernet/sfc/mcdi_vdpa.c | 268 +++++++ drivers/net/ethernet/sfc/mcdi_vdpa.h | 84 ++ drivers/net/ethernet/sfc/net_driver.h | 19 + 18 files changed, 2650 insertions(+), 33 deletions(-) create mode 100644 drivers/net/ethernet/sfc/ef100_iova.c create mode 100644 drivers/net/ethernet/sfc/ef100_iova.h create mode 100644 drivers/net/ethernet/sfc/ef100_vdpa.c create mode 100644 drivers/net/ethernet/sfc/ef100_vdpa.h create mode 100644 drivers/net/ethernet/sfc/ef100_vdpa_ops.c create mode 100644 drivers/net/ethernet/sfc/mcdi_vdpa.c create mode 100644 drivers/net/ethernet/sfc/mcdi_vdpa.h
-- 2.30.1
| |