mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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
					
				
					 1 changed files with 17 additions and 9 deletions
				
			
		| 
						 | 
					@ -58,10 +58,6 @@ struct mptcp_addr_info {
 | 
				
			||||||
struct mptcp_out_options {
 | 
					struct mptcp_out_options {
 | 
				
			||||||
#if IS_ENABLED(CONFIG_MPTCP)
 | 
					#if IS_ENABLED(CONFIG_MPTCP)
 | 
				
			||||||
	u16 suboptions;
 | 
						u16 suboptions;
 | 
				
			||||||
	u64 sndr_key;
 | 
					 | 
				
			||||||
	u64 rcvr_key;
 | 
					 | 
				
			||||||
	u64 ahmac;
 | 
					 | 
				
			||||||
	struct mptcp_addr_info addr;
 | 
					 | 
				
			||||||
	struct mptcp_rm_list rm_list;
 | 
						struct mptcp_rm_list rm_list;
 | 
				
			||||||
	u8 join_id;
 | 
						u8 join_id;
 | 
				
			||||||
	u8 backup;
 | 
						u8 backup;
 | 
				
			||||||
| 
						 | 
					@ -69,11 +65,23 @@ struct mptcp_out_options {
 | 
				
			||||||
	   reset_transient:1,
 | 
						   reset_transient:1,
 | 
				
			||||||
	   csum_reqd:1,
 | 
						   csum_reqd:1,
 | 
				
			||||||
	   allow_join_id0:1;
 | 
						   allow_join_id0:1;
 | 
				
			||||||
	u32 nonce;
 | 
						union {
 | 
				
			||||||
	u64 thmac;
 | 
							struct {
 | 
				
			||||||
	u32 token;
 | 
								u64 sndr_key;
 | 
				
			||||||
	u8 hmac[20];
 | 
								u64 rcvr_key;
 | 
				
			||||||
	struct mptcp_ext ext_copy;
 | 
							};
 | 
				
			||||||
 | 
							struct {
 | 
				
			||||||
 | 
								struct mptcp_addr_info addr;
 | 
				
			||||||
 | 
								u64 ahmac;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							struct mptcp_ext ext_copy;
 | 
				
			||||||
 | 
							struct {
 | 
				
			||||||
 | 
								u32 nonce;
 | 
				
			||||||
 | 
								u32 token;
 | 
				
			||||||
 | 
								u64 thmac;
 | 
				
			||||||
 | 
								u8 hmac[20];
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue