Subject: uvm_pdaemon 1.58 ?
To: None <current-users@netbsd.org>
From: Gilbert Fernandes <gilbertf@netbsd-fr.org>
List: current-users
Date: 02/18/2004 22:22:52
my pagedeamon deadlocks gave me a back trace where free pages reaches 0,
uvm_pageout is called and it goes up to starting writing an inode to the disk
(to page out and free memory) but to write that inode it needs to allocate
memory and goes to uvm_wait again thus deadlock.

i just checked the cvs web for /src/sys/uvm/uvm_pdaemon.c
current version is 1.58 where we have those lines :

/*
 * drain pool resources now that we're not holding any locks
 */

pool_drain(0);

previously we had :

buf_drain(0);
pool_drain(0);

and it was modified there :

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/uvm/uvm_pdaemon.c.diff?r1=1.57&r2=1.58&f=h

Buffer cache fixes to avoid thrashing between high and low water marks
and uncontrolled growth.

could this be the cause of the pagedeamon deadlocks ?

the other box i got here is running an older current (ZJ) which has not those
modification. but there are probably others in various files as the commit
probably modified several of.