Re: P6 NOPs again: MPSC?

Hugh Dickins
2008-03-11T20:58:40Z

On Tue, 11 Mar 2008, H. Peter Anvin wrote:
> Hugh Dickins wrote:
> >
> > Yup, I realized that (with || in place of &&): I meant that perhaps
> > it was supposed to say X86_64 || (!X86_GENERIC && (M686 || ....))
> > since quite a lot of other options there have "|| X86_64" to cover
> > all the 64-bit possibilities at once i.e. is it only MPSC that
> > needs to be added, or both MPSC and CPU_GENERIC?
>
> No. The left-hand clause (X86_64 || !X86_GENERIC) indicates when using these
> NOPs are *permitted*; the right-hand clause indicates when doing so is
> *desirable*. The latter isn't, for example, for K8, even on 64 bits.

Okay, so if we're to exclude CPU_GENERIC and MK8, I think that
makes my original patch the right one: here it is with a signoff.

I've now noticed that the machine I call MPENTIUM4 for 32-bit kernels
is called MPSC for 64-bit kernels, and in that case it still doesn't
get the P6 NOPs it ought to. hpa explains that MK8 should still be
excluded, so it's just a matter of including MPSC along with MPENTIUM4.

Signed-off-by: Hugh Dickins <hugh@veritas.com>

--- 2.6.25-rc5/arch/x86/Kconfig.cpu 2008-03-05 11:27:23.000000000 +0000
+++ linux/arch/x86/Kconfig.cpu 2008-03-10 18:48:10.000000000 +0000
@@ -388,7 +388,7 @@ config X86_OOSTORE
#
config X86_P6_NOP
def_bool y
- depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4)
+ depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4 || MPSC)

config X86_TSC
def_bool y