From 96f973e7de4d8f2a11ecedfae50b316319fd1026 Mon Sep 17 00:00:00 2001 From: das Date: Wed, 12 Mar 2003 23:13:16 +0000 Subject: - When the VM daemon is out of swap space and looking for a process to kill, don't block on a map lock while holding the process lock. Instead, skip processes whose map locks are held and find something else to kill. - Add vm_map_trylock_read() to support the above. Reviewed by: alc, mike (mentor) --- sys/vm/vm_map.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sys/vm/vm_map.h') diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index eef9a48..b685a18 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -248,6 +248,7 @@ void _vm_map_unlock(vm_map_t map, const char *file, int line); void _vm_map_lock_read(vm_map_t map, const char *file, int line); void _vm_map_unlock_read(vm_map_t map, const char *file, int line); int _vm_map_trylock(vm_map_t map, const char *file, int line); +int _vm_map_trylock_read(vm_map_t map, const char *file, int line); int _vm_map_lock_upgrade(vm_map_t map, const char *file, int line); void _vm_map_lock_downgrade(vm_map_t map, const char *file, int line); int vm_map_unlock_and_wait(vm_map_t map, boolean_t user_wait); @@ -258,6 +259,8 @@ void vm_map_wakeup(vm_map_t map); #define vm_map_lock_read(map) _vm_map_lock_read(map, LOCK_FILE, LOCK_LINE) #define vm_map_unlock_read(map) _vm_map_unlock_read(map, LOCK_FILE, LOCK_LINE) #define vm_map_trylock(map) _vm_map_trylock(map, LOCK_FILE, LOCK_LINE) +#define vm_map_trylock_read(map) \ + _vm_map_trylock_read(map, LOCK_FILE, LOCK_LINE) #define vm_map_lock_upgrade(map) \ _vm_map_lock_upgrade(map, LOCK_FILE, LOCK_LINE) #define vm_map_lock_downgrade(map) \ -- cgit v1.1