[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 25/26] vfio-user: add 'x-msg-timeout' option that specifies msg w
From: |
John Levon |
Subject: |
[PATCH 25/26] vfio-user: add 'x-msg-timeout' option that specifies msg wait times |
Date: |
Wed, 8 Jan 2025 11:50:31 +0000 |
From: Jagannathan Raman <jag.raman@oracle.com>
Originally-by: John Johnson <john.g.johnson@oracle.com>
Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Signed-off-by: John Levon <john.levon@nutanix.com>
---
hw/vfio/user-pci.c | 4 ++++
hw/vfio/user.c | 7 ++++---
hw/vfio/user.h | 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/hw/vfio/user-pci.c b/hw/vfio/user-pci.c
index 84802556e9..148e451dbf 100644
--- a/hw/vfio/user-pci.c
+++ b/hw/vfio/user-pci.c
@@ -42,6 +42,7 @@ struct VFIOUserPCIDevice {
bool no_direct_dma; /* disable shared mem for DMA */
bool send_queued; /* all sends are queued */
bool no_post; /* all regions write are sync */
+ uint32_t wait_time; /* timeout for message replies */
};
/*
@@ -277,6 +278,8 @@ static void vfio_user_pci_realize(PCIDevice *pdev, Error
**errp)
if (udev->no_post) {
proxy->flags |= VFIO_PROXY_NO_POST;
}
+ /* user specified or 5 sec default */
+ proxy->wait_time = udev->wait_time;
if (!vfio_user_validate_version(proxy, errp)) {
goto error;
@@ -412,6 +415,7 @@ static const Property vfio_user_pci_dev_properties[] = {
DEFINE_PROP_BOOL("no-direct-dma", VFIOUserPCIDevice, no_direct_dma, false),
DEFINE_PROP_BOOL("x-send-queued", VFIOUserPCIDevice, send_queued, false),
DEFINE_PROP_BOOL("x-no-posted-writes", VFIOUserPCIDevice, no_post, false),
+ DEFINE_PROP_UINT32("x-msg-timeout", VFIOUserPCIDevice, wait_time, 5000),
};
static void vfio_user_pci_dev_class_init(ObjectClass *klass, void *data)
diff --git a/hw/vfio/user.c b/hw/vfio/user.c
index 9fba36e196..217d0e9ea4 100644
--- a/hw/vfio/user.c
+++ b/hw/vfio/user.c
@@ -40,7 +40,6 @@
#define VFIO_USER_MAX_REGIONS 100
#define VFIO_USER_MAX_IRQS 50
-static int wait_time = 5000; /* wait up to 5 sec for busy servers */
static IOThread *vfio_user_iothread;
static void vfio_user_shutdown(VFIOUserProxy *proxy);
@@ -710,7 +709,8 @@ void vfio_user_send_wait(VFIOUserProxy *proxy, VFIOUserHdr
*hdr,
if (ret == 0) {
while (!msg->complete) {
- if (!qemu_cond_timedwait(&msg->cv, &proxy->lock, wait_time)) {
+ if (!qemu_cond_timedwait(&msg->cv, &proxy->lock,
+ proxy->wait_time)) {
VFIOUserMsgQ *list;
list = msg->pending ? &proxy->pending : &proxy->outgoing;
@@ -743,7 +743,8 @@ void vfio_user_wait_reqs(VFIOUserProxy *proxy)
msg->type = VFIO_MSG_WAIT;
proxy->last_nowait = NULL;
while (!msg->complete) {
- if (!qemu_cond_timedwait(&msg->cv, &proxy->lock, wait_time)) {
+ if (!qemu_cond_timedwait(&msg->cv, &proxy->lock,
+ proxy->wait_time)) {
VFIOUserMsgQ *list;
list = msg->pending ? &proxy->pending : &proxy->outgoing;
diff --git a/hw/vfio/user.h b/hw/vfio/user.h
index d9aa1759df..ff2aa005eb 100644
--- a/hw/vfio/user.h
+++ b/hw/vfio/user.h
@@ -72,6 +72,7 @@ typedef struct VFIOUserProxy {
uint64_t max_bitmap;
uint64_t migr_pgsize;
int flags;
+ uint32_t wait_time;
QemuCond close_cv;
AioContext *ctx;
QEMUBH *req_bh;
--
2.34.1
- [PATCH 22/26] vfio-user: no-mmap DMA support, (continued)
- [PATCH 22/26] vfio-user: no-mmap DMA support, John Levon, 2025/01/08
- [PATCH 19/26] vfio-user: forward msix BAR accesses to server, John Levon, 2025/01/08
- [PATCH 06/26] vfio: add region cache, John Levon, 2025/01/08
- [PATCH 01/26] vfio/container: pass MemoryRegion to DMA operations, John Levon, 2025/01/08
- [PATCH 24/26] vfio-user: pci reset, John Levon, 2025/01/08
- [PATCH 03/26] vfio/container: support VFIO_DMA_UNMAP_FLAG_ALL, John Levon, 2025/01/08
- [PATCH 16/26] vfio-user: region read/write, John Levon, 2025/01/08
- [PATCH 18/26] vfio-user: get and set IRQs, John Levon, 2025/01/08
- [PATCH 23/26] vfio-user: dma read/write operations, John Levon, 2025/01/08
- [PATCH 21/26] vfio-user: dma map/unmap operations, John Levon, 2025/01/08
- [PATCH 25/26] vfio-user: add 'x-msg-timeout' option that specifies msg wait times,
John Levon <=
- [PATCH 26/26] vfio-user: add coalesced posted writes, John Levon, 2025/01/08
- Re: [v7 00/26] vfio-user client, John Levon, 2025/01/23