Subject: pool_get(...,PR_WAITOK) in syssrc/uvm/uvm_aobj.c:uao_find_swhash_elt
To: None <>
From: Sean Doran <>
List: current-users
Date: 06/07/2001 23:32:45
Hi -

 * uao_find_swhash_elt: find (or create) a hash table entry for a page
 * offset.
 * => the object should be locked by the caller

Yup, it's called locked by uvm_pageout(), but contains the code:

         * allocate a new entry for the bucket and init/insert it in
        elt = pool_get(&uao_swhash_elt_pool, PR_WAITOK);

which since 1.58 of syssrc/sys/kern/subr_pool.c is not allowed.

Can someone please fix this?

- --
pool_get(PR_WAITOK) with held simple_lock 0xc02fbbfc CPU 1 ../../../../uvm/uvm_pdaemon.c:855
pool_get(c02fb860,2,e5075e34,c01c4b0d,25081) at pool_get+0x71
uao_find_swhash_elt(c02c93c0,25081,1,c01c5a00,c0256240) at uao_find_swhash_elt+0x5f
uao_set_swslot(c02c93c0,25081,a,c01d63f0) at uao_set_swslot+0x61
uvmpd_scan_inactive(c02fbbf4,c0256240,355,c01d6bac,c0256240) at uvmpd_scan_inactive+0x616
uvmpd_scan(e5063720,c01d6088,c01d6088,0,c0100baf) at uvmpd_scan+0x7c
uvm_pageout(e5063720) at uvm_pageout+0x144