[dpdk-dev] [PATCH v2 0/3] add ifcvf driver

Xiao Wang xiao.w.wang at intel.com
Wed Mar 21 14:21:05 CET 2018


This patch set has dependency on http://dpdk.org/dev/patchwork/patch/36241/
(vhost: support selective datapath);

ifc VF is virtio vring compatible device, it can be used to accelerate vhost
data path. This patch implements vDPA driver ops which configures ifc VF to
be a vhost data path accelerator.

ifcvf driver uses vdev as a control domain to manage ifc VFs that belong
to it. It registers vDPA device ops to vhost lib to enable these VFs to be
used as vhost data path accelerator.

Live migration feature is supported by ifc VF and this driver enables
it based on vhost lib.

vDPA needs to create different containers for different devices, thus this
patch set adds some APIs in eal/vfio to support multiple container, e.g.
- rte_vfio_create_container
- rte_vfio_destroy_container
- rte_vfio_bind_group_no
- rte_vfio_unbind_group_no
By this extension, a device can be put into a new specific container, rather
than the previous default container.

v2:
- Rename function pci_get_kernel_driver_by_path to rte_pci_device_kdriver_name
  to make the API generic cross Linux and BSD, make it as EXPERIMENTAL.
- Rebase on Zhihong's vDPA v3 patch set.
- Minor code cleanup on vfio extension.

Junjie Chen (1):
  eal/vfio: add support for multiple container

Xiao Wang (2):
  bus/pci: expose sysfs parsing API
  net/ifcvf: add ifcvf driver

 config/common_base                       |    6 +
 config/common_linuxapp                   |    1 +
 drivers/bus/pci/Makefile                 |    2 +
 drivers/bus/pci/bsd/pci.c                |   14 +
 drivers/bus/pci/linux/pci.c              |   22 +-
 drivers/bus/pci/rte_bus_pci.h            |   32 +
 drivers/bus/pci/rte_bus_pci_version.map  |    8 +
 drivers/net/Makefile                     |    1 +
 drivers/net/ifcvf/Makefile               |   40 +
 drivers/net/ifcvf/base/ifcvf.c           |  329 ++++++++
 drivers/net/ifcvf/base/ifcvf.h           |  156 ++++
 drivers/net/ifcvf/base/ifcvf_osdep.h     |   52 ++
 drivers/net/ifcvf/ifcvf_ethdev.c         | 1240 ++++++++++++++++++++++++++++++
 drivers/net/ifcvf/rte_ifcvf_version.map  |    4 +
 lib/librte_eal/bsdapp/eal/eal.c          |   51 +-
 lib/librte_eal/common/include/rte_vfio.h |  117 ++-
 lib/librte_eal/linuxapp/eal/eal_vfio.c   |  553 ++++++++++---
 lib/librte_eal/linuxapp/eal/eal_vfio.h   |    2 +
 lib/librte_eal/rte_eal_version.map       |    7 +
 mk/rte.app.mk                            |    1 +
 20 files changed, 2527 insertions(+), 111 deletions(-)
 create mode 100644 drivers/net/ifcvf/Makefile
 create mode 100644 drivers/net/ifcvf/base/ifcvf.c
 create mode 100644 drivers/net/ifcvf/base/ifcvf.h
 create mode 100644 drivers/net/ifcvf/base/ifcvf_osdep.h
 create mode 100644 drivers/net/ifcvf/ifcvf_ethdev.c
 create mode 100644 drivers/net/ifcvf/rte_ifcvf_version.map

-- 
2.15.1



More information about the dev mailing list