mptcp: shrink mptcp_out_options struct
After the previous patch we can alias with a union several fields in mptcp_out_options. Such struct is stack allocated and memset() for each plain TCP out packet. Every saved byted counts. Before: pahole -EC mptcp_out_options # ... /* size: 136, cachelines: 3, members: 17 */ After: pahole -EC mptcp_out_options # ... /* size: 56, cachelines: 1, members: 9 */ Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1bff1e43a3
commit
d7b2690837
|
@ -58,10 +58,6 @@ struct mptcp_addr_info {
|
|||
struct mptcp_out_options {
|
||||
#if IS_ENABLED(CONFIG_MPTCP)
|
||||
u16 suboptions;
|
||||
u64 sndr_key;
|
||||
u64 rcvr_key;
|
||||
u64 ahmac;
|
||||
struct mptcp_addr_info addr;
|
||||
struct mptcp_rm_list rm_list;
|
||||
u8 join_id;
|
||||
u8 backup;
|
||||
|
@ -69,11 +65,23 @@ struct mptcp_out_options {
|
|||
reset_transient:1,
|
||||
csum_reqd:1,
|
||||
allow_join_id0:1;
|
||||
u32 nonce;
|
||||
u64 thmac;
|
||||
u32 token;
|
||||
u8 hmac[20];
|
||||
struct mptcp_ext ext_copy;
|
||||
union {
|
||||
struct {
|
||||
u64 sndr_key;
|
||||
u64 rcvr_key;
|
||||
};
|
||||
struct {
|
||||
struct mptcp_addr_info addr;
|
||||
u64 ahmac;
|
||||
};
|
||||
struct mptcp_ext ext_copy;
|
||||
struct {
|
||||
u32 nonce;
|
||||
u32 token;
|
||||
u64 thmac;
|
||||
u8 hmac[20];
|
||||
};
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue