NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-alpha/38335 (kernel freeze on alpha MP system)
The following reply was made to PR port-alpha/38335; it has been noted by GNATS.
From: "Michael L. Hitch" <mhitch%lightning.msu.montana.edu@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: jarle%uninett.no@localhost
Subject: Re: port-alpha/38335 (kernel freeze on alpha MP system)
Date: Tue, 27 Oct 2009 15:33:06 -0600 (MDT)
On Mon, 26 Oct 2009, Jarle Greipsland wrote:
> Results for the IPL_HIGH setting: It still has problems with the
> pool_cache_get stuff. A number of consecutive 'build.sh -j4'
> resulted in console messages:
> Whoa! pool_cache_get returned an in-use entry! ci_index 0 pj
> 0xfffffc003f9efa00
> Whoa! pool_cache_get returned an in-use entry! ci_index 1 pj
> 0xfffffc003f9ee080
> Whoa! pool_cache_get returned an in-use entry! ci_index 1 pj
> 0xfffffc003f9ee440
OK, here's something else to try. I was looking through the alpha
hardware reference manual and checking some of the multiprocessor
information. I noted that it showed the use of memory barriers when
sending/receiving interrupts between processors. It looks like the atomic
operations that were used in the netbsd-4 branch included the memory
barrier, but the ones used in netbsd-5 and later do not. This patch
should add back the memory barriers need for the IPI stuff.
Index: sys/arch/alpha/alpha/ipifuncs.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/alpha/ipifuncs.c,v
retrieving revision 1.40
diff -u -p -r1.40 ipifuncs.c
--- sys/arch/alpha/alpha/ipifuncs.c 28 Apr 2008 20:23:10 -0000 1.40
+++ sys/arch/alpha/alpha/ipifuncs.c 27 Oct 2009 21:23:05 -0000
@@ -131,6 +131,7 @@ alpha_ipi_process(struct cpu_info *ci, s
}
#endif
+ alpha_mb();
pending_ipis = atomic_swap_ulong(&ci->ci_ipis, 0);
/*
@@ -167,6 +168,7 @@ alpha_send_ipi(u_long cpu_id, u_long ipi
#endif
atomic_or_ulong(&cpu_info[cpu_id]->ci_ipis, ipimask);
+ alpha_mb();
alpha_pal_wripir(cpu_id);
}
--
Michael L. Hitch mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
Home |
Main Index |
Thread Index |
Old Index