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: Jarle Greipsland <jarle%uninett.no@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, gnats-admin%netbsd.org@localhost
Subject: Re: port-alpha/38335 (kernel freeze on alpha MP system)
Date: Sun, 11 Oct 2009 12:13:57 -0600 (MDT)
On Thu, 8 Oct 2009, Jarle Greipsland wrote:
> The system then keeps on running. Though for every "build -j4"
> job I run I get approximately one
> "Whoa! pool_cache_get returned an in-use entry!"
> message on the console. I guess this means we have a
> papered-over bug now?
Yes - that patch just attempts to work around a duplicate pool cache
entry. I have not been able to replicate this on my ES40, and don't have
remote power capability on my CS20 which makes it harder to debug when
things can hang hard.
I'm wondering if using IPL_HIGH for the mutex changes anything:
Index: sys/arch/alpha/alpha/pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/alpha/pmap.c,v
retrieving revision 1.243
diff -u -p -r1.243 pmap.c
--- sys/arch/alpha/alpha/pmap.c 4 Oct 2009 17:00:31 -0000 1.243
+++ sys/arch/alpha/alpha/pmap.c 11 Oct 2009 18:01:59 -0000
@@ -962,7 +962,7 @@ pmap_bootstrap(paddr_t ptaddr, u_int max
for (i = 0; i < ALPHA_MAXPROCS; i++) {
TAILQ_INIT(&pmap_tlb_shootdown_q[i].pq_head);
mutex_init(&pmap_tlb_shootdown_q[i].pq_lock, MUTEX_DEFAULT,
- IPL_SCHED);
+ IPL_HIGH);
}
#endif
If that doesn't change anything, then I'd try increasing the IPL level
of the pool_cache entry:
Index: sys/arch/alpha/alpha/pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/alpha/pmap.c,v
retrieving revision 1.243
diff -u -p -r1.243 pmap.c
--- sys/arch/alpha/alpha/pmap.c 4 Oct 2009 17:00:31 -0000 1.243
+++ sys/arch/alpha/alpha/pmap.c 11 Oct 2009 17:59:33 -0000
@@ -958,7 +958,7 @@ pmap_bootstrap(paddr_t ptaddr, u_int max
*/
pool_cache_bootstrap(&pmap_tlb_shootdown_job_cache,
sizeof(struct pmap_tlb_shootdown_job), CACHE_LINE_SIZE,
- 0, PR_LARGECACHE, "pmaptlb", NULL, IPL_VM, NULL, NULL, NULL);
+ 0, PR_LARGECACHE, "pmaptlb", NULL, IPL_SCHED, NULL, NULL, NULL);
for (i = 0; i < ALPHA_MAXPROCS; i++) {
TAILQ_INIT(&pmap_tlb_shootdown_q[i].pq_head);
mutex_init(&pmap_tlb_shootdown_q[i].pq_lock, MUTEX_DEFAULT,
And:
Index: sys/arch/alpha/alpha/pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/alpha/pmap.c,v
retrieving revision 1.243
diff -u -p -r1.243 pmap.c
--- sys/arch/alpha/alpha/pmap.c 4 Oct 2009 17:00:31 -0000 1.243
+++ sys/arch/alpha/alpha/pmap.c 11 Oct 2009 17:59:56 -0000
@@ -958,7 +958,7 @@ pmap_bootstrap(paddr_t ptaddr, u_int max
*/
pool_cache_bootstrap(&pmap_tlb_shootdown_job_cache,
sizeof(struct pmap_tlb_shootdown_job), CACHE_LINE_SIZE,
- 0, PR_LARGECACHE, "pmaptlb", NULL, IPL_VM, NULL, NULL, NULL);
+ 0, PR_LARGECACHE, "pmaptlb", NULL, IPL_HIGH, NULL, NULL, NULL);
for (i = 0; i < ALPHA_MAXPROCS; i++) {
TAILQ_INIT(&pmap_tlb_shootdown_q[i].pq_head);
mutex_init(&pmap_tlb_shootdown_q[i].pq_lock, MUTEX_DEFAULT,
--
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