2010/5/1 Kip Macy <[email protected]>: > 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) */
This notation is ambigous. It doesn't let understand if the lock may be held both together or not, which rules happen for reading/writing such values, etc. May you please follow well-known patterns like the tables in subr_turnstile.c ? (+ for both of them, / for one of them, clarify if it is safe to read them with just one lock of them held, etc). Attilio -- Peace can only be achieved by understanding - A. Einstein _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "[email protected]"
