diff options
author | trasz <trasz@FreeBSD.org> | 2011-07-06 20:06:44 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2011-07-06 20:06:44 +0000 |
commit | 4a17b24427e55ec7e1862b08a0a9247f0717d010 (patch) | |
tree | 443d8da9aef22fdf042ab6f2cf16f5e2d4f04bd3 /sys/vm/vm_pageout.c | |
parent | 1adac93bc0e2f40ac5d98734f9451cb1a0f42124 (diff) | |
download | FreeBSD-src-4a17b24427e55ec7e1862b08a0a9247f0717d010.zip FreeBSD-src-4a17b24427e55ec7e1862b08a0a9247f0717d010.tar.gz |
All the racct_*() calls need to happen with the proc locked. Fixing this
won't happen before 9.0. This commit adds "#ifdef RACCT" around all the
"PROC_LOCK(p); racct_whatever(p, ...); PROC_UNLOCK(p)" instances, in order
to avoid useless locking/unlocking in kernels built without "options RACCT".
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r-- | sys/vm/vm_pageout.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 6dfdc4b..e9c9927 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1640,7 +1640,9 @@ vm_daemon() struct thread *td; struct vmspace *vm; int breakout, swapout_flags, tryagain, attempts; +#ifdef RACCT uint64_t rsize, ravailable; +#endif while (TRUE) { mtx_lock(&vm_daemon_mtx); @@ -1722,6 +1724,7 @@ again: vm_pageout_map_deactivate_pages( &vm->vm_map, limit); } +#ifdef RACCT rsize = IDX_TO_OFF(size); PROC_LOCK(p); racct_set(p, RACCT_RSS, rsize); @@ -1750,6 +1753,7 @@ again: if (rsize > ravailable) tryagain = 1; } +#endif vmspace_free(vm); } sx_sunlock(&allproc_lock); |