Re: 2.6.16-rc1-mm4 i386 atomic operations broken on SMP (in modulesat least)

From: Neil Brown
Date: Thu Feb 02 2006 - 17:39:47 EST


On Thursday February 2, akpm@xxxxxxxx wrote:
> Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx> wrote:
> >
> > In-Reply-To: <17377.24090.486443.865483@xxxxxxxxxxxxxxx>
> >
> > On Thu, 2 Feb 2006 at 12:19:22 +1100, Neil Brown wrote:
> >
> > > My guess is there is there is something wrong with the 'alternative'
> > > stuff which strips out the lock prefix, but I couldn't see anything
> > > obviously wrong. The CPUs don't have FEATURE_UP (see below) so it
> > > cannot possibly be removing the 'lock' prefix... but it certainly acts
> > > like it is.
> >
> > Look closer:
> >
> > > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
> > > cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm
> > > constant_tsc pni monitor ds_cpl cid xtpr
> > ^^^^^^^^^^^^
> >
> > SMP alternatives is re-using the constant_tsc X86 feature bit.
> >
> > --- 2.6.16-rc1-mm4-386.orig/include/asm-i386/cpufeature.h
> > +++ 2.6.16-rc1-mm4-386/include/asm-i386/cpufeature.h
> > @@ -71,7 +71,7 @@
> > #define X86_FEATURE_P4 (3*32+ 7) /* P4 */
> > #define X86_FEATURE_CONSTANT_TSC (3*32+ 8) /* TSC ticks at a constant rate */
> >
> > -#define X86_FEATURE_UP (3*32+ 8) /* smp kernel running on up */
> > +#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */
> >
> > /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
> > #define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */
>
> Darn, how did you spot that?

I can't say how he found the needle in the haystack, but I can confirm
that it fixes the problem. I'm running -mm4 quite successfully with
this patch now.

Thanks!

Thinks.. maybe this typo would have been harder if the columns lined
up better, like this:
> > #define X86_FEATURE_P4 (3*32+ 7) /* P4 */
> > #define X86_FEATURE_CONSTANT_TSC (3*32+ 8) /* TSC ticks at a constant rate */
> >
> > -#define X86_FEATURE_UP (3*32+ 8) /* smp kernel running on up */
> > +#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */


NeilBrown
-
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/