Re: dentry cache order 7 is broken

2001-02-08 Thread Linus Torvalds
In article <[EMAIL PROTECTED]>, dean gaudet <[EMAIL PROTECTED]> wrote: > >if you've got 512Mb of RAM you end up with a dentry cache of order 7 -- >65536 entries. > >this results in a D_HASHBITS of 16. if you look at d_hash it contains >this code: > > hash = hash ^ (hash >> D_HASHBITS) ^ (h

Re: dentry cache order 7 is broken

2001-02-08 Thread dean gaudet
that appears to do it :) -dean On Thu, 8 Feb 2001, David S. Miller wrote: > > dean gaudet writes: > > also, for order > 7, was the real intention to use a shift of > > (order*2)&31? > > No, the whole thing is buggered. How stupid, my fault. > It was the 64-bit platform fascist at work :-) >

Re: dentry cache order 7 is broken

2001-02-08 Thread David S. Miller
Mitchell Blank Jr writes: > 1. The inode-cache has the exact same problem, but it'll require a lot > of RAM to run into it. The buffer and page caches don't have the > same problem. Yep, fix attached. You just need 1GB ram to hit that case. > 2. Given that D_HASHBITS is not

Re: dentry cache order 7 is broken

2001-02-08 Thread Mitchell Blank Jr
David S. Miller wrote: > - hash = hash ^ (hash >> D_HASHBITS) ^ (hash >> D_HASHBITS*2); > + hash = hash ^ (hash >> D_HASHBITS) ^ > + (hash >> (D_HASHBITS+(D_HASHBITS/2))); Two comments: 1. The inode-cache has the exact same problem, but it'll require a lot of RAM to run

Re: dentry cache order 7 is broken

2001-02-07 Thread David S. Miller
dean gaudet writes: > also, for order > 7, was the real intention to use a shift of > (order*2)&31? No, the whole thing is buggered. How stupid, my fault. It was the 64-bit platform fascist at work :-) How does this work for you (against 2.4.x)? --- fs/dcache.c.~1~ Tue Feb 6 23:00:58 2

dentry cache order 7 is broken

2001-02-07 Thread dean gaudet
this looks to be a problem going back all the way to at least 2.2. if you've got 512Mb of RAM you end up with a dentry cache of order 7 -- 65536 entries. this results in a D_HASHBITS of 16. if you look at d_hash it contains this code: hash = hash ^ (hash >> D_HASHBITS) ^ (hash >> D_HAS