diff options
| author | Eric Dumazet <[email protected]> | 2007-07-15 23:38:05 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-07-16 09:05:35 -0700 |
| commit | 1037b83bd04e31449dc9323f1e8ddada4264ef66 (patch) | |
| tree | aad6be88185e675503847d3cf43a257ceb93d0f9 /include/linux | |
| parent | b92151bab91ef906378d3e0e7128d55dd641e966 (diff) | |
MM: alloc_large_system_hash() can free some memory for non power-of-two bucketsize
alloc_large_system_hash() is called at boot time to allocate space for
several large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most setups, alloc_large_system_hash() allocates one big page (order >
0) with __get_free_pages(GFP_ATOMIC, order). This single high_order page
has a power-of-two size, bigger than the needed size.
We can free all pages that wont be used by the hash table.
On a 1GB i386 machine, this patch saves 128 KB of LOWMEM memory.
TCP established hash table entries: 32768 (order: 6, 393216 bytes)
Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions