From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Jakub Kicinski" <kuba@kernel.org>, "Nicolai Buchwitz" <nb@tipi-net.de>
Cc: "Théo Lebrun" <theo.lebrun@bootlin.com>,
nicolas.ferre@microchip.com, claudiu.beznea@tuxon.dev,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
pabeni@redhat.com, netdev@vger.kernel.org
Subject: Re: [PATCH net-next] net: macb: allow MTU changes while the interface is running
Date: Wed, 18 Mar 2026 10:53:37 +0100 [thread overview]
Message-ID: <DH5TETVK34CG.V7P9P9Z1AAKL@bootlin.com> (raw)
In-Reply-To: <20260317162303.4065e307@kernel.org>
On Wed Mar 18, 2026 at 12:23 AM CET, Jakub Kicinski wrote:
> On Tue, 17 Mar 2026 23:58:21 +0100 Nicolai Buchwitz wrote:
>> On 17.3.2026 23:23, Jakub Kicinski wrote:
>> > On Tue, 17 Mar 2026 18:00:02 +0100 Théo Lebrun wrote:
>> >> Reviewed-by: Théo Lebrun <theo.lebrun@bootlin.com>
>> >
>> > I told you recently that open / close is not allowed.
>> > So why are you putting a rb tag on a patch which does exactly that?
>> >
>> > https://lore.kernel.org/all/20260306190948.44d23f8f@kernel.org/
Ah, I might have misunderstood at the time.
> allocate all necessary resources upfront then just swap them in
> and reconfigure HW
In .set_channels() context, does "upfront" mean
(1) alloc all queue buffers at probe (and never dealloc) or
(2) alloc new buffer at operation start, swap in, then dealloc?
I had understood #1. I didn't see how that applied to this series (an
MTU change) which of course must realloc. But now it seems it was #2 as
you pointed to fbnic as reference and that's what fbnic_set_channels()
does.
>> Just checking if I got the idea before submitting another approach.
>> Something like:
>
> Hm, not really. Take a look at fbnic_set_ringparam()
> You need some struct that's config + pointers to all the resources.
> And make all allocation helpers operate on that without touching the HW.
> Then you can just allocate a new struct, give it whatever config you
> need, call all the alloc helpers with it. Now you have a fully
> populated struct and haven't touched the HW yet at all. Stop HW,
> swap the resources, start HW.
>
> I did something similar for the nfp driver but that code has been
> slightly adulterated since I left Netronome so fbnic is clearer :)
Do you feel we should (1) clone the full `struct macb` as done by fbnic
or, (2) just partially, with the few interesting fields. Something like
`struct stmmac_dma_conf`.
stmmac is not the greatest example. They have this struct that carries
their buffers but they still "close -> update -> open" on operations
versus the optimal "alloc -> reconfigure_hw -> free".
With #2 we could use an unnamed structure field.
https://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html
See commit c4781dc3d1cf ("Kbuild: enable -fms-extensions").
struct macb_buffers {
struct macb_queue queues[N];
...
};
struct macb {
struct macb_buffers;
...
};
Goal is to keep `bp->queues` & co as before, to minimise the diff.
Thanks,
--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2026-03-18 9:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-16 9:27 [PATCH net-next] net: macb: allow MTU changes while the interface is running Nicolai Buchwitz
2026-03-17 17:00 ` Théo Lebrun
2026-03-17 19:31 ` Nicolai Buchwitz
2026-03-17 22:23 ` Jakub Kicinski
2026-03-17 22:58 ` Nicolai Buchwitz
2026-03-17 23:23 ` Jakub Kicinski
2026-03-18 9:53 ` Théo Lebrun [this message]
2026-03-18 11:25 ` Nicolai Buchwitz
2026-03-18 14:33 ` Théo Lebrun
2026-03-18 22:13 ` Jakub Kicinski
2026-03-17 19:42 ` Breno Leitao
2026-03-17 19:47 ` Breno Leitao
2026-03-17 20:11 ` Nicolai Buchwitz
2026-03-17 20:04 ` Nicolai Buchwitz
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=DH5TETVK34CG.V7P9P9Z1AAKL@bootlin.com \
--to=theo.lebrun@bootlin.com \
--cc=andrew+netdev@lunn.ch \
--cc=claudiu.beznea@tuxon.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=nb@tipi-net.de \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--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.