summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorzhenwei pi <pizhenwei@bytedance.com>2020-02-04 15:41:00 +0800
committerDaniel P. Berrangé <berrange@redhat.com>2020-02-07 14:05:25 +0000
commit26badd13e8f1931a9a03e3b1ca0620bb0063b856 (patch)
tree32308532c2d879fdde4cff1374ccd4f5c3052e23 /examples
parent039787c71a2bee6e60ddf5cb0515c0cdb85dd20b (diff)
downloadlibvirt-26badd13e8f1931a9a03e3b1ca0620bb0063b856.tar.gz
qemu: support Panic Crashloaded event handling
Pvpanic device supports bit 1 as crashloaded event, it means that guest actually panicked and run kexec to handle error by guest side. Handle crashloaded as a lifecyle event in libvirt. Test case: Guest side: before testing, we need make sure kdump is enabled, 1, build new pvpanic driver (with commit from upstream e0b9a42735f2672ca2764cfbea6e55a81098d5ba 191941692a3d1b6a9614502b279be062926b70f5) 2, insmod new kmod 3, enable crash_kexec_post_notifiers, # echo 1 > /sys/module/kernel/parameters/crash_kexec_post_notifiers 4, trigger kernel panic # echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger Host side: 1, build new qemu with pvpanic patches (with commit from upstream 600d7b47e8f5085919fd1d1157f25950ea8dbc11 7dc58deea79a343ac3adc5cadb97215086054c86) 2, build libvirt with this patch 3, handle lifecycle event and trigger guest side panic # virsh event stretch --event lifecycle event 'lifecycle' for domain stretch: Crashed Crashloaded events received: 1 Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/c/misc/event-test.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/examples/c/misc/event-test.c b/examples/c/misc/event-test.c
index 7e48cecc92..52caa8ffa8 100644
--- a/examples/c/misc/event-test.c
+++ b/examples/c/misc/event-test.c
@@ -273,6 +273,9 @@ eventDetailToString(int event,
case VIR_DOMAIN_EVENT_CRASHED_PANICKED:
return "Panicked";
+ case VIR_DOMAIN_EVENT_CRASHED_CRASHLOADED:
+ return "Crashloaded";
+
case VIR_DOMAIN_EVENT_CRASHED_LAST:
break;
}