RFC: New VOP to translate vnode to its component name

Robert Watson rwatson at FreeBSD.org
Mon Dec 8 10:08:14 PST 2008


On Sun, 7 Dec 2008, Peter Wemm wrote:

> Well, you already know I love the idea.  Valgrind "knows" that you can 
> obtain the pathname from a fd or mmap address reliably at any time because 
> of procfs on linux, so its code is structured with that assumption.

Just to give a general vote of "we need to do something here, whether the 
details are exactly these or not" -- having better object->path resolution is 
quite important for audit, as well as if we want to adopt a file system 
notification services along the lines of Apple's fsevents (which is 
path-centric and operates from close() events rather than open() events).  I 
don't think we should run in the Linux 'dentry' direction, but having a more 
robust translation service would be quite valuable.  One comment: I think we 
should continue to have a KPI which does a sleep-free translation to call, but 
with weaker semantics than one that is sleepable and can query for more robust 
reverse lookup.

Robert N M Watson
Computer Laboratory
University of Cambridge

>
> Using procfs (on 4.x and 6.x) or the kinfo stuff on 7.x+ sort of
> works, but it quickly becomes unusable if any paths involve NFS.  nfs
> times out its cached items very quickly.
>
> Anyway, I see this as a good first step.  I very much want to see a
> real vop_default implementation that does the readdir("..") method to
> fill in the gaps. It isn't particularly important to me if
> vn_fullpath() recovers the original pathname or not, so long as it can
> find *a* valid pathname that will work.
>
> As for names.. VOP_CNP doesn't tell me what it does at a glance.  Ideas:
> VOP_VPTOCNP  (vnode to component name, or VOP_VNTOCNP)
> VOP_RLOOKUP (reverse lookup)
>
> We have precedent for the first form.  VOP_FHTOVP().
>
> I don't think VOP_VPTOCNP() is too unwieldy and I think it would be a
> little more intuitive to a casual observer.  I don't want to get
> trapped in a bikeshed sized To:/CC: list over it though.  I'd rather
> see it committed to head and get some progress.
>
> BTW: at work we do extensive open-by-filehandle stuff on NFS.  For the
> vast majority of vnodes on those machines, there never was a name
> cache entry.  It would be priceless if the vop_default readdir(..)
> method could discover those names in procstat etc.
>
> -- 
> Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
> "All of this is for nothing if we don't go to the stars" - JMS/B5
> "If Java had true garbage collection, most programs would delete
> themselves upon execution." -- Robert Sewell
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
>


More information about the freebsd-arch mailing list