Questions about alloc_large_system_hash() and TLB entries

From: Eric Dumazet
Date: Mon Jan 30 2006 - 04:02:21 EST


alloc_large_system_hash() is used to allocate large hash tables at boot time.

Example on a 2 nodes NUMA machine :

Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
IP route cache hash table entries: 2097152 (order: 12, 16777216 bytes)
TCP established hash table entries: 2097152 (order: 12, 16777216 bytes)

Memory is taken from :
bootmem if (flags & HASH_EARLY)
__vmalloc() if (hashdist is set) (NUMA knob)
__get_free_pages(GFP_ATOMIC, order);


What would be the needed changes in the code to get both :

- Allocate ram equally from all the nodes of the machine

- Use large pages (2MB) to lower TLB stress

Thank you
Eric
-
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/