On Thu, May 09, 2019 at 01:07:48PM +0200, Steffen Klassert wrote: > On Fri, May 03, 2019 at 05:46:13PM +0200, Florian Westphal wrote: > > xfrm_state_afinfo is a very large struct; its over 4kbyte on 64bit systems. > > > > The size comes from two arrays to store the l4 protocol type pointers > > (esp, ah, ipcomp and so on). > > > > There are only a handful of those, so just use pointers for protocols > > that we implement instead of mostly-empty arrays. > > > > This also removes the template init/sort related indirections. > > Structure size goes down to 120 bytes on x86_64. > > > > include/net/xfrm.h | 49 ++--- > > net/ipv4/ah4.c | 3 > > net/ipv4/esp4.c | 3 > > net/ipv4/esp4_offload.c | 4 > > net/ipv4/ipcomp.c | 3 > > net/ipv4/xfrm4_state.c | 45 ----- > > net/ipv4/xfrm4_tunnel.c | 3 > > net/ipv6/ah6.c | 4 > > net/ipv6/esp6.c | 3 > > net/ipv6/esp6_offload.c | 4 > > net/ipv6/ipcomp6.c | 3 > > net/ipv6/mip6.c | 6 > > net/ipv6/xfrm6_state.c | 137 ---------------- > > net/xfrm/xfrm_input.c | 24 +- > > net/xfrm/xfrm_policy.c | 2 > > net/xfrm/xfrm_state.c | 400 > > +++++++++++++++++++++++++++++++++++------------- > > 16 files changed, 343 insertions(+), 350 deletions(-) > > > > Florian Westphal (6): > > xfrm: remove init_tempsel indirection from xfrm_state_afinfo > > xfrm: remove init_temprop indirection from xfrm_state_afinfo > > xfrm: remove init_flags indirection from xfrm_state_afinfo > > xfrm: remove state and template sort indirections from > > xfrm_state_afinfo > > xfrm: remove eth_proto value from xfrm_state_afinfo > > xfrm: remove type and offload_type map from xfrm_state_afinfo > > I have deferred this until after the merge window. I'll > consider applying them then.
This is now applied to ipsec-next, thanks Florian!