mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
KVM: arm64: Document KVM_ARM_SET_CNT_OFFSETS and co
Add some basic documentation on the effects of KVM_ARM_SET_CNT_OFFSETS. Reviewed-by: Colton Lewis <coltonlewis@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20230330174800.2677007-16-maz@kernel.org
This commit is contained in:
parent
476fcd4b7b
commit
1935d34afa
1 changed files with 38 additions and 0 deletions
|
@ -6029,6 +6029,44 @@ delivery must be provided via the "reg_aen" struct.
|
|||
The "pad" and "reserved" fields may be used for future extensions and should be
|
||||
set to 0s by userspace.
|
||||
|
||||
4.138 KVM_ARM_SET_COUNTER_OFFSET
|
||||
--------------------------------
|
||||
|
||||
:Capability: KVM_CAP_COUNTER_OFFSET
|
||||
:Architectures: arm64
|
||||
:Type: vm ioctl
|
||||
:Parameters: struct kvm_arm_counter_offset (in)
|
||||
:Returns: 0 on success, < 0 on error
|
||||
|
||||
This capability indicates that userspace is able to apply a single VM-wide
|
||||
offset to both the virtual and physical counters as viewed by the guest
|
||||
using the KVM_ARM_SET_CNT_OFFSET ioctl and the following data structure:
|
||||
|
||||
::
|
||||
|
||||
struct kvm_arm_counter_offset {
|
||||
__u64 counter_offset;
|
||||
__u64 reserved;
|
||||
};
|
||||
|
||||
The offset describes a number of counter cycles that are subtracted from
|
||||
both virtual and physical counter views (similar to the effects of the
|
||||
CNTVOFF_EL2 and CNTPOFF_EL2 system registers, but only global). The offset
|
||||
always applies to all vcpus (already created or created after this ioctl)
|
||||
for this VM.
|
||||
|
||||
It is userspace's responsibility to compute the offset based, for example,
|
||||
on previous values of the guest counters.
|
||||
|
||||
Any value other than 0 for the "reserved" field may result in an error
|
||||
(-EINVAL) being returned. This ioctl can also return -EBUSY if any vcpu
|
||||
ioctl is issued concurrently.
|
||||
|
||||
Note that using this ioctl results in KVM ignoring subsequent userspace
|
||||
writes to the CNTVCT_EL0 and CNTPCT_EL0 registers using the SET_ONE_REG
|
||||
interface. No error will be returned, but the resulting offset will not be
|
||||
applied.
|
||||
|
||||
5. The kvm_run structure
|
||||
========================
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue