OSDN Git Service

netfilter: Reorder fields in 'struct nf_conntrack_expect'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 8 May 2023 16:53:14 +0000 (18:53 +0200)
committerFlorian Westphal <fw@strlen.de>
Thu, 18 May 2023 06:48:54 +0000 (08:48 +0200)
Group some variables based on their sizes to reduce holes.
On x86_64, this shrinks the size of 'struct nf_conntrack_expect' from 264
to 256 bytes.

This structure deserve a dedicated cache, so reducing its size looks nice.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
include/net/netfilter/nf_conntrack_expect.h

index 0855b60..cf0d81b 100644 (file)
@@ -26,6 +26,15 @@ struct nf_conntrack_expect {
        struct nf_conntrack_tuple tuple;
        struct nf_conntrack_tuple_mask mask;
 
+       /* Usage count. */
+       refcount_t use;
+
+       /* Flags */
+       unsigned int flags;
+
+       /* Expectation class */
+       unsigned int class;
+
        /* Function to call after setup and insertion */
        void (*expectfn)(struct nf_conn *new,
                         struct nf_conntrack_expect *this);
@@ -39,15 +48,6 @@ struct nf_conntrack_expect {
        /* Timer function; deletes the expectation. */
        struct timer_list timeout;
 
-       /* Usage count. */
-       refcount_t use;
-
-       /* Flags */
-       unsigned int flags;
-
-       /* Expectation class */
-       unsigned int class;
-
 #if IS_ENABLED(CONFIG_NF_NAT)
        union nf_inet_addr saved_addr;
        /* This is the original per-proto part, used to map the