[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 17/73] vdpa: add vhost_vdpa->suspended parameter
From: |
Michael S. Tsirkin |
Subject: |
[PULL 17/73] vdpa: add vhost_vdpa->suspended parameter |
Date: |
Tue, 7 Mar 2023 20:11:42 -0500 |
From: Eugenio Pérez <eperezma@redhat.com>
This allows vhost_vdpa to track if it is safe to get the vring base from
the device or not. If it is not, vhost can fall back to fetch idx from
the guest buffer again.
No functional change intended in this patch, later patches will use this
field.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Message-Id: <20230303172445.1089785-6-eperezma@redhat.com>
Tested-by: Lei Yang <leiyang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
include/hw/virtio/vhost-vdpa.h | 2 ++
hw/virtio/vhost-vdpa.c | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
index 7997f09a8d..4a7d396674 100644
--- a/include/hw/virtio/vhost-vdpa.h
+++ b/include/hw/virtio/vhost-vdpa.h
@@ -42,6 +42,8 @@ typedef struct vhost_vdpa {
bool shadow_vqs_enabled;
/* Vdpa must send shadow addresses as IOTLB key for data queues, not GPA */
bool shadow_data;
+ /* Device suspended successfully */
+ bool suspended;
/* IOVA mapping used by the Shadow Virtqueue */
VhostIOVATree *iova_tree;
GPtrArray *shadow_vqs;
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 1550b1e26a..517e3cdc8d 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -1193,6 +1193,14 @@ static int vhost_vdpa_get_vring_base(struct vhost_dev
*dev,
return 0;
}
+ if (!v->suspended) {
+ /*
+ * Cannot trust in value returned by device, let vhost recover used
+ * idx from guest.
+ */
+ return -1;
+ }
+
ret = vhost_vdpa_call(dev, VHOST_GET_VRING_BASE, ring);
trace_vhost_vdpa_get_vring_base(dev, ring->index, ring->num);
return ret;
--
MST
- [PULL 07/73] hmp: add cryptodev info command, (continued)
- [PULL 07/73] hmp: add cryptodev info command, Michael S. Tsirkin, 2023/03/07
- [PULL 08/73] cryptodev: Use CryptoDevBackendOpInfo for operation, Michael S. Tsirkin, 2023/03/07
- [PULL 09/73] cryptodev: Account statistics, Michael S. Tsirkin, 2023/03/07
- [PULL 10/73] cryptodev: support QoS, Michael S. Tsirkin, 2023/03/07
- [PULL 11/73] cryptodev: Support query-stats QMP command, Michael S. Tsirkin, 2023/03/07
- [PULL 12/73] MAINTAINERS: add myself as the maintainer for cryptodev, Michael S. Tsirkin, 2023/03/07
- [PULL 13/73] vdpa net: move iova tree creation from init to start, Michael S. Tsirkin, 2023/03/07
- [PULL 14/73] vdpa: Remember last call fd set, Michael S. Tsirkin, 2023/03/07
- [PULL 15/73] vdpa: Negotiate _F_SUSPEND feature, Michael S. Tsirkin, 2023/03/07
- [PULL 16/73] vdpa: rewind at get_base, not set_base, Michael S. Tsirkin, 2023/03/07
- [PULL 17/73] vdpa: add vhost_vdpa->suspended parameter,
Michael S. Tsirkin <=
- [PULL 18/73] vdpa: add vhost_vdpa_suspend, Michael S. Tsirkin, 2023/03/07
- [PULL 19/73] vdpa: move vhost reset after get vring base, Michael S. Tsirkin, 2023/03/07
- [PULL 20/73] vdpa: add vdpa net migration state notifier, Michael S. Tsirkin, 2023/03/07
- [PULL 21/73] vdpa: disable RAM block discard only for the first device, Michael S. Tsirkin, 2023/03/07
- [PULL 22/73] vdpa net: block migration if the device has CVQ, Michael S. Tsirkin, 2023/03/07
- [PULL 24/73] vdpa: block migration if SVQ does not admit a feature, Michael S. Tsirkin, 2023/03/07
- [PULL 26/73] vdpa: return VHOST_F_LOG_ALL in vhost-vdpa devices, Michael S. Tsirkin, 2023/03/07
- [PULL 23/73] vdpa: block migration if device has unsupported features, Michael S. Tsirkin, 2023/03/07
- [PULL 28/73] tests: acpi: whitelist new q35.noacpihp test and pc.hpbrroot, Michael S. Tsirkin, 2023/03/07
- [PULL 29/73] tests: acpi: add test_acpi_q35_tcg_no_acpi_hotplug test and extend test_acpi_piix4_no_acpi_pci_hotplug, Michael S. Tsirkin, 2023/03/07