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
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
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;
Home |
Main Index |
Thread Index |
Old Index