tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Vnode scope implementation



On Thu, Jul 23, 2009 at 06:08:23AM -0400, der Mouse wrote:
 > > Some things that will not (cannot!) change:
 > 
 > >   - there will be some concept of a locked vs. an unlocked vnode;
 > >   - to avoid race conditions, any vnode on which access control
 > >     checks are being made must be locked, and stay locked, from
 > >     before the check is made to after the operation is complete;
 > 
 > I don't expect these will change.  But I think it is probably excessive
 > to say they cannot change, except in a pragmatic/practical sense.  I've
 > seen some very clever algorithms for access to shared data structures
 > without the need for anything like locking, and, while it's not obvious
 > to me how they could be applied to anything like vnodes, I am by no
 > means convinced they can't be.

For present purposes, a pragmatic sense is perfectly sufficient. :-)

Anyhow, ultimately, vnode operations are supposed to be conflict-
serializable, and that means that any other conflicting operations
that might appear in the window between access check and operation
commit need to be either deferred (as with a lock) or failed and
retried later (as might happen with timestamp ordering)... which means
that during this window the vnode is in a state that's equivalent to
locked.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index