Messages in this thread | | | From | Neil Brown <> | Date | Fri, 3 Feb 2006 09:41:20 +1100 | Subject | Re: 2.6.16-rc1-mm4 i386 atomic operations broken on SMP (in modules at least) |
| |
On Thursday February 2, akpm@osdl.org wrote: > Chuck Ebbert <76306.1226@compuserve.com> wrote: > > > > In-Reply-To: <17377.24090.486443.865483@cse.unsw.edu.au> > > > > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |