svn commit: r250946 - in user/attilio/vmobj-readlock/sys: dev/drm2/i915 kern vm
Attilio Rao
attilio at FreeBSD.org
Thu May 23 22:11:59 UTC 2013
Author: attilio
Date: Thu May 23 22:11:57 2013
New Revision: 250946
URL: http://svnweb.freebsd.org/changeset/base/250946
Log:
Consumers of vm_page_sleep_if_busy() always want to also check for the
busy counter, so remove the feature to forbid that.
Sponsored by: EMC / Isilon storage division
Modified:
user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c
user/attilio/vmobj-readlock/sys/kern/subr_uio.c
user/attilio/vmobj-readlock/sys/kern/vfs_bio.c
user/attilio/vmobj-readlock/sys/vm/vm_fault.c
user/attilio/vmobj-readlock/sys/vm/vm_object.c
user/attilio/vmobj-readlock/sys/vm/vm_page.c
user/attilio/vmobj-readlock/sys/vm/vm_page.h
Modified: user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Thu May 23 22:11:57 2013 (r250946)
@@ -2320,7 +2320,7 @@ retry:
continue;
vm_page_lock(m);
VM_OBJECT_WUNLOCK(devobj);
- if (vm_page_sleep_if_busy(m, true, "915unm"))
+ if (vm_page_sleep_if_busy(m, "915unm"))
goto retry;
vm_page_unlock(m);
cdev_pager_free_page(devobj, m);
Modified: user/attilio/vmobj-readlock/sys/kern/subr_uio.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/kern/subr_uio.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/kern/subr_uio.c Thu May 23 22:11:57 2013 (r250946)
@@ -108,7 +108,7 @@ vm_pgmoveco(vm_map_t mapa, vm_offset_t k
retry:
if ((user_pg = vm_page_lookup(uobject, upindex)) != NULL) {
vm_page_lock(user_pg);
- if (vm_page_sleep_if_busy(user_pg, TRUE, "vm_pgmoveco"))
+ if (vm_page_sleep_if_busy(user_pg, "vm_pgmoveco"))
goto retry;
pmap_remove_all(user_pg);
vm_page_free(user_pg);
Modified: user/attilio/vmobj-readlock/sys/kern/vfs_bio.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/kern/vfs_bio.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/kern/vfs_bio.c Thu May 23 22:11:57 2013 (r250946)
@@ -3461,7 +3461,7 @@ allocbuf(struct buf *bp, int size)
("allocbuf: bogus page found"));
do {
vm_page_lock(m);
- } while (vm_page_sleep_if_busy(m, TRUE,
+ } while (vm_page_sleep_if_busy(m,
"biodep"));
bp->b_pages[i] = NULL;
Modified: user/attilio/vmobj-readlock/sys/vm/vm_fault.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/vm/vm_fault.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/vm/vm_fault.c Thu May 23 22:11:57 2013 (r250946)
@@ -380,7 +380,7 @@ RetryFault:;
if (fs.m == vm_page_lookup(fs.object,
fs.pindex)) {
vm_page_lock(fs.m);
- if (!vm_page_sleep_if_busy(fs.m, TRUE,
+ if (!vm_page_sleep_if_busy(fs.m,
"vmpfw"))
vm_page_unlock(fs.m);
}
Modified: user/attilio/vmobj-readlock/sys/vm/vm_object.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/vm/vm_object.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/vm/vm_object.c Thu May 23 22:11:57 2013 (r250946)
@@ -872,7 +872,7 @@ rescan:
if (p->valid == 0)
continue;
vm_page_lock(p);
- if (vm_page_sleep_if_busy(p, TRUE, "vpcwai")) {
+ if (vm_page_sleep_if_busy(p, "vpcwai")) {
if (object->generation != curgeneration) {
if ((flags & OBJPC_SYNC) != 0)
goto rescan;
@@ -1927,7 +1927,7 @@ again:
vm_page_unlock(p);
continue;
}
- if (vm_page_sleep_if_busy(p, TRUE, "vmopar"))
+ if (vm_page_sleep_if_busy(p, "vmopar"))
goto again;
KASSERT((p->flags & PG_FICTITIOUS) == 0,
("vm_object_page_remove: page %p is fictitious", p));
Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/vm/vm_page.c Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/vm/vm_page.c Thu May 23 22:11:57 2013 (r250946)
@@ -790,12 +790,12 @@ _vm_page_sleep_onpage(vm_page_t m, int p
* The given page and object containing it must be locked.
*/
int
-vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg)
+vm_page_sleep_if_busy(vm_page_t m, const char *msg)
{
vm_object_t obj;
VM_OBJECT_ASSERT_WLOCKED(m->object);
- if ((m->oflags & VPO_BUSY) || (also_m_busy && m->busy)) {
+ if ((m->oflags & VPO_BUSY) != 0 || m->busy != 0) {
/*
* The page-specific object must be cached because page
* identity can change during the sleep, causing the
Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.h
==============================================================================
--- user/attilio/vmobj-readlock/sys/vm/vm_page.h Thu May 23 21:33:10 2013 (r250945)
+++ user/attilio/vmobj-readlock/sys/vm/vm_page.h Thu May 23 22:11:57 2013 (r250946)
@@ -403,7 +403,7 @@ void vm_page_rename (vm_page_t, vm_objec
void vm_page_requeue(vm_page_t m);
void vm_page_requeue_locked(vm_page_t m);
void vm_page_set_valid_range(vm_page_t m, int base, int size);
-int vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg);
+int vm_page_sleep_if_busy(vm_page_t m, const char *msg);
int vm_page_sleep_onpage(vm_page_t m, int pri, const char *msg, int timo);
vm_offset_t vm_page_startup(vm_offset_t vaddr);
void vm_page_unhold_pages(vm_page_t *ma, int count);
More information about the svn-src-user
mailing list