Hi
With the patch from Ivan, the prefetch problem is gone.
Please add this patch to the mainline for 2.6.0 for alpha.
Regards
Tom
We shouldn't prefetch the spinlocks on UP.
Ivan.
--- 2.6/include/asm-alpha/processor.h Sat Oct 25 22:44:54 2003
+++ linux/include/asm-alpha/processor.h Tue Nov 18 01:48:39 2003
@@ -78,6 +78,11 @@ unsigned long get_wchan(struct task_stru
#define ARCH_HAS_PREFETCHW
#define ARCH_HAS_SPINLOCK_PREFETCH
+#ifndef CONFIG_SMP
+/* Nothing to prefetch. */
+#define spin_lock_prefetch(lock) do { } while (0)
+#endif
+
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
extern inline void prefetch(const void *ptr) { @@ -89,10 +94,13 @@ extern inline void prefetchw(const void __builtin_prefetch(ptr, 1, 3);
}
+#ifdef CONFIG_SMP
extern inline void spin_lock_prefetch(const void *ptr) {
__builtin_prefetch(ptr, 1, 3);
}
+#endif
+
#else
extern inline void prefetch(const void *ptr) { @@ -104,10 +112,13 @@ extern inline void prefetchw(const void __asm__ ("ldq $31,%0" : : "m"(*(char *)ptr)); }
+#ifdef CONFIG_SMP
extern inline void spin_lock_prefetch(const void *ptr) {
__asm__ ("ldq $31,%0" : : "m"(*(char *)ptr)); }
+#endif
+
#endif /* GCC 3.1 */
#endif /* __ASM_ALPHA_PROCESSOR_H */