From: Steffen Klassert <steffen.klassert@secunet.com>
To: Paolo Abeni <pabeni@redhat.com>
Cc: <netdev@vger.kernel.org>,
Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Simon Horman <horms@kernel.org>,
Florian Westphal <fw@strlen.de>
Subject: Re: [PATCH net-next] xfrm: reduce struct sec_path size
Date: Mon, 9 Feb 2026 06:55:01 +0100 [thread overview]
Message-ID: <aYl2tYaNpdYVU8hN@secunet.com> (raw)
In-Reply-To: <83846bd2e3fa08899bd0162e41bfadfec95e82ef.1770398071.git.pabeni@redhat.com>
On Fri, Feb 06, 2026 at 06:14:36PM +0100, Paolo Abeni wrote:
> The mentioned struct has an hole and uses unnecessary wide type to
> store MAC length and indexes of very small arrays.
>
> It's also embedded into the skb_extensions, and the latter, due
> to recent CAN changes, may exceeds the 192 bytes mark (3 cachelines
> on x86_64 arch) on some reasonable configurations.
>
> Reordering and the sec_path fields, shrinking xfrm_offload.orig_mac_len
> to 16 bits and xfrm_offload.{len,olen,verified_cnt} to u8, we can save
> 16 bytes and keep skb_extensions size under control.
>
> Before:
>
> struct sec_path {
> int len;
> int olen;
> int verified_cnt;
>
> /* XXX 4 bytes hole, try to pack */$
> struct xfrm_state * xvec[6];
> struct xfrm_offload ovec[1];
>
> /* size: 88, cachelines: 2, members: 5 */
> /* sum members: 84, holes: 1, sum holes: 4 */
> /* last cacheline: 24 bytes */
> };
>
> After:
>
> struct sec_path {
> struct xfrm_state * xvec[6];
> struct xfrm_offload ovec[1];
> /* typedef u8 -> __u8 */ unsigned char len;
> /* typedef u8 -> __u8 */ unsigned char olen;
> /* typedef u8 -> __u8 */ unsigned char verified_cnt;
>
> /* size: 72, cachelines: 2, members: 5 */
> /* padding: 1 */
> /* last cacheline: 8 bytes */
> };
>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Steffen Klassert <steffen.klassert@secunet.com>
next prev parent reply other threads:[~2026-02-09 6:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-06 17:14 [PATCH net-next] xfrm: reduce struct sec_path size Paolo Abeni
2026-02-07 10:39 ` Florian Westphal
2026-02-09 5:55 ` Steffen Klassert [this message]
2026-02-11 5:00 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aYl2tYaNpdYVU8hN@secunet.com \
--to=steffen.klassert@secunet.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=herbert@gondor.apana.org.au \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.