Eric Sandeen wrote:
>> Well, having something like "ext3_dir_bread()" that verifies the leaf block
>> once if (!uptodate()) would be almost the same as ext2 with fairly little
>> effort.  It would help performance in several places, at the slight risk
>> of not handling in-memory corruption after the block is read...
> 
> How about just tweaking the existing ext3_bread so that it lets the
> caller know whether or not it found an uptodate buffer?  Seems
> conceivable that more than just the dir code might want to do a data
> sanity check, based on if this is a fresh read or not.
> 
> Could maybe even change the *err argument to a *retval; negative on
> errors, else 0 == not read (found uptodate), 1 == fresh read (not found
> uptodate).  Or is that too much overloading...

I played around with this a little bit today, and it seems to have some
tangible results.  A fairly unsophisticated test of running "find" over
my whole root filesystem 10 times :) with and without re-checking cached
directory entries, yielded about a 10% speedup when skipping the re-checks.

Is this something we want to do?  Are we comfortable with only checking
directory entries the first time they are read from disk?

-Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to