Documentation/kvm : Add documentation on Hypercalls and features used for PV spinlock
KVM_HC_KICK_CPU hypercall added to wakeup halted vcpu in paravirtual spinlock enabled guest. KVM_FEATURE_PV_UNHALT enables guest to check whether pv spinlock can be enabled in guest. Thanks Vatsa for rewriting KVM_HC_KICK_CPU Cc: Rob Landley <rob@landley.net> Signed-off-by: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com> Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com> Acked-by: Gleb Natapov <gleb@redhat.com> Acked-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Gleb Natapov <gleb@redhat.com>
This commit is contained in:
parent
24d2166beb
commit
9bc6cbebfe
|
@ -43,6 +43,10 @@ KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs
|
||||||
KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by
|
KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by
|
||||||
|| || writing to msr 0x4b564d02
|
|| || writing to msr 0x4b564d02
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
KVM_FEATURE_PV_UNHALT || 7 || guest checks this feature bit
|
||||||
|
|| || before enabling paravirtualized
|
||||||
|
|| || spinlock support.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
|
KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
|
||||||
|| || per-cpu warps are expected in
|
|| || per-cpu warps are expected in
|
||||||
|| || kvmclock.
|
|| || kvmclock.
|
||||||
|
|
|
@ -64,3 +64,17 @@ Purpose: To enable communication between the hypervisor and guest there is a
|
||||||
shared page that contains parts of supervisor visible register state.
|
shared page that contains parts of supervisor visible register state.
|
||||||
The guest can map this shared page to access its supervisor register through
|
The guest can map this shared page to access its supervisor register through
|
||||||
memory using this hypercall.
|
memory using this hypercall.
|
||||||
|
|
||||||
|
5. KVM_HC_KICK_CPU
|
||||||
|
------------------------
|
||||||
|
Architecture: x86
|
||||||
|
Status: active
|
||||||
|
Purpose: Hypercall used to wakeup a vcpu from HLT state
|
||||||
|
Usage example : A vcpu of a paravirtualized guest that is busywaiting in guest
|
||||||
|
kernel mode for an event to occur (ex: a spinlock to become available) can
|
||||||
|
execute HLT instruction once it has busy-waited for more than a threshold
|
||||||
|
time-interval. Execution of HLT instruction would cause the hypervisor to put
|
||||||
|
the vcpu to sleep until occurence of an appropriate event. Another vcpu of the
|
||||||
|
same guest can wakeup the sleeping vcpu by issuing KVM_HC_KICK_CPU hypercall,
|
||||||
|
specifying APIC ID (a1) of the vcpu to be woken up. An additional argument (a0)
|
||||||
|
is used in the hypercall for future use.
|
||||||
|
|
Loading…
Reference in New Issue