numam-dpdk/config
Xiao Wang a3f8150eac net/ifcvf: add ifcvf vDPA driver
The IFCVF vDPA (vhost data path acceleration) driver provides support for
the Intel FPGA 100G VF (IFCVF). IFCVF's datapath is virtio ring compatible,
it works as a HW vhost backend which can send/receive packets to/from
virtio directly by DMA.

Different VF devices serve different virtio frontends which are in
different VMs, so each VF needs to have its own DMA address translation
service. During the driver probe a new container is created, with this
container vDPA driver can program DMA remapping table with the VM's memory
region information.

Key vDPA driver ops implemented:

- ifcvf_dev_config:
  Enable VF data path with virtio information provided by vhost lib,
  including IOMMU programming to enable VF DMA to VM's memory, VFIO
  interrupt setup to route HW interrupt to virtio driver, create notify
  relay thread to translate virtio driver's kick to a MMIO write onto HW,
  HW queues configuration.

- ifcvf_dev_close:
  Revoke all the setup in ifcvf_dev_config.

Live migration feature is supported by IFCVF and this driver enables
it. For the dirty page logging, VF helps to log for packet buffer write,
driver helps to make the used ring as dirty when device stops.

Because vDPA driver needs to set up MSI-X vector to interrupt the
guest, only vfio-pci is supported currently.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-27 15:54:55 +01:00
..
arm build: fix default arm64 instruction level 2018-04-17 16:40:09 +02:00
x86 build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
common_armv8a_linuxapp config: add dpaaX build for all Linux platforms 2018-03-15 17:44:16 +01:00
common_base net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
common_bsdapp config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
common_linuxapp net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
defconfig_arm64-armv8a-linuxapp-clang config: use SPDX tag for Cavium copyright files 2018-01-09 16:19:01 +01:00
defconfig_arm64-armv8a-linuxapp-gcc config: use SPDX tag for Cavium copyright files 2018-01-09 16:19:01 +01:00
defconfig_arm64-dpaa2-linuxapp-gcc config: remove useless lines for DPAA2 2018-04-04 00:03:25 +02:00
defconfig_arm64-dpaa-linuxapp-gcc crypto/dpaa_sec: support dynamic logging 2018-04-23 18:20:10 +01:00
defconfig_arm64-stingray-linuxapp-gcc net/bnxt: introduce Broadcom Stingray 2018-04-14 00:59:41 +02:00
defconfig_arm64-thunderx-linuxapp-gcc config/thunderx: disable C11 memory model ring 2018-01-29 16:40:01 +01:00
defconfig_arm64-xgene1-linuxapp-gcc config: use SPDX tag for Cavium copyright files 2018-01-09 16:19:01 +01:00
defconfig_arm-armv7a-linuxapp-gcc use SPDX tag for RehiveTech copyright files 2018-04-11 01:47:43 +02:00
defconfig_i686-native-linuxapp-gcc mem: replace memseg with memseg lists 2018-04-11 19:55:39 +02:00
defconfig_i686-native-linuxapp-icc mem: replace memseg with memseg lists 2018-04-11 19:55:39 +02:00
defconfig_ppc_64-power8-linuxapp-gcc net/bonding: enable in ppc64le 2017-07-31 19:58:41 +02:00
defconfig_x86_64-native-bsdapp-clang config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
defconfig_x86_64-native-bsdapp-gcc config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
defconfig_x86_64-native-linuxapp-clang config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
defconfig_x86_64-native-linuxapp-gcc config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
defconfig_x86_64-native-linuxapp-icc config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
defconfig_x86_x32-native-linuxapp-gcc mem: replace memseg with memseg lists 2018-04-11 19:55:39 +02:00
meson.build build: set toolchain info during meson configure 2018-04-17 16:09:43 +02:00
rte_config.h vfio: extend data structure for multi container 2018-04-27 15:54:55 +01:00