]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tcp: move sysctl_tcp_l3mdev_accept to netns_ipv4_read_rx
authorEric Dumazet <edumazet@google.com>
Thu, 10 Oct 2024 03:41:00 +0000 (03:41 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 11 Oct 2024 15:45:24 +0000 (08:45 -0700)
sysctl_tcp_l3mdev_accept is read from TCP receive fast path from
tcp_v6_early_demux(),
 __inet6_lookup_established,
  inet_request_bound_dev_if().

Move it to netns_ipv4_read_rx.

Remove the '#ifdef CONFIG_NET_L3_MASTER_DEV' that was guarding
its definition.

Note this adds a hole of three bytes that could be filled later.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Cc: Wei Wang <weiwan@google.com>
Cc: Coco Li <lixiaoyan@google.com>
Link: https://patch.msgid.link/20241010034100.320832-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
include/net/netns/ipv4.h
net/core/net_namespace.c

index 392e08a6ec046bc3f99f8f2416e71a6c8f78b091..629da6dc6d746ce8058cfbe2215d33d55ca4c19d 100644 (file)
@@ -59,7 +59,7 @@ u8                              sysctl_udp_early_demux
 u8                              sysctl_nexthop_compat_mode
 u8                              sysctl_fwmark_reflect
 u8                              sysctl_tcp_fwmark_accept
-u8                              sysctl_tcp_l3mdev_accept
+u8                              sysctl_tcp_l3mdev_accept                                         read_mostly         __inet6_lookup_established/inet_request_bound_dev_if
 u8                              sysctl_tcp_mtu_probing
 int                             sysctl_tcp_mtu_probe_floor
 int                             sysctl_tcp_base_mss
index 66a4cffc44ee27cb32a46c319345611262735ea3..3b1de80b5c25324c1e43540ebe0f2bcafc4859c6 100644 (file)
@@ -76,6 +76,8 @@ struct netns_ipv4 {
        __cacheline_group_begin(netns_ipv4_read_rx);
        u8 sysctl_ip_early_demux;
        u8 sysctl_tcp_early_demux;
+       u8 sysctl_tcp_l3mdev_accept;
+       /* 3 bytes hole, try to pack */
        int sysctl_tcp_reordering;
        int sysctl_tcp_rmem[3];
        __cacheline_group_end(netns_ipv4_read_rx);
@@ -151,9 +153,6 @@ struct netns_ipv4 {
 
        u8 sysctl_fwmark_reflect;
        u8 sysctl_tcp_fwmark_accept;
-#ifdef CONFIG_NET_L3_MASTER_DEV
-       u8 sysctl_tcp_l3mdev_accept;
-#endif
        u8 sysctl_tcp_mtu_probing;
        int sysctl_tcp_mtu_probe_floor;
        int sysctl_tcp_base_mss;
index a5bc1fd8b0341f401b6b48ea7c26b2ac07d1ddb6..0a86aff17f512bbeaa2795ab56748d8bb3b3fb71 100644 (file)
@@ -1159,11 +1159,13 @@ static void __init netns_ipv4_struct_check(void)
                                      sysctl_ip_early_demux);
        CACHELINE_ASSERT_GROUP_MEMBER(struct netns_ipv4, netns_ipv4_read_rx,
                                      sysctl_tcp_early_demux);
+       CACHELINE_ASSERT_GROUP_MEMBER(struct netns_ipv4, netns_ipv4_read_rx,
+                                     sysctl_tcp_l3mdev_accept);
        CACHELINE_ASSERT_GROUP_MEMBER(struct netns_ipv4, netns_ipv4_read_rx,
                                      sysctl_tcp_reordering);
        CACHELINE_ASSERT_GROUP_MEMBER(struct netns_ipv4, netns_ipv4_read_rx,
                                      sysctl_tcp_rmem);
-       CACHELINE_ASSERT_GROUP_SIZE(struct netns_ipv4, netns_ipv4_read_rx, 18);
+       CACHELINE_ASSERT_GROUP_SIZE(struct netns_ipv4, netns_ipv4_read_rx, 22);
 }
 #endif