From: Johannes Berg <johannes@sipsolutions.net>
To: Kuniyuki Iwashima <kuniyu@amazon.com>
Cc: alexandre.ferrieux@gmail.com, kuni1840@gmail.com,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH v1 wl-next 1/3] wifi: wext: Move wext_nlevents to net->gen[].
Date: Wed, 16 Oct 2024 10:56:44 +0200 [thread overview]
Message-ID: <f677361da9e1e4bb032e62301255ab705252e016.camel@sipsolutions.net> (raw)
In-Reply-To: <20241016004956.74702-1-kuniyu@amazon.com>
+netdev, I think we're starting to discuss more general things :)
On Tue, 2024-10-15 at 17:49 -0700, Kuniyuki Iwashima wrote:
> From: Johannes Berg <johannes@sipsolutions.net>
> Date: Tue, 15 Oct 2024 08:36:24 +0200
> > On Mon, 2024-10-14 at 13:55 -0700, Kuniyuki Iwashima wrote:
> > > CONFIG_WEXT_CORE cannot be built as a module
> >
> > Isn't that precisely an argument for _not_ using net->gen[] with all the
> > additional dynamic allocations that implies?
>
> Exactly...
>
> Recently I was thinking most of the structs in struct net (except for
> first-class citizens like ipv4/ipv6) should use net->gen[] given the
> distro kernel enables most configs.
Wait I'm confused, to me it seems you're contradicting yourself? :)
If we agree that making it use net->gen[] is more overhead since it
requires additional allocations (which necessarily require more memory
due to alignment etc., but even without that because now you needed
wext_net->net too) ...
Then why do you think more should use net->gen[] if it's built-in?
> But yes, WEXT is always built-in.
I can see an argument for things that aren't always present, obviously,
like bonding and pktgen, but I don't see much of an argument for things
like wext that are either present or not?
> Probably because wext_nlevents was just before a cacheline
> on my setup ?
>
> $ pahole -EC net vmlinux | grep net_generic -C 30
> ...
> } wext_nlevents; /* 2536 24 */
> /* --- cacheline 40 boundary (2560 bytes) --- */
> struct net_generic * gen; /* 2560 8 */
I'd argue that doesn't really mean it makes sense to pull it into
net->gen (where it gets accessed via two indirect pointers)?
That's an argument for reordering things there perhaps, but in struct
net that's probably not too much of an issue unless it shares a
cacheline with something that's used all the time?
johannes
next prev parent reply other threads:[~2024-10-16 8:56 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-14 20:55 [PATCH v1 wl-next 0/3] wifi: wext: Namespacify wireless_nlevent_flush() calls Kuniyuki Iwashima
2024-10-14 20:55 ` [PATCH v1 wl-next 1/3] wifi: wext: Move wext_nlevents to net->gen[] Kuniyuki Iwashima
2024-10-15 6:36 ` Johannes Berg
2024-10-16 0:49 ` Kuniyuki Iwashima
2024-10-16 8:56 ` Johannes Berg [this message]
2024-10-16 23:58 ` Kuniyuki Iwashima
2024-10-17 8:06 ` Johannes Berg
2024-10-14 20:55 ` [PATCH v1 wl-next 2/3] wifi: wext: Convert wireless_nlevent_work to per-netns work Kuniyuki Iwashima
2024-10-14 20:55 ` [PATCH v1 wl-next 3/3] wifi: wext: Don't iterate all netns in wireless_nlevent_flush() Kuniyuki Iwashima
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=f677361da9e1e4bb032e62301255ab705252e016.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=alexandre.ferrieux@gmail.com \
--cc=kuni1840@gmail.com \
--cc=kuniyu@amazon.com \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox