On real time configuration with the null scheduler, we shouldn't interrupt the guest execution unless strictly necessary: the guest could be a real time guest (e.g. FreeRTOS) and interrupting its execution could lead to a missed deadline. The principal source of interruptions is IPIs.
When TSC is the chosen clocksource, we know it is reliable and synchronized across cpus and clusters. Thus, we can return early time_calibration because the calibration is not needed, removing the related Xen timer and IPIs. Also remove the master_stime write as it is unnecessary. Signed-off-by: Stefano Stabellini <stefano.stabell...@amd.com> --- Changes in v2: - simplify the patch simply by returning early if clocksource_is_tsc() - also remove setting r.master_stime as it is not needed --- xen/arch/x86/time.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 59129f419d..d72e640f72 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -2297,11 +2297,7 @@ static void cf_check time_calibration(void *unused) }; if ( clocksource_is_tsc() ) - { - local_irq_disable(); - r.master_stime = read_platform_stime(&r.master_tsc_stamp); - local_irq_enable(); - } + return; cpumask_copy(&r.cpu_calibration_map, &cpu_online_map); -- 2.25.1