linux_dsm_epyc7002/net
Florian Westphal 3378320907 netfilter: conntrack: collect all entries in one cycle
[ Upstream commit 4608fdfc07e116f9fc0895beb40abad7cdb5ee3d ]

Michal Kubecek reports that conntrack gc is responsible for frequent
wakeups (every 125ms) on idle systems.

On busy systems, timed out entries are evicted during lookup.
The gc worker is only needed to remove entries after system becomes idle
after a busy period.

To resolve this, always scan the entire table.
If the scan is taking too long, reschedule so other work_structs can run
and resume from next bucket.

After a completed scan, wait for 2 minutes before the next cycle.
Heuristics for faster re-schedule are removed.

GC_SCAN_INTERVAL could be exposed as a sysctl in the future to allow
tuning this as-needed or even turn the gc worker off.

Reported-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 18:56:55 +02:00
..
6lowpan
9p
802 net/802/garp: fix memleak in garp_request_join() 2021-07-31 08:16:11 +02:00
8021q
appletalk
atm
ax25
batman-adv batman-adv: Avoid WARN_ON timing related checks 2021-06-23 14:42:41 +02:00
bluetooth Bluetooth: hidp: use correct wait queue when removing ctrl_wait 2024-07-05 18:55:44 +02:00
bpf bpf: Fix NULL pointer dereference in bpf_get_local_storage() helper 2024-07-05 18:56:10 +02:00
bpfilter bpfilter: Specify the log level for the kmsg message 2021-07-14 16:56:29 +02:00
bridge net: bridge: fix memleak in br_add_if() 2024-07-05 18:54:25 +02:00
caif net: fix uninit-value in caif_seqpkt_sendmsg 2021-07-28 14:35:38 +02:00
can can: j1939: j1939_session_deactivate(): clarify lifetime of session object 2024-07-05 18:06:34 +02:00
ceph init: add dsm gpl source 2024-07-05 18:00:04 +02:00
core net: linkwatch: fix failure to restore device state across suspend/resume 2024-07-05 18:54:25 +02:00
dcb
dccp dccp: add do-while-0 stubs for dccp_pr_debug macros 2024-07-05 18:55:45 +02:00
decnet net: decnet: Fix sleeping inside in af_decnet 2021-07-28 14:35:38 +02:00
dns_resolver
dsa net: dsa: properly check for the bridge_leave methods in dsa_switch_bridge_leave() 2021-07-25 14:36:20 +02:00
ethernet init: add dsm gpl source 2024-07-05 18:00:04 +02:00
ethtool net: ethtool: clear heap allocations for ethtool function 2021-06-30 08:47:20 -04:00
hsr net: hsr: fix mac_len checks 2021-06-03 09:00:50 +02:00
ieee802154 net: Fix memory leak in ieee802154_raw_deliver 2024-07-05 18:54:24 +02:00
ife
ipv4 net: igmp: increase size of mr_ifc_count 2024-07-05 18:54:39 +02:00
ipv6 init: add dsm gpl source 2024-07-05 18:00:04 +02:00
iucv
kcm
key init: add dsm gpl source 2024-07-05 18:00:04 +02:00
l2tp
l3mdev
lapb
llc net: llc: fix skb_over_panic 2024-07-05 18:04:53 +02:00
mac80211 mac80211: fix enabling 4-address mode on a sta vif after assoc 2024-07-05 18:04:07 +02:00
mac802154
mpls
mptcp mptcp: fix warning in __skb_flow_dissect() when do syn cookie for subflow join 2021-07-28 14:35:34 +02:00
ncsi
netfilter netfilter: conntrack: collect all entries in one cycle 2024-07-05 18:56:55 +02:00
netlabel netlabel: Fix memory leak in netlbl_mgmt_add_common 2021-07-14 16:56:22 +02:00
netlink netlink: disable IRQs for netlink_lock_table() 2021-06-16 12:01:36 +02:00
netrom netrom: Decrease sock refcount when sock timers expire 2021-07-28 14:35:38 +02:00
nfc net/nfc/rawsock.c: fix a permission check bug 2021-06-16 12:01:35 +02:00
nsh
openvswitch ovs: clear skb->tstamp in forwarding path 2024-07-05 18:55:47 +02:00
packet init: add dsm gpl source 2024-07-05 18:00:04 +02:00
phonet
psample
qrtr net: qrtr: fix another OOB Read in qrtr_endpoint_post 2024-07-05 18:56:10 +02:00
rds net: rds: fix memory leak in rds_recvmsg 2021-06-23 14:42:42 +02:00
rfkill
rose
rxrpc
sched sch_cake: fix srchost/dsthost hashing mode 2024-07-05 18:55:47 +02:00
sctp sctp: move the active_key update after sh_keys is added 2024-07-05 18:52:08 +02:00
smc net/smc: fix wait on already cleared link 2024-07-05 18:54:23 +02:00
strparser
sunrpc init: add dsm gpl source 2024-07-05 18:00:04 +02:00
switchdev
tipc tipc: do not write skb_shinfo frags when doing decrytion 2024-07-05 18:04:53 +02:00
tls tls: prevent oversized sendfile() hangs by ignoring MSG_MORE 2021-07-14 16:56:24 +02:00
unix init: add dsm gpl source 2024-07-05 18:00:04 +02:00
vmw_vsock vsock/virtio: avoid potential deadlock when vsock device remove 2024-07-05 18:54:39 +02:00
wimax
wireless cfg80211: Fix possible memory leak in function cfg80211_bss_update 2024-07-05 18:03:16 +02:00
x25 net/x25: Return the correct errno code 2021-06-18 10:00:06 +02:00
xdp xsk: Fix broken Tx ring validation 2021-07-14 16:56:23 +02:00
xfrm net: xfrm: Fix end of loop tests for list_for_each_entry 2024-07-05 18:55:30 +02:00
compat.c net: Return the correct errno code 2021-06-18 10:00:06 +02:00
devres.c
Kconfig init: add dsm gpl source 2024-07-05 18:00:04 +02:00
Makefile
socket.c net: make get_net_ns return error if NET_NS is disabled 2021-06-23 14:42:44 +02:00
sysctl_net.c