Re: [PATCH] Fix panic in __d_lookup with high dentry hashtablecounts

From: David Miller
Date: Tue Jan 17 2012 - 12:32:09 EST


From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Tue, 17 Jan 2012 17:25:27 +0000

> On Tue, Jan 17, 2012 at 11:13:52AM -0600, Dimitri Sivanich wrote:
>> When the number of dentry cache hash table entries gets too high
>> (2147483648 entries), as happens by default on a 16TB system, use
>> of a signed integer in the dcache_init() initialization loop prevents
>> the dentry_hashtable from getting initialized, causing a panic in
>> __d_lookup().
>>
>> In addition, the _hash_mask returned from alloc_large_system_hash() does
>> not support more than a 32 bit hash table size.
>>
>> Changing the _hash_mask size returned from alloc_large_system_hash() to
>> support larger hash table sizes in the future, and changing loop counter
>> sizes appropriately.
>
> ... and I still would like to see somebody familiar with uses of other
> hashes to comment on the desirability of such monsters. For dcache and
> icache it's absolutely certain to be worse than useless. We are talking
> about 4Gbuckets here...

It's wrong in networking too.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/