From: Jan Beulich Date: Mon, 24 Jan 2022 07:38:55 +0000 (+0100) Subject: x86/APIC: no need for timer calibration when using TDT X-Git-Tag: archive/raspbian/4.17.0-1+rpi1^2~33^2~1122 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0731a56c7c72;p=xen.git x86/APIC: no need for timer calibration when using TDT The only global effect of calibrate_APIC_clock() is the setting of "bus_scale"; the final __setup_APIC_LVTT(0) is (at best) redundant with the immediately following setup_APIC_timer() invocation. Yet "bus_scale" isn't used when using TDT. Avoid wasting 100ms for calibration in this case. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c index d7d5c15155..5d3e1f3952 100644 --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -1292,11 +1292,15 @@ void __init setup_boot_APIC_clock(void) check_deadline_errata(); + if ( !boot_cpu_has(X86_FEATURE_TSC_DEADLINE) ) + tdt_enable = false; + local_irq_save(flags); - calibrate_APIC_clock(); + if ( !tdt_enable || apic_verbosity ) + calibrate_APIC_clock(); - if ( tdt_enable && boot_cpu_has(X86_FEATURE_TSC_DEADLINE) ) + if ( tdt_enable ) { printk(KERN_DEBUG "TSC deadline timer enabled\n"); tdt_enabled = true;