diff options
author | attilio <attilio@FreeBSD.org> | 2013-04-08 20:02:27 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2013-04-08 20:02:27 +0000 |
commit | 39752766344a39813bc96d7f0b849fbaae094c58 (patch) | |
tree | 74323cd6e2e76f286b9aaa8bf0df7adff30cc760 /sys/vm/vm_pageout.c | |
parent | d67371dab632a5e4198509966ecf2519692abdc4 (diff) | |
download | FreeBSD-src-39752766344a39813bc96d7f0b849fbaae094c58.zip FreeBSD-src-39752766344a39813bc96d7f0b849fbaae094c58.tar.gz |
The per-page act_count can be made very-easily protected by the
per-page lock rather than vm_object lock, without any further overhead.
Make the formal switch.
Sponsored by: EMC / Isilon storage division
Reviewed by: alc
Tested by: pho
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r-- | sys/vm/vm_pageout.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index c0a0da4..39343487 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1015,9 +1015,9 @@ vm_pageout_scan(int pass) } else if ((m->aflags & PGA_REFERENCED) == 0 && (actcount = pmap_ts_referenced(m)) != 0) { vm_page_activate(m); - vm_page_unlock(m); - m->act_count += actcount + ACT_ADVANCE; VM_OBJECT_WUNLOCK(object); + m->act_count += actcount + ACT_ADVANCE; + vm_page_unlock(m); goto relock_queues; } @@ -1031,9 +1031,9 @@ vm_pageout_scan(int pass) vm_page_aflag_clear(m, PGA_REFERENCED); actcount = pmap_ts_referenced(m); vm_page_activate(m); - vm_page_unlock(m); - m->act_count += actcount + ACT_ADVANCE + 1; VM_OBJECT_WUNLOCK(object); + m->act_count += actcount + ACT_ADVANCE + 1; + vm_page_unlock(m); goto relock_queues; } |