Messages in this thread | | | From | Pavel Tatashin <> | Date | Thu, 12 Jul 2018 21:57:39 -0400 | Subject | Re: [PATCH v13 06/18] x86/xen/time: initialize pv xen time in init_hypervisor_platform |
| |
> -void __ref xen_init_time_ops(void) > +void __init xen_init_time_ops(void) > { > pv_time_ops = xen_time_ops; > > @@ -542,17 +542,11 @@ void __init xen_hvm_init_time_ops(void) > return; > > if (!xen_feature(XENFEAT_hvm_safe_pvclock)) { > - printk(KERN_INFO "Xen doesn't support pvclock on HVM," > - "disable pv timer\n"); > + pr_info("Xen doesn't support pvclock on HVM, disable pv timer"); > return; > } > - > - pv_time_ops = xen_time_ops; > + xen_init_time_ops(); > x86_init.timers.setup_percpu_clockev = xen_time_init; > x86_cpuinit.setup_percpu_clockev = xen_hvm_setup_cpu_clockevents;
Boris reported a bug on HVM, which causes a panic in x86_late_time_init(). It is introduced here: xen_init_time_ops() sets: x86_init.timers.timer_init = xen_time_init; which was hpet_time_init() in HVM. However, we might not even need hpet here. Thus, adding x86_init.timers.timer_init = x86_init_noop; to the end of xen_hvm_init_time_ops() should be sufficient.
Thank you, Pavel
| |