diff options
author | das <das@FreeBSD.org> | 2003-03-12 23:13:16 +0000 |
---|---|---|
committer | das <das@FreeBSD.org> | 2003-03-12 23:13:16 +0000 |
commit | 96f973e7de4d8f2a11ecedfae50b316319fd1026 (patch) | |
tree | 6cae5d8751656edd0c9fcd23480226ea6d6747ec /sys/vm/vm_map.h | |
parent | eb02bdf56a079dea8449cdfa53c66a3d36496504 (diff) | |
download | FreeBSD-src-96f973e7de4d8f2a11ecedfae50b316319fd1026.zip FreeBSD-src-96f973e7de4d8f2a11ecedfae50b316319fd1026.tar.gz |
- 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)
Diffstat (limited to 'sys/vm/vm_map.h')
-rw-r--r-- | sys/vm/vm_map.h | 3 |
1 files changed, 3 insertions, 0 deletions
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) \ |