 0c0cc13d31
			
		
	
	
		0c0cc13d31
		
	
	
	
	
		
			
			The missing functionality has been implemented now. This reverts commit e739d1935c461d0668057e9dbba9d06f728d29ec. Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> Message-Id: <20240527-pvpanic-shutdown-v8-8-5a28ec02558b@t-8ch.de> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 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.
 | |
| bit 2
 | |
|   a regular guest shutdown has happened and should be processed by the host
 | |
| 
 | |
| 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.
 |