-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2013-03-04 20:43, Richard Hansen wrote: > Hi all, > > I believe I have found a bug in the pagedaemon (uvm_pageout() in > src/sys/uvm/uvm_pdaemon.c) that causes the system to freeze when > the kmem_arena runs low (<10% free): > > 1. line 254: uvm_km_va_starved_p() returns true 2. line 258: the > !kmem_va_starved condition prevents the pagedaemon from sleeping 3. > lines 330--346: no memory is freed -- it's all still in use 4. go > to step #1 > > To reproduce the freeze: > > 1. acquire an i386 system with 4GB of memory and lots of files in > the filesystem 2. set the kern.maxvnodes sysctl as high as it will > go 3. run 'du -skx /' 4. wait for the kernel to run low on memory > (vnode allocations) > > I believe the bug was introduced in this commit: > http://mail-index.netbsd.org/source-changes/2012/02/01/msg031411.html > > http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/uvm/uvm_pdaemon.c#rev1.105 > > Attached is an initial attempt at fixing this. The patch allows > the pagedaemon to sleep if no memory was reclaimed the last time > through the loop. This is probably not a correct or complete fix; > I don't yet have a comfortable understanding of the inner workings > of the kernel. > > With the patch applied, the pagedaemon no longer freezes. However, > LWPs start piling up in vmem_alloc() waiting for memory to become > available. So it seems like this change is necessary but not > sufficient. > > Thoughts? > > Thanks, Richard >
Hi, if you increase kern.maxvnodes a lot you need to increase the kmem allowed in order to accommodate all the vnodes. Try recompiling a kernel with NKMEMPAGES_MAX option set higher then the default (360mb on i386) eg 450mb. kind regards, Lars - -- - ------------------------------------ Mystische Erklärungen: Die mystischen Erklärungen gelten für tief; die Wahrheit ist, dass sie noch nicht einmal oberflächlich sind. -- Friedrich Nietzsche [ Die Fröhliche Wissenschaft Buch 3, 126 ] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlE1DcUACgkQcxuYqjT7GRbwSwCfS9W0tHNBDi5cvLCP/PkFw8Cn CJMAnjoMPlCYVaymN+vZtpmmm8oWLsGv =kPfh -----END PGP SIGNATURE-----
