tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: netbsd-6: pagedaemon freeze when low on memory



On Mon, Mar 04, 2013 at 02:43:47PM -0500, 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

I've seen this too. One underlying issue is that the callbacks called
to free memory (e.g. reclaim from pool caches or buffer/vnode caches) do care
about physical memory but not about kernel virtual memory. This should probably
be fixed.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index