diff options
author | John Fastabend <john.fastabend@gmail.com> | 2016-02-17 22:59:30 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-02-18 02:44:12 (GMT) |
commit | e014860e31e2a66b1a94088504360a6ebc023564 (patch) | |
tree | 1957fb27866efd3fd57517f9bafe7d34d7a80ed7 /include/net | |
parent | a92265ce1cea3832a47103ae16afa328a396e9af (diff) | |
download | linux-e014860e31e2a66b1a94088504360a6ebc023564.tar.xz |
net: pack tc_cls_u32_knode struct slighter better
By packing the structure we can remove a few holes as Jamal
suggests.
before:
struct tc_cls_u32_knode {
struct tcf_exts * exts; /* 0 8 */
u8 fshift; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
u32 handle; /* 12 4 */
u32 val; /* 16 4 */
u32 mask; /* 20 4 */
u32 link_handle; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
struct tc_u32_sel * sel; /* 32 8 */
/* size: 40, cachelines: 1, members: 7 */
/* sum members: 33, holes: 2, sum holes: 7 */
/* last cacheline: 40 bytes */
};
after:
struct tc_cls_u32_knode {
struct tcf_exts * exts; /* 0 8 */
struct tc_u32_sel * sel; /* 8 8 */
u32 handle; /* 16 4 */
u32 val; /* 20 4 */
u32 mask; /* 24 4 */
u32 link_handle; /* 28 4 */
u8 fshift; /* 32 1 */
/* size: 40, cachelines: 1, members: 7 */
/* padding: 7 */
/* last cacheline: 40 bytes */
};
Suggested-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/pkt_cls.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 59789ca..2121df5 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -360,12 +360,12 @@ tcf_match_indev(struct sk_buff *skb, int ifindex) struct tc_cls_u32_knode { struct tcf_exts *exts; - u8 fshift; + struct tc_u32_sel *sel; u32 handle; u32 val; u32 mask; u32 link_handle; - struct tc_u32_sel *sel; + u8 fshift; }; struct tc_cls_u32_hnode { |