libvirt/qemu-Support-retry-BLOCK_IO_ERROR-event.patch
Jiabo Feng 307ea8abab libvirt update to version 9.10.0-4:
- docs: Document CPU clusters
- docs: Improve documentation for CPU topology
- tests: Verify handling of CPU clusters in QMP data
- qemu: Make monitor aware of CPU clusters
- qemu: Use CPU clusters for guests
- qemu: Introduce QEMU_CAPS_SMP_CLUSTERS
- conf: Allow specifying CPU clusters
- conf: Report CPU clusters in capabilities XML
- tests: Add hostcpudata for machine with CPU clusters
- cpu_map: add kunpeng-920 features to arm features
- cpu/aarch64: enable host-model cpu for AArch64 architecture
- conf/domain_conf: pin the retry_interval and retry_timeout parameters to xml
- nodedev: fix potential heap use after free
- libvirt/conf: Set default values of retry fileds
- qemu: Support 'retry' BLOCK_IO_ERROR event.
- libvirt: Add 'retry' support for error policy
- vdpa: support vdpa device migrate
- vdpa: support vdpa device hot plug/unplug
- hostdev:Introduce vDPA device to hostdev subsystem as a new subtype
- node_device: fix leak of DIR*
- migration/multifd-pin: support migration multifd thread pin
- migration/multifd-pin: add qemu monitor callback functions
- migration/migration-pin: add domainMigrationPid for qemuMonitorCallbacks
- migration/migration-pin: add migrationpin for migration parameters
- migration/migration-pin: add qemu monitor callback functions
- migration/migration-pin:add some migration/multiFd params
- qemu: add pointer check in qemuMonitorLastError
- qemu: fix a concurrent operation situation
- test/commandtest: skip the test4 if the testcase is run in the container env

Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
2024-04-02 20:56:45 +08:00

70 lines
3.2 KiB
Diff

From e1a0ba5580ffb8d9de09885bef23b26d34b691c4 Mon Sep 17 00:00:00 2001
From: Jiahui Cen <cenjiahui@huawei.com>
Date: Thu, 25 Feb 2021 18:55:31 +0800
Subject: [PATCH] qemu: Support 'retry' BLOCK_IO_ERROR event.
Accept BLOCK_IO_ERROR event with action='retry' from qemu.
Signed-off-by: Jiahui Cen <cenjiahui@huawei.com>
Signed-off-by: Ying Fang <fangying1@huawei.com>
---
include/libvirt/libvirt-domain.h | 1 +
src/qemu/qemu_monitor_json.c | 2 +-
tools/virsh-domain-event.c | 8 ++++++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index a1902546bb..7d6117208b 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -4695,6 +4695,7 @@ typedef enum {
VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, /* No action, IO error ignored (Since: 0.8.0) */
VIR_DOMAIN_EVENT_IO_ERROR_PAUSE, /* Guest CPUs are paused (Since: 0.8.0) */
VIR_DOMAIN_EVENT_IO_ERROR_REPORT, /* IO error reported to guest OS (Since: 0.8.0) */
+ VIR_DOMAIN_EVENT_IO_ERROR_RETRY, /* Failed IO retried (Since: 6.2.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_DOMAIN_EVENT_IO_ERROR_LAST /* (Since: 0.9.10) */
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index a9133793f6..231a9d8a2b 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -685,7 +685,7 @@ static void qemuMonitorJSONHandleWatchdog(qemuMonitor *mon, virJSONValue *data)
VIR_ENUM_DECL(qemuMonitorIOErrorAction);
VIR_ENUM_IMPL(qemuMonitorIOErrorAction,
VIR_DOMAIN_EVENT_IO_ERROR_LAST,
- "ignore", "stop", "report",
+ "ignore", "stop", "report", "retry",
);
diff --git a/tools/virsh-domain-event.c b/tools/virsh-domain-event.c
index 6887c195a0..822d9e1e83 100644
--- a/tools/virsh-domain-event.c
+++ b/tools/virsh-domain-event.c
@@ -397,6 +397,10 @@ virshEventIOErrorPrint(virConnectPtr conn G_GNUC_UNUSED,
virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) report\n"),
virDomainGetName(dom), srcPath, devAlias);
break;
+ case VIR_DOMAIN_EVENT_IO_ERROR_RETRY:
+ virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) report\n"),
+ virDomainGetName(dom), srcPath, devAlias);
+ break;
case VIR_DOMAIN_EVENT_IO_ERROR_LAST:
default:
virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) unknown\n"),
@@ -458,6 +462,10 @@ virshEventIOErrorReasonPrint(virConnectPtr conn G_GNUC_UNUSED,
virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) report due to %4$s\n"),
virDomainGetName(dom), srcPath, devAlias, reason);
break;
+ case VIR_DOMAIN_EVENT_IO_ERROR_RETRY:
+ virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) report\n"),
+ virDomainGetName(dom), srcPath, devAlias);
+ break;
case VIR_DOMAIN_EVENT_IO_ERROR_LAST:
default:
virshEventPrintf(opaque, _("event 'io-error' for domain '%1$s': %2$s (%3$s) unknown due to %4$s\n"),
--
2.27.0