On Fri, 2012-08-03 at 16:23 +0200, Sasha Levin wrote:
This hashtable implementation is using hlist buckets to provide a simple
hashtable to prevent it from getting reimplemented all over the kernel.
+static void hash_add(struct hash_table *ht, struct hlist_node *node, long key)
+{
+ hlist_add_head(node,
+ &ht->buckets[hash_long((unsigned long)key, HASH_BITS(ht))]);
+}
+
Why key is a long, casted later to "unsigned long" ?
hash_long() is expensive on 64bit arches, and not really needed
if key is an u32 from the beginning ( I am referring to your patches 6 &
7 using jhash() )
Maybe you could use a macro, so that we can automatically select
hash_32() if key is an u32, and hash_long() for other types.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>