Re: [PATCH] [11/20] x86: Use the correct cpuid method to detect MWAIT support for C states

Ingo Molnar
2008-01-03T10:45:53Z

* Andi Kleen <ak@suse.de> wrote:

> +static int mwait_usable(const struct cpuinfo_x86 *c)
> +{
> + if (force_mwait)
> + return 1;
> + /* Any C1 states supported? */
> + return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
> +}
> +
> void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
> {
> - if (cpu_has(c, X86_FEATURE_MWAIT)) {
> + if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
> printk("monitor/mwait feature present.\n");

hm, why not clear FEATURE_MWAIT if it's "not usable"? That's the
standard approach we do for CPU features that do not work.

Ingo