[dpdk-dev] [PATCH v4 00/10] support SW assisted VDPA live migration
Maxime Coquelin
maxime.coquelin at redhat.com
Tue Dec 18 15:01:57 CET 2018
On 12/14/18 10:16 PM, Xiao Wang wrote:
> 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_vring_avail, to relay the available request from guest vring
> to mediate vring.
> - rte_vdpa_relay_vring_used, to relay the used response 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.
>
> v4:
> * Add a patch to remove the unused vhost internal API: vhost_detach_vdpa_device().
>
> v3:
> * Fix indent in relay code.
> * Fix the iova access mode issue of buffer check.
> * Rename the relay API to be more generic, and add more API note for used
> ring handling.
> * Add kvargs lib dependency in ifc driver.
> * Add commit message for the doc update patch for checkpatch warning.
>
> v2:
> * Reword the vdpa host notifier control API comment.
> * Make the vring relay API parameter as "void *" to accomodate the future
> potential new ring layout, e.g. packed ring.
> * Add parameter check for the new API.
> * Add memory barrier for ring idx update.
> * Remove the used ring logging in the relay.
> * Some comment fix and code cleaning according to Tiwei's comment.
> * Add release note update.
>
> Xiao Wang (10):
> vhost: remove unused internal API
> 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 | 8 +
> doc/guides/rel_notes/release_19_02.rst | 6 +
> drivers/net/ifc/Makefile | 1 +
> drivers/net/ifc/base/ifcvf.h | 1 +
> drivers/net/ifc/ifcvf_vdpa.c | 461 ++++++++++++++++++++++++++++++---
> lib/librte_vhost/rte_vdpa.h | 57 ++++
> lib/librte_vhost/rte_vhost_version.map | 3 +
> lib/librte_vhost/vdpa.c | 194 ++++++++++++++
> lib/librte_vhost/vhost.c | 13 -
> lib/librte_vhost/vhost.h | 41 ++-
> lib/librte_vhost/vhost_user.c | 7 +-
> lib/librte_vhost/virtio_net.c | 39 ---
> 12 files changed, 741 insertions(+), 90 deletions(-)
>
Applied to dpdk-next-virtio
Thanks,
Maxime
More information about the dev
mailing list