Date: Thu, 23 May 2013 22:11:58 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r250946 - in user/attilio/vmobj-readlock/sys: dev/drm2/i915 kern vm Message-ID: <201305232211.r4NMBwpF005404@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305232211.r4NMBwpF005404>