Commit f034b5d4 authored by David S. Miller's avatar David S. Miller

[XFRM]: Dynamic xfrm_state hash table sizing.

The grow algorithm is simple, we grow if:

1) we see a hash chain collision at insert, and
2) we haven't hit the hash size limit (currently 1*1024*1024 slots), and
3) the number of xfrm_state objects is > the current hash mask

All of this needs some tweaking.

Remove __initdata from "hashdist" so we can use it safely at run time.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8f126e37
...@@ -114,7 +114,7 @@ extern void *__init alloc_large_system_hash(const char *tablename, ...@@ -114,7 +114,7 @@ extern void *__init alloc_large_system_hash(const char *tablename,
#else #else
#define HASHDIST_DEFAULT 0 #define HASHDIST_DEFAULT 0
#endif #endif
extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */ extern int hashdist; /* Distribute hashes across NUMA nodes? */
#endif /* _LINUX_BOOTMEM_H */ #endif /* _LINUX_BOOTMEM_H */
...@@ -2363,7 +2363,7 @@ int percpu_pagelist_fraction_sysctl_handler(ctl_table *table, int write, ...@@ -2363,7 +2363,7 @@ int percpu_pagelist_fraction_sysctl_handler(ctl_table *table, int write,
return 0; return 0;
} }
__initdata int hashdist = HASHDIST_DEFAULT; int hashdist = HASHDIST_DEFAULT;
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
static int __init set_hashdist(char *str) static int __init set_hashdist(char *str)
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment