Re: [PATCH 9/9] arm64: Retrieve stolen time as paravirtualized guest
From: Marc Zyngier <maz@kernel.org>
Date: 2019-08-08 15:49:51
Also in:
kvm, kvmarm, linux-doc, lkml
On 08/08/2019 16:29, Steven Price wrote:
On 04/08/2019 10:53, Marc Zyngier wrote:quoted
On Fri, 2 Aug 2019 15:50:17 +0100 Steven Price [off-list ref] wrote:quoted
Enable paravirtualization features when running under a hypervisor supporting the PV_TIME_ST hypercall. For each (v)CPU, we ask the hypervisor for the location of a shared page which the hypervisor will use to report stolen time to us. We set pv_time_ops to the stolen time function which simply reads the stolen value from the shared page for a VCPU. We guarantee single-copy atomicity using READ_ONCE which means we can also read the stolen time for another VCPU than the currently running one while it is potentially being updated by the hypervisor. Signed-off-by: Steven Price <steven.price@arm.com> --- arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/kvm.c | 155 +++++++++++++++++++++++++++++++++++++
[...]
quoted
quoted
+static int __init kvm_guest_init(void) +{ + int ret = 0; + + if (!has_kvm_steal_clock()) + return 0; + + ret = kvm_arm_init_stolen_time(); + if (ret) + return ret; + + pv_ops.time.steal_clock = kvm_steal_clock; + + static_key_slow_inc(¶virt_steal_enabled); + if (steal_acc) + static_key_slow_inc(¶virt_steal_rq_enabled); + + pr_info("using stolen time PV\n"); + + return 0; +} +early_initcall(kvm_guest_init);Is there any reason why we wouldn't directly call into this rather than using an initcall?I'm not sure where the direct call would go - any pointers?
I'd be temped to say arch/arm64/kernel/time.c:time_init(), provided that there is no issue with the CPU hotplug lock (I remember hitting that a while ago). M. -- Jazz is not dead, it just smells funny... _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel