x86/time: change initiation of the calibration timer
authorJan Beulich <jbeulich@suse.com>
Fri, 19 Feb 2021 16:20:46 +0000 (17:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 19 Feb 2021 16:20:46 +0000 (17:20 +0100)
commitf954a1bf5f74ad6edce361d1bf1a29137ff374e8
tree58c5bdddc7dfdfbfa06972a40c35b5e00f05505c
parent4dc1815991420b809ce18dddfdf9c0af48944204
x86/time: change initiation of the calibration timer

Setting the timer a second (EPOCH) into the future at a random point
during boot (prior to bringing up APs and prior to launching Dom0) does
not yield predictable results: The timer may expire while we're still
bringing up APs (too early) or when Dom0 already boots (too late).
Instead invoke the timer handler function explicitly at a predictable
point in time, once we've established the rendezvous function to use
(and hence also once all APs are online). This will, through the raising
and handling of TIMER_SOFTIRQ, then also have the effect of arming the
timer.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
xen/arch/x86/time.c