
Add bit 1 for pvpanic. This bit means that guest hits a panic, but guest wants to handle error by itself. Typical case: Linux guest runs kdump in panic. It will help us to separate the abnormal reboot from normal operation. Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20200114023102.612548-2-pizhenwei@bytedance.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
44 lines
1.5 KiB
Plaintext
44 lines
1.5 KiB
Plaintext
PVPANIC DEVICE
|
|
==============
|
|
|
|
pvpanic device is a simulated ISA device, through which a guest panic
|
|
event is sent to qemu, and a QMP event is generated. This allows
|
|
management apps (e.g. libvirt) to be notified and respond to the event.
|
|
|
|
The management app has the option of waiting for GUEST_PANICKED events,
|
|
and/or polling for guest-panicked RunState, to learn when the pvpanic
|
|
device has fired a panic event.
|
|
|
|
ISA Interface
|
|
-------------
|
|
|
|
pvpanic exposes a single I/O port, by default 0x505. On read, the bits
|
|
recognized by the device are set. Software should ignore bits it doesn't
|
|
recognize. On write, the bits not recognized by the device are ignored.
|
|
Software should set only bits both itself and the device recognize.
|
|
|
|
Bit Definition
|
|
--------------
|
|
bit 0: setting it indicates a guest panic has happened.
|
|
bit 1: named crashloaded. setting it indicates a guest panic and run
|
|
kexec to handle error by guest itself.
|
|
|
|
ACPI Interface
|
|
--------------
|
|
|
|
pvpanic device is defined with ACPI ID "QEMU0001". Custom methods:
|
|
|
|
RDPT: To determine whether guest panic notification is supported.
|
|
Arguments: None
|
|
Return: Returns a byte, bit 0 set to indicate guest panic
|
|
notification is supported. Other bits are reserved and
|
|
should be ignored.
|
|
|
|
WRPT: To send a guest panic event
|
|
Arguments: Arg0 is a byte, with bit 0 set to indicate guest panic has
|
|
happened. Other bits are reserved and should be cleared.
|
|
Return: None
|
|
|
|
The ACPI device will automatically refer to the right port in case it
|
|
is modified.
|