Subject: The buffer cache and directory blocks
To: None <tech-kern@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 01/09/2004 16:01:10
I've been thinking about the current use of the buffer cache for directory
blocks.  It occurs to me that there may be little reason to retain directory
blocks in the cache after reading them in, because their contents are also
cached by the namei cache.  Avoiding this might allow more efficient usage
of a buffer cache of a given size.  

Darren Jewell suggests that a possible problem arises when entries from the
same directory block are read in sequentially; if the block does not remain 
in cache, it will be read in over and over again.  Two approaches seem 
possible:

1) Preemptively enter all directory entries from a given block into the
   namei cache when reading the block in; then put the directory block
   immediately on the AGE list for priority reuse.  This is vaguely like
   the ReaddirPlus RPC in NFS (which we do not turn on by default).

2) Track whether all directory entries in a given block have been read
   in.  If so, explicitly move the block to the AGE list.

Both approaches seem somewhat complex.  Comments?

-- 
 Thor Lancelot Simon	                                      tls@rek.tjls.com
   But as he knew no bad language, he had called him all the names of common
 objects that he could think of, and had screamed: "You lamp!  You towel!  You
 plate!" and so on.              --Sigmund Freud