commit 5209654a46ee ("x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD
systems") allows use of FFH for ACPI C1 but tools like cpupower and turbostat
display INTEL for the cstate description.
Output "AMD" for AMD systems with FFH for ACPI C1.
Signed-off-by: Prarit Bhargava <[email protected]>
Cc: Len Brown <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>
Cc: Pavel Machek <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
arch/x86/kernel/acpi/cstate.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c
index dde437f5d14f..f10d3c673519 100644
--- a/arch/x86/kernel/acpi/cstate.c
+++ b/arch/x86/kernel/acpi/cstate.c
@@ -76,6 +76,7 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
unsigned int edx_part;
unsigned int cstate_type; /* C-state type and not ACPI C-state type */
unsigned int num_cstate_subtype;
+ struct cpuinfo_x86 *c = &boot_cpu_data;
cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx);
@@ -107,9 +108,14 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
"Monitor-Mwait will be used to enter C-%d state\n",
cx->type);
}
- snprintf(cx->desc,
- ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
- cx->address);
+ if (c->x86_vendor == X86_VENDOR_INTEL)
+ snprintf(cx->desc,
+ ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
+ cx->address);
+ else
+ snprintf(cx->desc,
+ ACPI_CX_DESC_LEN, "ACPI FFH AMD MWAIT 0x%x",
+ cx->address);
out:
return retval;
}
--
2.14.4
On Wed 2018-08-08 13:47:35, Prarit Bhargava wrote:
> commit 5209654a46ee ("x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD
> systems") allows use of FFH for ACPI C1 but tools like cpupower and turbostat
> display INTEL for the cstate description.
>
> Output "AMD" for AMD systems with FFH for ACPI C1.
Um, is it good idea?
First, you are changing kernel API.
> @@ -107,9 +108,14 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
> "Monitor-Mwait will be used to enter C-%d state\n",
> cx->type);
> }
> - snprintf(cx->desc,
> - ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> - cx->address);
> + if (c->x86_vendor == X86_VENDOR_INTEL)
> + snprintf(cx->desc,
> + ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> + cx->address);
> + else
> + snprintf(cx->desc,
> + ACPI_CX_DESC_LEN, "ACPI FFH AMD MWAIT 0x%x",
> + cx->address);
Second, I read it as "Intel MWAIT" instruction is used. Yes, AMD cpu can
use Intel MWAIT, too...
Third, there are more CPU vendors out there.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
I think it is sufficient to simply delete the "INTEL" in that string.
In the unlikely event that this "change to a kernel API" breaks
something, we can add it back.
-Len
On Wed, Aug 8, 2018 at 3:59 PM Pavel Machek <[email protected]> wrote:
>
> On Wed 2018-08-08 13:47:35, Prarit Bhargava wrote:
> > commit 5209654a46ee ("x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD
> > systems") allows use of FFH for ACPI C1 but tools like cpupower and turbostat
> > display INTEL for the cstate description.
> >
> > Output "AMD" for AMD systems with FFH for ACPI C1.
>
> Um, is it good idea?
>
> First, you are changing kernel API.
>
> > @@ -107,9 +108,14 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
> > "Monitor-Mwait will be used to enter C-%d state\n",
> > cx->type);
> > }
> > - snprintf(cx->desc,
> > - ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> > - cx->address);
> > + if (c->x86_vendor == X86_VENDOR_INTEL)
> > + snprintf(cx->desc,
> > + ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> > + cx->address);
> > + else
> > + snprintf(cx->desc,
> > + ACPI_CX_DESC_LEN, "ACPI FFH AMD MWAIT 0x%x",
> > + cx->address);
>
> Second, I read it as "Intel MWAIT" instruction is used. Yes, AMD cpu can
> use Intel MWAIT, too...
>
> Third, there are more CPU vendors out there.
>
> Pavel
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
Len Brown, Intel Open Source Technology Center
On Wed 2018-08-08 16:01:41, Len Brown wrote:
> I think it is sufficient to simply delete the "INTEL" in that string.
>
> In the unlikely event that this "change to a kernel API" breaks
> something, we can add it back.
I'd just leave it alone. But yes, just deleting INTEL is better than
patch below.
Pavel
> > On Wed 2018-08-08 13:47:35, Prarit Bhargava wrote:
> > > commit 5209654a46ee ("x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD
> > > systems") allows use of FFH for ACPI C1 but tools like cpupower and turbostat
> > > display INTEL for the cstate description.
> > >
> > > Output "AMD" for AMD systems with FFH for ACPI C1.
> >
> > Um, is it good idea?
> >
> > First, you are changing kernel API.
> >
> > > @@ -107,9 +108,14 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
> > > "Monitor-Mwait will be used to enter C-%d state\n",
> > > cx->type);
> > > }
> > > - snprintf(cx->desc,
> > > - ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> > > - cx->address);
> > > + if (c->x86_vendor == X86_VENDOR_INTEL)
> > > + snprintf(cx->desc,
> > > + ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
> > > + cx->address);
> > > + else
> > > + snprintf(cx->desc,
> > > + ACPI_CX_DESC_LEN, "ACPI FFH AMD MWAIT 0x%x",
> > > + cx->address);
> >
> > Second, I read it as "Intel MWAIT" instruction is used. Yes, AMD cpu can
> > use Intel MWAIT, too...
> >
> > Third, there are more CPU vendors out there.
> >
> > Pavel
> > --
> > (english) http://www.livejournal.com/~pavelmachek
> > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
>
>
>
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
On 08/08/2018 03:58 PM, Pavel Machek wrote:
> On Wed 2018-08-08 13:47:35, Prarit Bhargava wrote:
>> commit 5209654a46ee ("x86/ACPI/cstate: Allow ACPI C1 FFH MWAIT use on AMD
>> systems") allows use of FFH for ACPI C1 but tools like cpupower and turbostat
>> display INTEL for the cstate description.
>>
>> Output "AMD" for AMD systems with FFH for ACPI C1.
>
> Um, is it good idea?
>> First, you are changing kernel API.
I thought about that and the AMD support was only added a year ago so I think it
is okay to change. Secondly, I did a grep for the use of the desc file in the
Fedora sources and only found a few places where the file is referenced. They
all *report* the data but do not use it to make a decision.
For example, turbostat and cpupower only return the data to the console.
>
>> @@ -107,9 +108,14 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
>> "Monitor-Mwait will be used to enter C-%d state\n",
>> cx->type);
>> }
>> - snprintf(cx->desc,
>> - ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
>> - cx->address);
>> + if (c->x86_vendor == X86_VENDOR_INTEL)
>> + snprintf(cx->desc,
>> + ACPI_CX_DESC_LEN, "ACPI FFH INTEL MWAIT 0x%x",
>> + cx->address);
>> + else
>> + snprintf(cx->desc,
>> + ACPI_CX_DESC_LEN, "ACPI FFH AMD MWAIT 0x%x",
>> + cx->address);
>
> Second, I read it as "Intel MWAIT" instruction is used. Yes, AMD cpu can
> use Intel MWAIT, too...
That's true but the weirdness of seeing INTEL on an AMD box there made me push
this patch.
>
> Third, there are more CPU vendors out there.
Not in this code. It is AMD & Intel only. I thought about dropping INTEL, and
also switching to X86.
Should we drop INTEL from the above or not (as suggested later in this thread)?
It feels like everyone is on the fence about it.
P.
>
> Pavel
>
>> "ACPI FFH INTEL MWAIT 0x%x"
> Should we drop INTEL from the above or not (as suggested later in this thread)?
> It feels like everyone is on the fence about it.
Okay with me to drop the "INTEL" part of this string -- it actually
doesn't add any information.
thanks,
-Len