git: kernel -- vm_object locking: DEBUG_LOCKS check for hold_wait vs hold deadlock

Venkatesh Srinivas me at acm.jhu.edu
Sun Mar 27 14:21:14 PDT 2011


On Sun, Mar 27, 2011 at 12:01:19PM -0700, Matthew Dillon wrote:
:    If a thread has a hold on a vm_object and enters hold_wait (via either
:    vm_object_terminate or vm_object_collapse), it will wait forever for the hold
:    count to hit 0. Record the threads holding an object in a per-object array.
:
:http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cb443cbb47dab690574674c82ee9407c28deb544
   Hmm.  That's a bit iffy, it is possible for there to be more than 32
   holds on a VM object.
					-Matt
					Matthew Dillon
					<dillon at backplane.com>
Agreed; this was something that was useful while debugging something locally,
but I kept it under DEBUG_LOCKS rather than INVARIANTS because it was not
generally safe. Would it be alright for me to drag bitstring.h into sys/ 
(where it is on FreeBSD at least) so that I can use that instead (and make
a growable bitvector)?

I thought this was okay, since DEBUG_LOCKS is not on by default; in the future
would you recommend not committing in stuff like this?
Thanks,
-- vs




More information about the Commits mailing list