pvpanic: implement crashloaded event handling

Handle bit 1 write, then post event to monitor.

Suggested by Paolo, declear a new event, using GUEST_PANICKED could
cause upper layers to react by shutting down or rebooting the guest.

In advance for extention, add GuestPanicInformation in event message.

Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Message-Id: <20200114023102.612548-3-pizhenwei@bytedance.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
zhenwei pi 2020-01-14 10:31:02 +08:00 committed by Paolo Bonzini
parent 600d7b47e8
commit 7dc58deea7
5 changed files with 52 additions and 12 deletions

View file

@ -19,9 +19,10 @@ 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.
bit 0: a guest panic has happened and should be processed by the host
bit 1: a guest panic has happened and will be handled by the guest;
the host should record it or report it, but should not affect
the execution of the guest.
ACPI Interface
--------------
@ -30,13 +31,12 @@ 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.
Return: Returns a byte, with the same semantics as the I/O port
interface.
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.
Arguments: Arg0 is a byte to be written, with the same semantics as
the I/O interface.
Return: None
The ACPI device will automatically refer to the right port in case it