forked from mirrors/linux
		
	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 { | ||||||
|  | 			struct mptcp_addr_info addr; | ||||||
|  | 			u64 ahmac; | ||||||
|  | 		}; | ||||||
| 		struct mptcp_ext ext_copy; | 		struct mptcp_ext ext_copy; | ||||||
|  | 		struct { | ||||||
|  | 			u32 nonce; | ||||||
|  | 			u32 token; | ||||||
|  | 			u64 thmac; | ||||||
|  | 			u8 hmac[20]; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
| #endif | #endif | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Paolo Abeni
						Paolo Abeni