On 9/6/05, Robert Watson <[EMAIL PROTECTED]> wrote:

> 
> On Tue, 6 Sep 2005, Kamal R. Prasad wrote:
> 
> >> one or more names and none of these names are more correct or
> >> authoritative than any of the others. If a user does 'ln /bin/ls /tmp'
> >> (assuming /bin and /tmp are on the same filesystem), it may be obvious
> >> to you that /bin/ls is the "real name" is /tmp/ls is just an alias, but
> >> it is not obvious to the kernel. In fact, the kernel is unable to see
> >> any difference at all between these two names.
> >
> > Yes -but when a user requests a mapping of vnode to pathname, he is
> > asking in the context of files he has accessed (recently). In this
> > context, the name cache does suffice -but unfortunately not every unix
> > variant provides access to it. regards -kamal
> 
> I suppose it depends a lot on what it is you plan to use the path for.
> For the purposes of audit, we've concluded that in fact we don't even need
> to re-generate the path, we'll simply use the path as requested by the
> user when a path was entered. I.e., our definition of "recently" is
> "immediately".

  
 Thanks for the info detailed herewith.
My purpose is similar to lsof utility. It looks up the namecache and 
provides a list of open filenames for a given process and it turns out that 
lsof is cross-platform and quite popular.
 Just curious -how huge would the name cache be -if all open files had a 
vnode<-->pathname mapping recorded? The mappings can be dropped when the 
file descriptor's reference count drops to 0.

regards
-kamal
 
> Other less immediate definitions of "recently" are a bit of a problem
> though, since file access often happens over the course of months or years
> after the initial lookup took place, at which point things an be very,
> very stale. For example, programs often open log files and hold them open
> for extended periods; likewise libraries, data files, directories, and so
> on. How recently is recently? One tenth of a second? One second? Ten
> seconds? Ten minutes? Ten hours? Ten days? Ten weeks? Ten years?
> FreeBSD operates on all of these time scales... Right now the FreeBSD
> name cache reliably returns paths for a short period of time after they
> are looked up -- the further you get from the initial lookup, the less
> reliable they become. The reliability is largely affected by two factors:
> the fact that this is a cache, and things fall out of the cache, and the
> fact that the name space is quite mutable and invalidates entries in the
> cache.
> 
> The third case of unreliability which is addressable is cases where
> synthetic file systems simply don't use the cache -- i.e., devfs. My
> proposal for dealing with this is simply to allow those synthetic file
> systems to return a name if they can. I think modifying them to use the
> name cache doesn't make sense however, since in many cases you don't want
> to cache: i.e., lookups of /dev/ptmx with the pts driver, or
> /proc/curproc, and caching would defeat the point.
> 
> Robert N M Watson
>
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to