Loading Documentation/virt/kvm/api.rst +10 −0 Original line number Diff line number Diff line Loading @@ -6737,3 +6737,13 @@ vcpu_info is set. The KVM_XEN_HVM_CONFIG_RUNSTATE flag indicates that the runstate-related features KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR/_CURRENT/_DATA/_ADJUST are supported by the KVM_XEN_VCPU_SET_ATTR/KVM_XEN_VCPU_GET_ATTR ioctls. 8.31 KVM_CAP_PTP_KVM -------------------- :Architectures: arm64 This capability indicates that the KVM virtual PTP service is supported in the host. A VMM can check whether the service is available to the guest on migration. Documentation/virt/kvm/arm/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,4 @@ ARM hyp-abi psci pvtime ptp_kvm Documentation/virt/kvm/arm/ptp_kvm.rst 0 → 100644 +25 −0 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 PTP_KVM support for arm/arm64 ============================= PTP_KVM is used for high precision time sync between host and guests. It relies on transferring the wall clock and counter value from the host to the guest using a KVM-specific hypercall. * ARM_SMCCC_HYP_KVM_PTP_FUNC_ID: 0x86000001 This hypercall uses the SMC32/HVC32 calling convention: ARM_SMCCC_HYP_KVM_PTP_FUNC_ID ============== ======== ===================================== Function ID: (uint32) 0x86000001 Arguments: (uint32) KVM_PTP_VIRT_COUNTER(0) KVM_PTP_PHYS_COUNTER(1) Return Values: (int32) NOT_SUPPORTED(-1) on error, or (uint32) Upper 32 bits of wall clock time (r0) (uint32) Lower 32 bits of wall clock time (r1) (uint32) Upper 32 bits of counter (r2) (uint32) Lower 32 bits of counter (r3) Endianness: No Restrictions. ============== ======== ===================================== arch/arm/include/asm/hypervisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -4,4 +4,7 @@ #include <asm/xen/hypervisor.h> void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); #endif arch/arm64/include/asm/hypervisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -4,4 +4,7 @@ #include <asm/xen/hypervisor.h> void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); #endif Loading
Documentation/virt/kvm/api.rst +10 −0 Original line number Diff line number Diff line Loading @@ -6737,3 +6737,13 @@ vcpu_info is set. The KVM_XEN_HVM_CONFIG_RUNSTATE flag indicates that the runstate-related features KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR/_CURRENT/_DATA/_ADJUST are supported by the KVM_XEN_VCPU_SET_ATTR/KVM_XEN_VCPU_GET_ATTR ioctls. 8.31 KVM_CAP_PTP_KVM -------------------- :Architectures: arm64 This capability indicates that the KVM virtual PTP service is supported in the host. A VMM can check whether the service is available to the guest on migration.
Documentation/virt/kvm/arm/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,4 @@ ARM hyp-abi psci pvtime ptp_kvm
Documentation/virt/kvm/arm/ptp_kvm.rst 0 → 100644 +25 −0 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 PTP_KVM support for arm/arm64 ============================= PTP_KVM is used for high precision time sync between host and guests. It relies on transferring the wall clock and counter value from the host to the guest using a KVM-specific hypercall. * ARM_SMCCC_HYP_KVM_PTP_FUNC_ID: 0x86000001 This hypercall uses the SMC32/HVC32 calling convention: ARM_SMCCC_HYP_KVM_PTP_FUNC_ID ============== ======== ===================================== Function ID: (uint32) 0x86000001 Arguments: (uint32) KVM_PTP_VIRT_COUNTER(0) KVM_PTP_PHYS_COUNTER(1) Return Values: (int32) NOT_SUPPORTED(-1) on error, or (uint32) Upper 32 bits of wall clock time (r0) (uint32) Lower 32 bits of wall clock time (r1) (uint32) Upper 32 bits of counter (r2) (uint32) Lower 32 bits of counter (r3) Endianness: No Restrictions. ============== ======== =====================================
arch/arm/include/asm/hypervisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -4,4 +4,7 @@ #include <asm/xen/hypervisor.h> void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); #endif
arch/arm64/include/asm/hypervisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -4,4 +4,7 @@ #include <asm/xen/hypervisor.h> void kvm_init_hyp_services(void); bool kvm_arm_hyp_service_available(u32 func_id); #endif