lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9b0309f9-803c-41e0-b456-bd9ac20e2277@hartkopp.net>
Date: Mon, 15 Sep 2025 12:18:09 +0200
From: Oliver Hartkopp <socketcan@...tkopp.net>
To: Vincent Mailhol <mailhol@...nel.org>,
 Marc Kleine-Budde <mkl@...gutronix.de>
Cc: linux-can@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] can: raw: reorder struct uniqframe's members to
 optimise packing



On 15.09.25 11:23, Vincent Mailhol wrote:
> struct uniqframe has one hole. Reorder the fields to save 8 bytes.
> 
> Statistics before:
> 
>    $ pahole --class_name=uniqframe net/can/raw.o
>    struct uniqframe {
>    	int                        skbcnt;               /*     0     4 */
> 
>    	/* XXX 4 bytes hole, try to pack */
> 
>    	const struct sk_buff  *    skb;                  /*     8     8 */
>    	unsigned int               join_rx_count;        /*    16     4 */
> 
>    	/* size: 24, cachelines: 1, members: 3 */
>    	/* sum members: 16, holes: 1, sum holes: 4 */
>    	/* padding: 4 */
>    	/* last cacheline: 24 bytes */
>    };
> 
> ...and after:
> 
>    $ pahole --class_name=uniqframe net/can/raw.o
>    struct uniqframe {
>    	const struct sk_buff  *    skb;                  /*     0     8 */
>    	int                        skbcnt;               /*     8     4 */
>    	unsigned int               join_rx_count;        /*    12     4 */
> 
>    	/* size: 16, cachelines: 1, members: 3 */
>    	/* last cacheline: 16 bytes */
>    };
> 
> Signed-off-by: Vincent Mailhol <mailhol@...nel.org>
Acked-by: Oliver Hartkopp <socketcan@...tkopp.net>

> ---
>   net/can/raw.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/can/raw.c b/net/can/raw.c
> index 76b867d21def209f5c6d236604c0e434a1c55a4d..db21d8a8c54d1b6a25a72c7a9d11d5c94f3187b5 100644
> --- a/net/can/raw.c
> +++ b/net/can/raw.c
> @@ -75,8 +75,8 @@ MODULE_ALIAS("can-proto-1");
>    */
>   
>   struct uniqframe {
> -	int skbcnt;
>   	const struct sk_buff *skb;
> +	int skbcnt;
>   	unsigned int join_rx_count;
>   };
>   
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ