Li RongQing 285189c78e netfilter: use kvmalloc_array to allocate memory for hashtable
nf_ct_alloc_hashtable is used to allocate memory for conntrack,
NAT bysrc and expectation hashtable. Assuming 64k bucket size,
which means 7th order page allocation, __get_free_pages, called
by nf_ct_alloc_hashtable, will trigger the direct memory reclaim
and stall for a long time, when system has lots of memory stress

so replace combination of __get_free_pages and vzalloc with
kvmalloc_array, which provides a overflow check and a fallback
if no high order memory is available, and do not retry to reclaim
memory, reduce stall

and remove nf_ct_free_hashtable, since it is just a kvfree

Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
Signed-off-by: Wang Li <wangli39@baidu.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2018-08-03 18:37:55 +02:00
..
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-18 15:08:31 -07:00
2018-07-26 14:06:34 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-06-22 06:21:34 +09:00
2018-07-26 14:11:34 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:43 -07:00
2018-06-29 06:51:51 -07:00