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.

Thanks!

Reply via email to