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
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 :-)
>
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
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
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
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
6 matches
Mail list logo