| 1 | PVPANIC DEVICE |
| 2 | ============== |
| 3 | |
| 4 | pvpanic device is a simulated device, through which a guest panic |
| 5 | event is sent to qemu, and a QMP event is generated. This allows |
| 6 | management apps (e.g. libvirt) to be notified and respond to the event. |
| 7 | |
| 8 | The management app has the option of waiting for GUEST_PANICKED events, |
| 9 | and/or polling for guest-panicked RunState, to learn when the pvpanic |
| 10 | device has fired a panic event. |
| 11 | |
| 12 | The pvpanic device can be implemented as an ISA device (using IOPORT) or as a |
| 13 | PCI device. |
| 14 | |
| 15 | ISA Interface |
| 16 | ------------- |
| 17 | |
| 18 | pvpanic exposes a single I/O port, by default 0x505. On read, the bits |
| 19 | recognized by the device are set. Software should ignore bits it doesn't |
| 20 | recognize. On write, the bits not recognized by the device are ignored. |
| 21 | Software should set only bits both itself and the device recognize. |
| 22 | |
| 23 | Bit Definition |
| 24 | ~~~~~~~~~~~~~~ |
| 25 | |
| 26 | bit 0 |
| 27 | a guest panic has happened and should be processed by the host |
| 28 | bit 1 |
| 29 | a guest panic has happened and will be handled by the guest; |
| 30 | the host should record it or report it, but should not affect |
| 31 | the execution of the guest. |
| 32 | bit 2 |
| 33 | a regular guest shutdown has happened and should be processed by the host |
| 34 | |
| 35 | PCI Interface |
| 36 | ------------- |
| 37 | |
| 38 | The PCI interface is similar to the ISA interface except that it uses an MMIO |
| 39 | address space provided by its BAR0, 1 byte long. Any machine with a PCI bus |
| 40 | can enable a pvpanic device by adding ``-device pvpanic-pci`` to the command |
| 41 | line. |
| 42 | |
| 43 | ACPI Interface |
| 44 | -------------- |
| 45 | |
| 46 | pvpanic device is defined with ACPI ID "QEMU0001". Custom methods: |
| 47 | |
| 48 | RDPT |
| 49 | ~~~~ |
| 50 | |
| 51 | To determine whether guest panic notification is supported. |
| 52 | |
| 53 | Arguments |
| 54 | None |
| 55 | Return |
| 56 | Returns a byte, with the same semantics as the I/O port interface. |
| 57 | |
| 58 | WRPT |
| 59 | ~~~~ |
| 60 | |
| 61 | To send a guest panic event. |
| 62 | |
| 63 | Arguments |
| 64 | Arg0 is a byte to be written, with the same semantics as the I/O interface. |
| 65 | Return |
| 66 | None |
| 67 | |
| 68 | The ACPI device will automatically refer to the right port in case it |
| 69 | is modified. |