[Pvfs2-developers] readdir count and token position

Phil Carns carns at mcs.anl.gov
Wed Oct 15 13:37:09 EDT 2008


Robert Latham wrote:
> On Wed, Oct 15, 2008 at 10:42:23AM -0400, Phil Carns wrote:
>> FYI, I reduced the limit (in the kernel only, not pvfs2-ls) down to 96  
>> for the time being in cvs trunk.  This avoids the token rewind problem  
>> triggered by bonnie++, but hopefully still keeps some of the ls speed  
>> improvement.
> 
> are there workloads for which the token rewind problem would still
> show up?

Yes, its possible, even with the original 32 entries per request.  The 
problem is that the vfs is trying to fill up a buffer of a particular 
size (usually 4KB), but our protocol operates in terms of the number of 
entries without regard for total size.  Capping it at 96 means that the 
rewind problem will reappear if the average length of names in the 
directory goes over (4096/96 = 42) characters, minus a few characters 
for whatever other dirent struct fields take up space in the buffer.

Bumping this down just makes this case less likely.

I don't know how many applications besides bonnie++ have to worry about 
this case.  "rm -rf", for example, doesn't have this problem at all even 
with 512 directory entries.  I haven't looked at the code, but it must 
have better logic for deleting all of the entries in a directory.

-Phil


More information about the Pvfs2-developers mailing list