android_kernel_google_msm/net/ipv4
Marcelo Ricardo Leitner b6153ead0d ipv4: move route garbage collector to work queue
Currently the route garbage collector gets called by dst_alloc() if it
have more entries than the threshold. But it's an expensive call, that
don't really need to be done by then.

Another issue with current way is that it allows running the garbage
collector with the same start parameters on multiple CPUs at once, which
is not optimal. A system may even soft lockup if the cache is big enough
as the garbage collectors will be fighting over the hash lock entries.

This patch thus moves the garbage collector to run asynchronously on a
work queue, much similar to how rt_expire_check runs.

There is one condition left that allows multiple executions, which is
handled by the next patch.

Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Zefan Li <lizefan@huawei.com>
2014-12-01 18:02:43 +08:00
..
netfilter netfilter: ipv4: defrag: set local_df flag on defragmented skb 2014-06-16 13:45:45 -07:00
af_inet.c
ah4.c
arp.c
cipso_ipv4.c
datagram.c ipv4: fix possible seqlock deadlock 2013-12-08 07:29:41 -08:00
devinet.c
esp4.c
fib_frontend.c
fib_lookup.h
fib_rules.c
fib_semantics.c ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation 2014-06-07 16:01:59 -07:00
fib_trie.c fib_trie: remove potential out of bound access 2013-09-14 06:02:09 -07:00
gre.c
icmp.c
igmp.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
inet_connection_sock.c
inet_diag.c inet_diag: fix inet_diag_dump_icsk() timewait socket state logic 2014-02-06 11:05:48 -08:00
inet_fragment.c
inet_hashtables.c net: do not call sock_put() on TIMEWAIT sockets 2013-11-04 04:23:40 -08:00
inet_lro.c
inet_timewait_sock.c
inetpeer.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
ip_forward.c Revert: "net: ip, ipv6: handle gso skbs in forwarding path" 2014-08-07 12:00:11 -07:00
ip_fragment.c
ip_gre.c ip_tunnel: fix kernel panic with icmp_dest_unreach 2013-06-27 11:27:32 -07:00
ip_input.c
ip_options.c ipv4: fix buffer overflow in ip_options_compile() 2014-07-28 07:06:46 -07:00
ip_output.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
ip_sockglue.c inet: fix addr_len/msg->msg_namelen assignment in recv_error and rxpmtu functions 2013-12-08 07:29:42 -08:00
ipcomp.c
ipconfig.c
ipip.c net: tunnels - enable module autoloading 2014-06-26 15:10:28 -04:00
ipmr.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
Kconfig
Makefile
netfilter.c
ping.c net: ipv4: current group_info should be put after using. 2014-06-07 16:01:59 -07:00
proc.c
protocol.c
raw.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
route.c ipv4: move route garbage collector to work queue 2014-12-01 18:02:43 +08:00
syncookies.c
sysctl_net_ipv4.c sysctl net: Keep tcp_syn_retries inside the boundary 2013-08-11 15:38:44 -07:00
tcp.c
tcp_bic.c
tcp_cong.c
tcp_cubic.c tcp_cubic: fix the range of delayed_ack 2014-06-07 16:01:59 -07:00
tcp_diag.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: fix false undo corner cases 2014-07-28 07:06:45 -07:00
tcp_ipv4.c inet: fix possible seqlock deadlocks 2013-12-08 07:29:42 -08:00
tcp_lp.c
tcp_memcontrol.c
tcp_minisocks.c
tcp_output.c tcp: fix false undo corner cases 2014-07-28 07:06:45 -07:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c
tcp_vegas.c tcp: Fix integer-overflow in TCP vegas 2014-08-14 08:42:36 +08:00
tcp_vegas.h
tcp_veno.c tcp: Fix integer-overflows in TCP veno 2014-08-14 08:42:36 +08:00
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c Revert "net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST" 2013-12-20 07:34:21 -08:00
udp_diag.c
udp_impl.h
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
xfrm4_output.c
xfrm4_policy.c
xfrm4_state.c
xfrm4_tunnel.c