Jan Beulich
2012-Oct-02 14:46 UTC
[PATCH] x86: get the MWAIT idle driver in sync with the ACPI one
.. with respect to behavior when there is no HPET broadcast support (for using the PIT broadcast instead, it requires explicitly enabling CPU idle management). Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/cpu/mwait-idle.c +++ b/xen/arch/x86/cpu/mwait-idle.c @@ -501,11 +501,14 @@ int __init mwait_idle_init(struct notifi return -ENODEV; err = mwait_idle_probe(); - if (!err) { - if (!boot_cpu_has(X86_FEATURE_ARAT)) - hpet_broadcast_init(); - if (!lapic_timer_init()) + if (!err && !boot_cpu_has(X86_FEATURE_ARAT)) { + hpet_broadcast_init(); + if (xen_cpuidle < 0 && !hpet_broadcast_is_available()) + err = -ENODEV; + else if(!lapic_timer_init()) err = -EINVAL; + if (err) + pr_debug(PREFIX "not used (%d)\n", err); } if (!err) { nfb->notifier_call = mwait_idle_cpu_init; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Keir Fraser
2012-Oct-02 17:00 UTC
Re: [PATCH] x86: get the MWAIT idle driver in sync with the ACPI one
On 02/10/2012 15:46, "Jan Beulich" <JBeulich@suse.com> wrote:> .. with respect to behavior when there is no HPET broadcast support > (for using the PIT broadcast instead, it requires explicitly enabling > CPU idle management). > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/arch/x86/cpu/mwait-idle.c > +++ b/xen/arch/x86/cpu/mwait-idle.c > @@ -501,11 +501,14 @@ int __init mwait_idle_init(struct notifi > return -ENODEV; > > err = mwait_idle_probe(); > - if (!err) { > - if (!boot_cpu_has(X86_FEATURE_ARAT)) > - hpet_broadcast_init(); > - if (!lapic_timer_init()) > + if (!err && !boot_cpu_has(X86_FEATURE_ARAT)) { > + hpet_broadcast_init(); > + if (xen_cpuidle < 0 && !hpet_broadcast_is_available()) > + err = -ENODEV; > + else if(!lapic_timer_init()) > err = -EINVAL; > + if (err) > + pr_debug(PREFIX "not used (%d)\n", err); > } > if (!err) { > nfb->notifier_call = mwait_idle_cpu_init; > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel