]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: introduce per netns packet chains
authorPaolo Abeni <pabeni@redhat.com>
Thu, 20 Mar 2025 18:22:38 +0000 (19:22 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 24 Mar 2025 20:58:22 +0000 (13:58 -0700)
commitc353e8983e0dea5dbba7789033326e1ad34135b7
tree7d6915e7a8f2ee733b75e96ac0793414841b54d3
parent29abdf662597ae2e8f34664a5e03f217e816a9a3
net: introduce per netns packet chains

Currently network taps unbound to any interface are linked in the
global ptype_all list, affecting the performance in all the network
namespaces.

Add per netns ptypes chains, so that in the mentioned case only
the netns owning the packet socket(s) is affected.

While at that drop the global ptype_all list: no in kernel user
registers a tap on "any" type without specifying either the target
device or the target namespace (and IMHO doing that would not make
any sense).

Note that this adds a conditional in the fast path (to check for
per netns ptype_specific list) and increases the dataset size by
a cacheline (owing the per netns lists).

Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumaze@google.com>
Link: https://patch.msgid.link/ae405f98875ee87f8150c460ad162de7e466f8a7.1742494826.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/netdevice.h
include/net/hotdata.h
include/net/net_namespace.h
net/core/dev.c
net/core/hotdata.c
net/core/net-procfs.c
net/core/net_namespace.c