vdpa net ============ This document explains the setup and usage of the vdpa network device. The vdpa network device is a paravirtualized vdpa emulate device. Description ----------- VDPA net devices support dirty page bitmap mark and vring state saving and recovery. Users can use this VDPA device for live migration simulation testing in a nested virtualization environment. Registers layout ---------------- The vdpa device add live migrate registers layout as follow:: Offset Register Name Bitwidth Associated vq 0x0 LM_LOGGING_CTRL 4bits 0x10 LM_BASE_ADDR_LOW 32bits 0x14 LM_BASE_ADDR_HIGH 32bits 0x18 LM_END_ADDR_LOW 32bits 0x1c LM_END_ADDR_HIGH 32bits 0x20 LM_RING_STATE_OFFSET 32bits vq0 0x24 LM_RING_STATE_OFFSET 32bits vq1 0x28 LM_RING_STATE_OFFSET 32bits vq2 ...... 0x20+1023*4 LM_RING_STATE_OFFSET 32bits vq1023 These registers are extended at the end of the notify bar space. Architecture diagram -------------------- :: |------------------------------------------------------------------------| | guest-L1-user-space | | | | |----------------------------------------| | | [virtio-net driver] | | | ^ guest-L2-src(iommu=on) | | |--------------|-------------------------| | | | qemu-L2-src(viommu) | | [dpdk-vdpa]<->[vhost socket]<-+->[vhost-user backend(iommu=on)] | -------------------------------------------------------------------------- -------------------------------------------------------------------------- | ^ guest-L1-kernel-space | | | | | [VFIO] | | ^ | | | guest-L1-src(iommu=on) | --------|----------------------------------------------------------------- --------|----------------------------------------------------------------- | [vdpa net device(iommu=on)] [manager nic device] | | | | | | | | | | [tap device] qemu-L1-src(viommu) | | ------------------------------------------------+------------------------- | | --------------------- | | kernel net bridge |<----- | virbr0 |<---------------------------------- --------------------- | | | -------------------------------------------------------------------------- | | guest-L1-user-space | | | | | | |----------------------------------------| | | | [virtio-net driver] | | | | ^ guest-L2-dst(iommu=on) | | | |--------------|-------------------------| | | | | qemu-L2-dst(viommu) | | | [dpdk-vdpa]<->[vhost socket]<-+->[vhost-user backend(iommu=on)] | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | | ^ guest-L1-kernel-space | | | | | | | [VFIO] | | | ^ | | | | guest-L1-dst(iommu=on) | | --------|----------------------------------------------------------------- | --------|----------------------------------------------------------------- | | [vdpa net device(iommu=on)] [manager nic device]----------------+---- | | | | | | | [tap device] qemu-L1-dst(viommu) | -------------------------------------------------------------------------- Device properties ----------------- The Virtio vdpa device can be configured with the following properties: * ``vdpa=on`` open vdpa device emulated. Usages -------- This patch add virtio sriov support and vdpa live migrate support. You can open vdpa by set xml file as follow:: Limitations ----------- 1. Dependent on tap device with param ``vhost=off``. 2. Nested virtualization environment only supports ``q35`` machines. 3. Current only support split vring live migrate.