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