NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/39283: Kernel crash on Dell Poweredge 2950
The following reply was made to PR port-amd64/39283; it has been noted by GNATS.
From: Mindaugas Rasiukevicius <rmind%netbsd.org@localhost>
To: Tobias Nygren <tnn%NetBSD.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost,
fredrik%netbsd.se@localhost
Subject: Re: port-amd64/39283: Kernel crash on Dell Poweredge 2950
Date: Wed, 2 Dec 2009 04:21:42 +0000
This is a multi-part message in MIME format.
--Multipart=_Wed__2_Dec_2009_04_21_42_+0000_3i5cvLjM=p/z6/nU
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hello,
Tobias Nygren <tnn%NetBSD.org@localhost> wrote:
> ...
> cv_wait() at netbsd:cv_wait+0x144
> xc_wait() at netbsd:xc_wait+0x44
> pool_cache_invalidate() at netbsd:pool_cache_invalidate+0xea
> pool_reclaim() at netbsd:pool_reclaim+0x65
> pool_reclaim_callback() at netbsd:pool_reclaim_callback+0x22
> callback_run_roundrobin() at netbsd:callback_run_roundrobin+0x57
> uvm_map_prepare() at netbsd:uvm_map_prepare+0x190
> uvm_map() at netbsd:uvm_map+0xbb
> km_vacache_alloc() at netbsd:km_vacache_alloc+0x4e
> pool_grow() at netbsd:pool_grow+0x38
> pool_get() at netbsd:pool_get+0x66
> uvm_km_alloc_poolpage_cache() at netbsd:uvm_km_alloc_poolpage_cache+0x40
> pool_grow() at netbsd:pool_grow+0x38
> pool_get() at netbsd:pool_get+0x66
> tcp_newtcpcb() at netbsd:tcp_newtcpcb+0x29
> ...
It is a recent regression in -current. Please try attached workaround, which
disables draining of per-CPU caches (it is safe, since nothing yet depends on
this behaviour). I will look for a proper fix.
--
Mindaugas
--Multipart=_Wed__2_Dec_2009_04_21_42_+0000_3i5cvLjM=p/z6/nU
Content-Type: text/plain;
name="pool_inv_workaround.diff"
Content-Disposition: attachment;
filename="pool_inv_workaround.diff"
Content-Transfer-Encoding: 7bit
Index: subr_pool.c
===================================================================
RCS file: /cvsroot/src/sys/kern/subr_pool.c,v
retrieving revision 1.177
diff -u -p -r1.177 subr_pool.c
--- subr_pool.c 20 Oct 2009 17:24:22 -0000 1.177
+++ subr_pool.c 2 Dec 2009 04:22:01 -0000
@@ -2298,6 +2298,7 @@ void
pool_cache_invalidate(pool_cache_t pc)
{
pcg_t *full, *empty, *part;
+#if 0
uint64_t where;
if (ncpu < 2 || !mp_online) {
@@ -2316,6 +2317,7 @@ pool_cache_invalidate(pool_cache_t pc)
where = xc_broadcast(0, (xcfunc_t)pool_cache_xcall, pc, NULL);
xc_wait(where);
}
+#endif
mutex_enter(&pc->pc_lock);
full = pc->pc_fullgroups;
--Multipart=_Wed__2_Dec_2009_04_21_42_+0000_3i5cvLjM=p/z6/nU--
Home |
Main Index |
Thread Index |
Old Index