Commit 186af6bb authored by Paolo Bonzini's avatar Paolo Bonzini

Documentation: kvm: reorder ARM-specific section about KVM_SYSTEM_EVENT_SUSPEND

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent baec4f5a
...@@ -6176,21 +6176,36 @@ Valid values for 'type' are: ...@@ -6176,21 +6176,36 @@ Valid values for 'type' are:
- KVM_SYSTEM_EVENT_SUSPEND -- the guest has requested a suspension of - KVM_SYSTEM_EVENT_SUSPEND -- the guest has requested a suspension of
the VM. the VM.
If KVM_CAP_SYSTEM_EVENT_DATA is present, the 'data' field can contain
architecture specific information for the system-level event. Only
the first `ndata` items (possibly zero) of the data array are valid.
- for arm64, data[0] is set to KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 if
the guest issued a SYSTEM_RESET2 call according to v1.1 of the PSCI
specification.
- for RISC-V, data[0] is set to the value of the second argument of the
``sbi_system_reset`` call.
Previous versions of Linux defined a `flags` member in this struct. The
field is now aliased to `data[0]`. Userspace can assume that it is only
written if ndata is greater than 0.
For arm/arm64: For arm/arm64:
-------------- --------------
KVM_SYSTEM_EVENT_SUSPEND exits are enabled with the KVM_SYSTEM_EVENT_SUSPEND exits are enabled with the
KVM_CAP_ARM_SYSTEM_SUSPEND VM capability. If a guest invokes the PSCI KVM_CAP_ARM_SYSTEM_SUSPEND VM capability. If a guest invokes the PSCI
SYSTEM_SUSPEND function, KVM will exit to userspace with this event SYSTEM_SUSPEND function, KVM will exit to userspace with this event
type. type.
It is the sole responsibility of userspace to implement the PSCI It is the sole responsibility of userspace to implement the PSCI
SYSTEM_SUSPEND call according to ARM DEN0022D.b 5.19 "SYSTEM_SUSPEND". SYSTEM_SUSPEND call according to ARM DEN0022D.b 5.19 "SYSTEM_SUSPEND".
KVM does not change the vCPU's state before exiting to userspace, so KVM does not change the vCPU's state before exiting to userspace, so
the call parameters are left in-place in the vCPU registers. the call parameters are left in-place in the vCPU registers.
Userspace is _required_ to take action for such an exit. It must Userspace is _required_ to take action for such an exit. It must
either: either:
- Honor the guest request to suspend the VM. Userspace can request - Honor the guest request to suspend the VM. Userspace can request
in-kernel emulation of suspension by setting the calling vCPU's in-kernel emulation of suspension by setting the calling vCPU's
...@@ -6202,21 +6217,6 @@ For arm/arm64: ...@@ -6202,21 +6217,6 @@ For arm/arm64:
- Deny the guest request to suspend the VM. See ARM DEN0022D.b 5.19.2 - Deny the guest request to suspend the VM. See ARM DEN0022D.b 5.19.2
"Caller responsibilities" for possible return values. "Caller responsibilities" for possible return values.
If KVM_CAP_SYSTEM_EVENT_DATA is present, the 'data' field can contain
architecture specific information for the system-level event. Only
the first `ndata` items (possibly zero) of the data array are valid.
- for arm64, data[0] is set to KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 if
the guest issued a SYSTEM_RESET2 call according to v1.1 of the PSCI
specification.
- for RISC-V, data[0] is set to the value of the second argument of the
``sbi_system_reset`` call.
Previous versions of Linux defined a `flags` member in this struct. The
field is now aliased to `data[0]`. Userspace can assume that it is only
written if ndata is greater than 0.
:: ::
/* KVM_EXIT_IOAPIC_EOI */ /* KVM_EXIT_IOAPIC_EOI */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment