android_kernel_xiaomi_sm8350/net/ipv4
Dave Johnson 1344a41637 [IPV4]: Fix negative timer loop with lots of ipv4 peers.
From: Dave Johnson <djohnson+linux-kernel@sw.starentnetworks.com>

Found this bug while doing some scaling testing that created 500K inet
peers.

peer_check_expire() in net/ipv4/inetpeer.c isn't using inet_peer_gc_mintime
correctly and will end up creating an expire timer with less than the
minimum duration, and even zero/negative if enough active peers are
present.

If >65K peers, the timer will be less than inet_peer_gc_mintime, and with
>70K peers, the timer duration will reach zero and go negative.

The timer handler will continue to schedule another zero/negative timer in
a loop until peers can be aged.  This can continue for at least a few
minutes or even longer if the peers remain active due to arriving packets
while the loop is occurring.

Bug is present in both 2.4 and 2.6.  Same patch will apply to both just
fine.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-08-23 10:10:15 -07:00
..
ipvs [NET]: move config options out to individual protocols 2005-07-11 21:13:56 -07:00
netfilter [NETFILTER]: Fix HW checksum handling in TCPMSS target 2005-08-20 17:40:41 -07:00
af_inet.c [IPV4]: Fix up lots of little whitespace indentation stuff in fib_trie. 2005-07-19 14:01:51 -07:00
ah4.c
arp.c
datagram.c
devinet.c
esp4.c
fib_frontend.c
fib_hash.c
fib_lookup.h
fib_rules.c
fib_semantics.c [IPV4]: Fix memory leak during fib_info hash expansion. 2005-08-05 04:12:48 -07:00
fib_trie.c [IPV4]: Fix up lots of little whitespace indentation stuff in fib_trie. 2005-07-19 14:01:51 -07:00
icmp.c [IPV4]: Fix DST leak in icmp_push_reply() 2005-08-18 14:05:44 -07:00
igmp.c [IPV4]: fix IPv4 leave-group group matching 2005-07-08 17:48:38 -07:00
inetpeer.c [IPV4]: Fix negative timer loop with lots of ipv4 peers. 2005-08-23 10:10:15 -07:00
ip_forward.c
ip_fragment.c [IPV4]: Debug cleanup 2005-08-08 14:26:52 -07:00
ip_gre.c [NET]: fix oops after tunnel module unload 2005-07-30 17:46:44 -07:00
ip_input.c [IPV4]: Snmpv2 Mib IP counter ipInAddrErrors support 2005-06-28 13:06:23 -07:00
ip_options.c
ip_output.c [NETFILTER]: Revert nf_reset change 2005-07-12 11:57:52 -07:00
ip_sockglue.c [IPSEC]: Restrict socket policy loading to CAP_NET_ADMIN. 2005-08-06 06:33:15 -07:00
ipcomp.c [IPCOMP]: Fix false smp_processor_id warning 2005-08-18 14:36:59 -07:00
ipconfig.c [IPV4]: ipconfig.c: fix dhcp timeout behaviour 2005-06-28 13:21:12 -07:00
ipip.c [NET]: fix oops after tunnel module unload 2005-07-30 17:46:44 -07:00
ipmr.c [NET]: Spelling mistakes threshoulds -> thresholds 2005-07-30 17:41:59 -07:00
Kconfig [IPV4]: Fix Kconfig syntax error 2005-07-27 13:00:04 -07:00
Makefile [NET]: Move in_aton from net/ipv4/utils.c to net/core/utils.c 2005-07-27 15:24:42 -07:00
multipath_drr.c
multipath_random.c
multipath_rr.c
multipath_wrandom.c
multipath.c
proc.c
protocol.c
raw.c
route.c [IPV4]: Prevent oops when printing martian source 2005-07-11 21:01:42 -07:00
syncookies.c
sysctl_net_ipv4.c
tcp_bic.c [TCP]: Add TCP BIC congestion control module. 2005-06-23 12:23:25 -07:00
tcp_cong.c [TCP]: Allow choosing TCP congestion control via sockopt. 2005-06-23 20:37:36 -07:00
tcp_diag.c [TCP]: Report congestion control algorithm in tcp_diag. 2005-06-23 12:21:28 -07:00
tcp_highspeed.c [TCP]: Add High Speed TCP congestion control module. 2005-06-23 12:24:58 -07:00
tcp_htcp.c [TCP]: Add H-TCP congestion control module. 2005-06-23 12:28:11 -07:00
tcp_hybla.c [TCP]: Add TCP Hybla congestion control module. 2005-06-23 12:26:34 -07:00
tcp_input.c [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
tcp_ipv4.c [IPV4]: Debug cleanup 2005-08-08 14:26:52 -07:00
tcp_minisocks.c
tcp_output.c [TCP]: Do TSO deferral even if tail SKB can go out now. 2005-08-23 10:09:27 -07:00
tcp_scalable.c [TCP]: Add Scalable TCP congestion control module. 2005-06-23 12:29:07 -07:00
tcp_timer.c [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
tcp_vegas.c [TCP]: Add TCP Vegas congestion control module. 2005-06-23 12:27:19 -07:00
tcp_westwood.c [TCP]: Add TCP Westwood congestion control module. 2005-06-23 12:24:09 -07:00
tcp.c [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
udp.c [IPV4]: Debug cleanup 2005-08-08 14:26:52 -07:00
xfrm4_input.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_state.c
xfrm4_tunnel.c [NET]: Make ipip/ip6_tunnel independant of XFRM 2005-07-19 14:03:34 -07:00