Convert docs/specs/pvpanic.txt to rST format. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20230927151205.70930-5-peter.maydell@linaro.org Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
PVPANIC DEVICE
 | 
						|
==============
 | 
						|
 | 
						|
pvpanic device is a simulated 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.
 | 
						|
 | 
						|
The pvpanic device can be implemented as an ISA device (using IOPORT) or as a
 | 
						|
PCI device.
 | 
						|
 | 
						|
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
 | 
						|
  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.
 | 
						|
 | 
						|
PCI Interface
 | 
						|
-------------
 | 
						|
 | 
						|
The PCI interface is similar to the ISA interface except that it uses an MMIO
 | 
						|
address space provided by its BAR0, 1 byte long. Any machine with a PCI bus
 | 
						|
can enable a pvpanic device by adding ``-device pvpanic-pci`` to the command
 | 
						|
line.
 | 
						|
 | 
						|
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, with the same semantics as the I/O port interface.
 | 
						|
 | 
						|
WRPT
 | 
						|
~~~~
 | 
						|
 | 
						|
To send a guest panic event.
 | 
						|
 | 
						|
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
 | 
						|
is modified.
 |