svn commit: r207460 - head/sys/vm
Kip Macy
kmacy at FreeBSD.org
Sat May 1 03:41:22 UTC 2010
Author: kmacy
Date: Sat May 1 03:41:21 2010
New Revision: 207460
URL: http://svn.freebsd.org/changeset/base/207460
Log:
Update locking comment above vm_page:
- re-assign page queue lock "Q"
- assign page lock "P"
- update several uncommented fields
- observe that hold_count is now protected by the page lock "P"
Modified:
head/sys/vm/vm_page.h
Modified: head/sys/vm/vm_page.h
==============================================================================
--- head/sys/vm/vm_page.h Sat May 1 02:53:43 2010 (r207459)
+++ head/sys/vm/vm_page.h Sat May 1 03:41:21 2010 (r207460)
@@ -90,20 +90,21 @@
* and sundry status bits.
*
* Fields in this structure are locked either by the lock on the
- * object that the page belongs to (O) or by the lock on the page
- * queues (P).
+ * object that the page belongs to (O), its corresponding page lock (P),
+ * or by the lock on the page queues (Q).
+ *
*/
TAILQ_HEAD(pglist, vm_page);
struct vm_page {
- TAILQ_ENTRY(vm_page) pageq; /* queue info for FIFO queue or free list (P) */
+ TAILQ_ENTRY(vm_page) pageq; /* queue info for FIFO queue or free list (Q) */
TAILQ_ENTRY(vm_page) listq; /* pages in same object (O) */
struct vm_page *left; /* splay tree link (O) */
struct vm_page *right; /* splay tree link (O) */
- vm_object_t object; /* which object am I in (O,P)*/
- vm_pindex_t pindex; /* offset into object (O,P) */
+ vm_object_t object; /* which object am I in (O,Q)*/
+ vm_pindex_t pindex; /* offset into object (O,Q) */
vm_paddr_t phys_addr; /* physical address of page */
struct md_page md; /* machine dependant stuff */
uint8_t queue; /* page queue index */
@@ -111,11 +112,11 @@ struct vm_page {
u_short flags; /* see below */
uint8_t order; /* index of the buddy queue */
uint8_t pool;
- u_short cow; /* page cow mapping count */
- u_int wire_count; /* wired down maps refs (P) */
- short hold_count; /* page hold count */
+ u_short cow; /* page cow mapping count (Q) */
+ u_int wire_count; /* wired down maps refs (Q) */
+ short hold_count; /* page hold count (P) */
u_short oflags; /* page flags (O) */
- u_char act_count; /* page usage count */
+ u_char act_count; /* page usage count (Q) */
u_char busy; /* page busy count (O) */
/* NOTE that these must support one bit per DEV_BSIZE in a page!!! */
/* so, on normal X86 kernels, they must be at least 8 bits wide */
More information about the svn-src-head
mailing list