qemu/include/sysemu
Alejandro Jimenez c753e8e725 vl: Add option to avoid stopping VM upon guest panic
The current default action of pausing a guest after a panic event
is received leaves the responsibility to resume guest execution to the
management layer. The reasons for this behavior are discussed here:
https://lore.kernel.org/qemu-devel/52148F88.5000509@redhat.com/

However, in instances like the case of older guests (Linux and
Windows) using a pvpanic device but missing support for the
PVPANIC_CRASHLOADED event, and Windows guests using the hv-crash
enlightenment, it is desirable to allow the guests to continue
running after sending a PVPANIC_PANICKED event. This allows such
guests to proceed to capture a crash dump and automatically reboot
without intervention of a management layer.

Add an option to avoid stopping a VM after a panic event is received,
by passing:

-action panic=none

in the command line arguments, or during runtime by using an upcoming
QMP command.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
Message-Id: <1607705564-26264-3-git-send-email-alejandro.j.jimenez@oracle.com>
[Do not fix panic action in the variable, instead modify -no-shutdown. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-12-15 12:51:58 -05:00
..
accel.h sysemu/accel: Restrict machine methods to system-mode 2020-06-12 11:12:44 -04:00
arch_init.h target/avr: Register AVR support with the rest of QEMU 2020-07-11 11:02:05 +02:00
balloon.h qapi: Restrict balloon-related commands to machine code 2020-09-29 15:41:35 +02:00
block-backend.h block: Add blk_make_empty() 2020-05-18 19:05:25 +02:00
blockdev.h blockdev: Deprecate -drive with bogus interface type 2020-06-23 16:07:07 +02:00
cpu-throttle.h cpu-throttle: new module, extracted from cpus.c 2020-07-10 18:04:49 -04:00
cpu-timers.h cpus: prepare new CpusAccel cpu accelerator interface 2020-10-05 16:41:22 +02:00
cpus.h accel: move qtest CpusAccel functions to a common location 2020-10-24 07:23:19 +02:00
cryptodev-vhost-user.h cryptodev: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
cryptodev-vhost.h cryptodev: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
cryptodev.h cryptodev: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
device_tree.h device_tree: Constify compat in qemu_fdt_node_path() 2020-04-30 15:35:41 +01:00
dma.h dma: Let dma_memory_write() propagate MemTxResult 2020-12-10 12:15:02 -05:00
dump-arch.h dump: allow target to set the physical base 2016-01-15 14:40:25 +00:00
dump.h qapi: Split dump.json off misc.json 2019-07-02 13:37:00 +02:00
hax.h hax: remove hax specific functions from global includes 2020-10-05 16:41:22 +02:00
hostmem.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
hvf.h hvf: remove hvf specific functions from global includes 2020-10-05 16:41:22 +02:00
hw_accel.h cpus: prepare new CpusAccel cpu accelerator interface 2020-10-05 16:41:22 +02:00
iothread.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
kvm_int.h kvm: Move QOM macros to kvm.h 2020-08-27 14:04:55 -04:00
kvm.h kvm: Correct documentation of kvm_irqchip_*() 2020-10-14 15:28:54 -04:00
memory_mapping.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
numa.h numa: drop support for '-numa node' (without memory specified) 2020-09-30 19:09:20 +02:00
os-posix.h util: drop old utimensat() compat code 2017-05-25 10:30:14 +02:00
os-win32.h win32: Simplify gmtime_r detection not depends on if _POSIX_C_SOURCE are defined on msys2/mingw 2020-10-14 06:05:56 +02:00
qtest.h cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
replay.h replay: create temporary snapshot at debugger connection 2020-10-06 08:34:49 +02:00
reset.h hw: move reset handlers from vl.c to hw/core 2017-01-16 17:52:35 +01:00
rng-random.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
rng.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
runstate-action.h vl: Add option to avoid stopping VM upon guest panic 2020-12-15 12:51:58 -05:00
runstate.h vl: remove separate preconfig main_loop 2020-12-15 12:51:49 -05:00
seccomp.h sandbox: disable -sandbox if CONFIG_SECCOMP undefined 2018-06-01 13:44:15 +02:00
sev.h sev: add sev-inject-launch-secret 2020-12-10 17:33:17 -05:00
sysemu.h qmp: generalize watchdog-set-action to -no-reboot/-no-shutdown 2020-12-15 12:51:57 -05:00
tcg.h sysemu/tcg: Only declare tcg_allowed when TCG is available 2020-06-12 11:12:44 -04:00
tpm_backend.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
tpm_util.h tpm: Fix Lesser GPL version number 2020-11-15 16:44:18 +01:00
tpm.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
vhost-user-backend.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
watchdog.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
whpx.h WHPX: support for the kernel-irqchip on/off 2020-12-10 12:15:01 -05:00
xen-mapcache.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
xen.h sysemu/xen: Add missing 'exec/cpu-common.h' header for ram_addr_t type 2020-09-30 19:11:36 +02:00