Re: [PATCH 1/2] x86: fix keeping track of AMD C1E

From: Borislav Petkov
Date: Fri Jul 16 2010 - 02:40:35 EST


From: "H. Peter Anvin" <hpa@xxxxxxxxx>
Date: Fri, Jul 16, 2010 at 12:25:39AM -0400

> On 07/14/2010 02:31 PM, Michal Schmidt wrote:
> >
> > This suggests that another way to fix my problem would be this (tested):
> >
>
> This is a change of semantics from an AND to an OR across CPUs...

You mean the c1e_detected variable and the CPUID flag, right? Well,
frankly and if I'm not missing anything, we actually only need to track
when either bits [27,28] get set in that MSR - MSR_K8_INT_PENDING_MSG -
in order to do timer broadcast.

And strictly speaking, we don't need a variable for that at all (nor a
synthetic CPUID flag, for that matter) - we can simply read the MSR as
much as we'd like after we've detected that this CPU supports C1E.

But having the value cached is faster and doesn't enlarge checking
code in acpi_processor_cstate_check().

I think the reason for adding the syntetic cpuid flag is only to
communicate to the ACPI processor module that we don't support deeper
C-states on a C1E machine, see a8d6829044901a67732904be5f1eacdf8539604f.
So we don't strictly need it and we can only export c1e_detected to the
rest for simplicity.

--
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/