tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
rototilling the vnode life cycle, take two
I took another whack at trying to make sense of the vnode life cycle,
now that hannken@ has helped clarify some things. This one has a
pretty (ha) diagram for all the vnode states and their transition,
too. Fortunately, most of them are not exposed outside the vnode
abstraction.
I also wrote two drafts of a generic inode->vnode table, one using
pserialized hash tables and one using rwlocked rbtrees[*] -- nothing
terribly exciting, but doing this helped clarify to me how vget needs
to work. These should replace ufs_ihash and all the (not entirely
correct) copypasta of it throughout the tree.
With apologies to the mailing list archive (half a dozen files and
>2000 lines of code), I put it here:
https://www.NetBSD.org/~riastradh/tmp/20140303/
Comments? (Other than `forget vfs and make drm2 happen!', which I
intend to do...)
[*] Neither is a good choice of synchronized data structure, but until
Someone^TM makes a better one easily usable in the kernel, these will
do. It may turn out that a spin lock or an adaptive lock is better
than either pserialize or an rwlock -- in any case, it won't be hard
to adapt.
Home |
Main Index |
Thread Index |
Old Index