[dpdk-dev] [PATCH 0/9] support SW assisted VDPA live migration
Xiao Wang
xiao.w.wang at intel.com
Wed Nov 28 10:45:58 CET 2018
In the previous VDPA implementation we have enabled live migration support
by HW accelerator doing all the stuff, including dirty page logging and
device status report/restore. In this mode VDPA sample daemon and device
driver just takes care of the control path and does not involve in data
path, so there's almost 0 CPU resource usage. This mode requires device
to have dirty page logging capability.
This patch series adds live migration support for devices without logging
capability. VDPA driver could set up a relay thread standing between the
guest and device when live migration happens, this relay intervenes into
the communication between guest virtio driver and physical virtio
accelerator, it helps device to do a vring relay and passingly log dirty
pages. Thus some CPU resource will be consumed in this scenario, percentage
depending on the network throughput.
Some new helpers are added into vhost lib for this VDPA SW fallback:
- rte_vhost_host_notifier_ctrl, to enable/disable the VDPA direct-IO
datapath.
- rte_vdpa_relay_avail_ring, to relay the available ring from guest vring
to mediate vring.
- rte_vdpa_relay_used_ring, to relay the used ring from mediate vring to
guest vring.
Some existing helpers are also leveraged for SW fallback setup, like VFIO
interrupt configuration, IOMMU table programming, etc.
This patch enables this SW assisted VDPA live migration in ifc driver.
Since ifcvf also supports HW dirty page logging, we add a new devarg
for user to select if the SW mode is used or not.
Xiao Wang (9):
vhost: provide helper for host notifier ctrl
vhost: provide helpers for virtio ring relay
net/ifc: dump debug message for error
net/ifc: store only registered device instance
net/ifc: detect if VDPA mode is specified
net/ifc: add devarg for LM mode
net/ifc: use lib API for used ring logging
net/ifc: support SW assisted VDPA live migration
doc: update ifc NIC document
doc/guides/nics/ifc.rst | 7 +
drivers/net/ifc/base/ifcvf.h | 1 +
drivers/net/ifc/ifcvf_vdpa.c | 463 ++++++++++++++++++++++++++++++---
lib/librte_vhost/rte_vdpa.h | 56 ++++
lib/librte_vhost/rte_vhost_version.map | 3 +
lib/librte_vhost/vdpa.c | 173 ++++++++++++
lib/librte_vhost/vhost.c | 3 +-
lib/librte_vhost/vhost.h | 40 +++
lib/librte_vhost/vhost_user.c | 7 +-
lib/librte_vhost/virtio_net.c | 39 ---
10 files changed, 714 insertions(+), 78 deletions(-)
--
2.15.1
More information about the dev
mailing list