]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: rps: move received_rps field to a better location
authorEric Dumazet <edumazet@google.com>
Fri, 29 Mar 2024 15:42:25 +0000 (15:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Apr 2024 10:28:32 +0000 (11:28 +0100)
Commit 14d898f3c1b3 ("dev: Move received_rps counter next
to RPS members in softnet data") was unfortunate:

received_rps is dirtied by a cpu and never read by other
cpus in fast path.

Its presence in the hot RPS cache line (shared by many cpus)
is hurting RPS/RFS performance.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index 2c11c295cf64a8f527064d254450e34dc73a4764..7d12b5a9380f4f04c7d798e96b96d159dbf98d5f 100644 (file)
@@ -3204,6 +3204,7 @@ struct softnet_data {
        struct softnet_data     *rps_ipi_list;
 #endif
 
+       unsigned int            received_rps;
        bool                    in_net_rx_action;
        bool                    in_napi_threaded_poll;
 
@@ -3236,7 +3237,6 @@ struct softnet_data {
        unsigned int            cpu;
        unsigned int            input_queue_tail;
 #endif
-       unsigned int            received_rps;
        struct sk_buff_head     input_pkt_queue;
        struct napi_struct      backlog;