svn commit: r252589 - user/attilio/vmobj-readlock/sys/vm

Attilio Rao attilio at FreeBSD.org
Wed Jul 3 19:55:25 UTC 2013


Author: attilio
Date: Wed Jul  3 19:55:24 2013
New Revision: 252589
URL: http://svnweb.freebsd.org/changeset/base/252589

Log:
  Document the hard-functions for vm_page_busy_* interface.
  
  Sponsored by:	EMC / Isilon storage division

Modified:
  user/attilio/vmobj-readlock/sys/vm/vm_page.c

Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/vm/vm_page.c	Wed Jul  3 19:12:35 2013	(r252588)
+++ user/attilio/vmobj-readlock/sys/vm/vm_page.c	Wed Jul  3 19:55:24 2013	(r252589)
@@ -469,6 +469,11 @@ vm_page_reference(vm_page_t m)
 	vm_page_aflag_set(m, PGA_REFERENCED);
 }
 
+/*
+ *	vm_page_busy_downgrade:
+ *
+ *	Downgrade a busy write lock into a single busy read lock.
+ */
 void
 vm_page_busy_downgrade(vm_page_t m)
 {
@@ -488,6 +493,12 @@ vm_page_busy_downgrade(vm_page_t m)
 	}
 }
 
+/*
+ *	vm_page_busy_rlocked:
+ *
+ *	Return a positive value if the busy lock is held in read mode,
+ *	0 otherwise.
+ */
 int
 vm_page_busy_rlocked(vm_page_t m)
 {
@@ -497,6 +508,11 @@ vm_page_busy_rlocked(vm_page_t m)
 	return ((x & VPB_LOCK_READ) != 0 && x != VPB_UNLOCKED);
 }
 
+/*
+ *	vm_page_busy_runlock:
+ *
+ *	Release a busy read lock.
+ */
 void
 vm_page_busy_runlock(vm_page_t m)
 {
@@ -565,6 +581,14 @@ vm_page_busy_sleep(vm_page_t m, const ch
 	msleep(m, vm_page_lockptr(m), PVM | PDROP, wmesg, 0);
 }
 
+/*
+ *	vm_page_busy_tryrlock:
+ *
+ *	Try to acquire a busy read lock.
+ *	If the acquisition is not possible the function returns immediately
+ *	without sleeping.
+ *	If the operation succeeds 1 is returned otherwise 0.
+ */
 int
 vm_page_busy_tryrlock(vm_page_t m)
 {
@@ -575,6 +599,12 @@ vm_page_busy_tryrlock(vm_page_t m)
 	    atomic_cmpset_acq_int(&m->busy_lock, x, x + VPB_ONE_READER));
 }
 
+/*
+ *	vm_page_busy_wunlock_hard:
+ *
+ *	Called after the first try to release a busy write lock failed.
+ *	It is assumed that the waiters bit is on.
+ */
 void
 vm_page_busy_wunlock_hard(vm_page_t m)
 {
@@ -588,9 +618,12 @@ vm_page_busy_wunlock_hard(vm_page_t m)
 }
 
 /*
- *      vm_page_flash:
+ *	vm_page_flash:
  *
- *      wakeup anyone waiting for the page.
+ *	Wakeup anyone waiting for the page.
+ *	The ownership bits do not change.
+ *
+ *	The given page must be locked.
  */
 void
 vm_page_flash(vm_page_t m)


More information about the svn-src-user mailing list