From: Simon Horman <horms@kernel.org>
To: Breno Leitao <leitao@debian.org>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Kees Cook <kees@kernel.org>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
keescook@chromium.org,
nex.sw.ncis.osdt.itp.upstreaming@intel.com,
linux-hardening@vger.kernel.org,
Alexander Lobakin <aleksander.lobakin@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Jiri Pirko <jiri@resnulli.us>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Daniel Borkmann <daniel@iogearbox.net>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Johannes Berg <johannes.berg@intel.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
"open list:NETWORKING [GENERAL]" <netdev@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next v2] netdevice: define and allocate &net_device _properly_
Date: Tue, 9 Jul 2024 19:11:28 +0100 [thread overview]
Message-ID: <20240709181128.GO346094@kernel.org> (raw)
In-Reply-To: <20240709125433.4026177-1-leitao@debian.org>
On Tue, Jul 09, 2024 at 05:54:25AM -0700, Breno Leitao wrote:
> From: Alexander Lobakin <aleksander.lobakin@intel.com>
>
> In fact, this structure contains a flexible array at the end, but
> historically its size, alignment etc., is calculated manually.
> There are several instances of the structure embedded into other
> structures, but also there's ongoing effort to remove them and we
> could in the meantime declare &net_device properly.
> Declare the array explicitly, use struct_size() and store the array
> size inside the structure, so that __counted_by() can be applied.
> Don't use PTR_ALIGN(), as SLUB itself tries its best to ensure the
> allocated buffer is aligned to what the user expects.
> Also, change its alignment from %NETDEV_ALIGN to the cacheline size
> as per several suggestions on the netdev ML.
>
> bloat-o-meter for vmlinux:
>
> free_netdev 445 440 -5
> netdev_freemem 24 - -24
> alloc_netdev_mqs 1481 1450 -31
>
> On x86_64 with several NICs of different vendors, I was never able to
> get a &net_device pointer not aligned to the cacheline size after the
> change.
>
> Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
> Signed-off-by: Breno Leitao <leitao@debian.org>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Hi Breno,
Some kernel doc warnings from my side.
Flagged by: kernel-doc -none
> ---
> Changelog:
>
> v2:
> * Rebased Alexander's patch on top of f750dfe825b90 ("ethtool: provide
> customized dim profile management").
> * Removed the ALIGN() of SMP_CACHE_BYTES for sizeof_priv.
>
> v1:
> * https://lore.kernel.org/netdev/90fd7cd7-72dc-4df6-88ec-fbc8b64735ad@intel.com
>
> include/linux/netdevice.h | 12 +++++++-----
> net/core/dev.c | 30 ++++++------------------------
> net/core/net-sysfs.c | 2 +-
> 3 files changed, 14 insertions(+), 30 deletions(-)
>
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index 93558645c6d0..f0dd499244d4 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -2199,10 +2199,10 @@ struct net_device {
> unsigned short neigh_priv_len;
> unsigned short dev_id;
> unsigned short dev_port;
> - unsigned short padded;
padded should also be removed from the Kernel doc for this structure.
> + int irq;
> + u32 priv_len;
And irq and priv_len should be added to the Kernel doc for this structure.
>
> spinlock_t addr_list_lock;
> - int irq;
>
> struct netdev_hw_addr_list uc;
> struct netdev_hw_addr_list mc;
...
next prev parent reply other threads:[~2024-07-09 18:11 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-09 12:54 [PATCH net-next v2] netdevice: define and allocate &net_device _properly_ Breno Leitao
2024-07-09 15:27 ` Eric Dumazet
2024-07-09 20:22 ` Breno Leitao
2024-07-10 11:19 ` Breno Leitao
2024-07-10 17:04 ` Eric Dumazet
2024-07-11 12:54 ` Alexander Lobakin
2024-07-11 15:41 ` Eric Dumazet
2024-07-09 16:02 ` Kees Cook
2024-07-09 18:11 ` Simon Horman [this message]
2024-07-09 20:19 ` Breno Leitao
2024-07-09 20:37 ` Kees Cook
2024-07-10 7:27 ` Simon Horman
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=20240709181128.GO346094@kernel.org \
--to=horms@kernel.org \
--cc=aleksander.lobakin@intel.com \
--cc=bigeasy@linutronix.de \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gustavoars@kernel.org \
--cc=hkallweit1@gmail.com \
--cc=jiri@resnulli.us \
--cc=johannes.berg@intel.com \
--cc=kees@kernel.org \
--cc=keescook@chromium.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nex.sw.ncis.osdt.itp.upstreaming@intel.com \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.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.