wireguard: peer: put frequently used members above cache lines
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 22 Feb 2021 16:25:46 +0000 (17:25 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 23 Feb 2021 23:59:31 +0000 (15:59 -0800)
The is_dead boolean is checked for every single packet, while the
internal_id member is used basically only for pr_debug messages. So it
makes sense to hoist up is_dead into some space formerly unused by a
struct hole, while demoting internal_api to below the lowest struct
cache line.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/wireguard/peer.h

index 23af409..aaff8de 100644 (file)
@@ -39,6 +39,7 @@ struct wg_peer {
        struct crypt_queue tx_queue, rx_queue;
        struct sk_buff_head staged_packet_queue;
        int serial_work_cpu;
+       bool is_dead;
        struct noise_keypairs keypairs;
        struct endpoint endpoint;
        struct dst_cache endpoint_cache;
@@ -61,9 +62,8 @@ struct wg_peer {
        struct rcu_head rcu;
        struct list_head peer_list;
        struct list_head allowedips_list;
-       u64 internal_id;
        struct napi_struct napi;
-       bool is_dead;
+       u64 internal_id;
 };
 
 struct wg_peer *wg_peer_create(struct wg_device *wg,