diff options
author | zhenwei pi <pizhenwei@bytedance.com> | 2020-02-04 15:41:00 +0800 |
---|---|---|
committer | Daniel P. Berrangé <berrange@redhat.com> | 2020-02-07 14:05:25 +0000 |
commit | 26badd13e8f1931a9a03e3b1ca0620bb0063b856 (patch) | |
tree | 32308532c2d879fdde4cff1374ccd4f5c3052e23 /examples | |
parent | 039787c71a2bee6e60ddf5cb0515c0cdb85dd20b (diff) | |
download | libvirt-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.c | 3 |
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; } |