Alfred Perlstein wrote:
> * Terry Lambert <[EMAIL PROTECTED]> [020322 23:13] wrote:
> > Matthew Dillon wrote:
> > >     Unless I am missing something, vnodes hang off their mount points.
> > >     So, effectively, there is a system-wide list.
> >
> > The lock on a global traverasl will be pretty ugly...
> Module loading doesn't occur often. :)

The VOP recalculation is to provide a default for new VOPs
that are added.  I'm not sure it's really necessary, since
it's supposed to default to not impliemented, and the lookup
for a given descriptor in the list should always get that,
if it can't find a matching descriptor.

I had a recalculation in my code from 1996 because I sorted
the entries, and then used an absolute index (doing this
would dereference memory off the end of the list for new VOPs).
FreeBSD doesn't make this optimization, and takes the overhead
of unpacking and repacking every descriptor, and then doing an
extra dereference.  So it shouldn't need it.

Did this come in as part of the default_vops stuff, which was
not part of the original design?

Precalculating the tables makes sense, but there's an easy
way around that:  Take a page for each instance, and then
rewrite the contents as needed.  I don't think you can use
the optimization anyway, if you want to proxy the VOP's across
a network or the user/kernel boundary for user space FS work,
but other than that, it's a ggood instance-time optimization
(e.g. leave it there, and instance it with the double dereference
for the proxy cases).

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to