unsupported

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.