Specify what the hypervisor should do if it can't successfully complete the
emulation of a guest instruction
Synopsis:
unsupported instruction | reference | register abort | fail | ignore
Description:
Only one type-action pair can be used per unsupported option
instance. Specify the option for each unsupported type you want to configure.
Types:
- instruction
- The hypervisor doesn't support emulation of the instruction. If unspecified,
this defaults to fail.
- reference
- The instruction references a memory (or IO port on x86) location to which
the guest doesn't have access. If unspecified, this defaults to
ignore.
- register
- The guest is attempting to use a system register (ARM) or MSR (x86) that the
hypervisor doesn't support. If unspecified, this defaults to
fail.
Actions:
- abort
- Display a message indicating the failure and guest state, then terminate the
qvm process instance hosting the offending
guest.
- fail
- Deliver an appropriate CPU exception to the offending guest.
- ignore
- Treat the instruction as a no-op, except in the case of guest attempts to
read from an unsupported memory or IO port location, which sets the
destination of the instruction to all one bits (~0).
If the hypervisor encounters a condition of a type for which no action has been
specified, the hypervisor uses its default action for that type.
Example:
The following configuration specifies that:
- if the guest hosted by the current VM attempts to use a register (ARM) or MSR
(x86) that the hypervisor doesn't support, the hypervisor will terminate the
qvm process hosting the guest
- if a guest instruction attempts to access a memory (or IO port on x86) location,
the hypervisor will deliver an appropriate CPU exception to the guest
unsupported register abort
unsupported reference fail
Note: The configuration doesn't specify the instruction type, so the
hypervisor will use its default configuration, which for this type is
fail.