mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 20:03:54 -06:00
hw/virtio: Add support for VDPA network simulation devices
This patch adds support for VDPA network simulation devices. The device is developed based on virtio-net and tap backend, and supports hardware live migration function. For more details, please refer to "docs/system/devices/vdpa-net.rst" Signed-off-by: Hao Chen <chenh@yusur.tech> Message-Id: <20240221073802.2888022-1-chenh@yusur.tech> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
043e127a12
commit
cd341fd1ff
9 changed files with 399 additions and 3 deletions
|
@ -1999,6 +1999,22 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf,
|
|||
goto err;
|
||||
}
|
||||
|
||||
/* Mark dirty page's bitmap of guest memory */
|
||||
if (vdev->lm_logging_ctrl == LM_ENABLE) {
|
||||
uint64_t chunk = elem->in_addr[i] / VHOST_LOG_CHUNK;
|
||||
/* Get chunk index */
|
||||
BitmapMemoryRegionCaches *caches = qatomic_rcu_read(&vdev->caches);
|
||||
uint64_t index = chunk / 8;
|
||||
uint64_t shift = chunk % 8;
|
||||
uint8_t val = 0;
|
||||
address_space_read_cached(&caches->bitmap, index, &val,
|
||||
sizeof(val));
|
||||
val |= 1 << shift;
|
||||
address_space_write_cached(&caches->bitmap, index, &val,
|
||||
sizeof(val));
|
||||
address_space_cache_invalidate(&caches->bitmap, index, sizeof(val));
|
||||
}
|
||||
|
||||
elems[i] = elem;
|
||||
lens[i] = total;
|
||||
i++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue