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 */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to