summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pageout.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2013-04-08 20:02:27 +0000
committerattilio <attilio@FreeBSD.org>2013-04-08 20:02:27 +0000
commit39752766344a39813bc96d7f0b849fbaae094c58 (patch)
tree74323cd6e2e76f286b9aaa8bf0df7adff30cc760 /sys/vm/vm_pageout.c
parentd67371dab632a5e4198509966ecf2519692abdc4 (diff)
downloadFreeBSD-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.c8
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;
}
OpenPOWER on IntegriCloud