From 2d86de43b19e23b39709c34969c47cd310b12dc0 Mon Sep 17 00:00:00 2001 From: Igor Druzhinin Date: Thu, 5 Mar 2020 11:22:57 +0100 Subject: [PATCH] x86/time: report correct frequency of Xen PV clocksource MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The value of the counter represents the number of nanoseconds since host boot. That means the correct frequency is always 1GHz. This inconsistency caused time to go slower in PV shim on most platforms. Signed-off-by: Igor Druzhinin Reviewed-by: Roger Pau Monné master commit: c52bd545de461127f3ca67c48e8fef7145402035 master date: 2020-02-14 18:01:52 +0000 --- xen/arch/x86/time.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 9b28128baf..02648915b1 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -587,9 +587,7 @@ static int64_t __init init_xen_timer(struct platform_timesource *pts) if ( !xen_guest ) return 0; - pts->frequency = xen_timer_cpu_frequency(); - - return pts->frequency; + return xen_timer_cpu_frequency(); } static always_inline uint64_t read_cycle(const struct vcpu_time_info *info, @@ -643,6 +641,7 @@ static struct platform_timesource __initdata plt_xen_timer = { .id = "xen", .name = "XEN PV CLOCK", + .frequency = 1000000000ULL, .read_counter = read_xen_timer, .init = init_xen_timer, .resume = resume_xen_timer, -- 2.39.5