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

From: Chuck Ebbert
Date: Thu Feb 02 2006 - 13:12:52 EST


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 */
--
Chuck
-
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/