From: Stanislav Fomichev <sdf.kernel@gmail.com>
To: Mina Almasry <almasrymina@google.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch,
edumazet@kernel.org, horms@kernel.org, corbet@lwn.net,
skhan@linuxfoundation.org, rdunlap@infradead.org,
michael.chan@broadcom.com, pavan.chebbi@broadcom.com,
sdf@fomichev.me, bobbyeshleman@meta.com, asml.silence@gmail.com,
razor@blackwall.org, daniel@iogearbox.net, leitao@debian.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org
Subject: Re: [PATCH net-next v2 4/7] net: devmem: add a per-device netmem TX frag size limit
Date: Thu, 5 Nov 2026 09:53:41 -0800 [thread overview]
Message-ID: <auzCRJidvMSIOcKc@devvm16445.scu0.facebook.com> (raw)
In-Reply-To: <18e4e1daa184cadc.3137322e32382e36372e3935.ceab9.0000sendgmr@google.com>
On 11/04, Mina Almasry wrote:
> On Tue, Nov 3, 2026 at 3:51 PM Stanislav Fomichev <sdf.kernel@gmail.com> wrote:
> >
> > Devmem TX frags are bounded only by the net_iov size, which is about
> > to grow up to 2MB, more than some devices can describe in a single TX
> > descriptor.
> >
> > Add netmem_tx_max_frag_size, U32_MAX by default, and cap devmem TX
> > frags to the limit of the device the binding is attached to.
> >
> > Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
> > ---
> > Documentation/networking/net_cachelines/net_device.rst | 1 +
> > Documentation/networking/netmem.rst | 6 ++++++
> > include/linux/netdevice.h | 2 ++
> > net/core/datagram.c | 1 +
> > net/core/dev.c | 1 +
> > net/core/devmem.c | 1 +
> > net/core/devmem.h | 1 +
> > 7 files changed, 13 insertions(+)
> >
> ...
> > diff --git a/net/core/dev.c b/net/core/dev.c
> > index 3ac700d37e59..ba2f887dcd39 100644
> > --- a/net/core/dev.c
> > +++ b/net/core/dev.c
> > @@ -12350,6 +12350,7 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
> > dev->gro_ipv4_max_size = GRO_LEGACY_MAX_SIZE;
> > dev->tso_max_size = TSO_LEGACY_MAX_SIZE;
> > dev->tso_max_segs = TSO_MAX_SEGS;
> > + dev->netmem_tx_max_frag_size = U32_MAX;
>
> I wonder if netmem_tx_max_frag_size should default to PAGE_SIZE instead
> of U32_MAX, and have drivers opt in by raising it after verification
> (e.g. SZ_32K for bnxt and U32_MAX for mlx5 in this series)?
>
> With U32_MAX as the default, large frags are enabled on all NETMEM_TX
> drivers unless they opt out. For example, fbnic also has a 16-bit TX
> descriptor length (FBNIC_TWD_LEN_MASK) and only avoids hitting
> dma_error here because its tso_max_size happens to be 64KB today, and
> gve hasn't been tested with >PAGE_SIZE devmem TX frags yet. Defaulting
> to PAGE_SIZE (similar to tso_max_size = TSO_LEGACY_MAX_SIZE above) seems
> safer for existing and future drivers.
Hmm, I did not see fbnic :-/ That sounds fair, let me switch to an opt in,
should be safer, agreed... Will only option mlx/bnxt and most likely fbnic.
next prev parent reply other threads:[~2026-11-05 17:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 23:51 [PATCH net-next v2 0/7] net: devmem: size TX net_iovs from the dmabuf layout Stanislav Fomichev
2026-11-03 23:51 ` [PATCH net-next v2 1/7] bnxt_en: let the stack segment GSO skbs with too many frags Stanislav Fomichev
2026-11-04 16:47 ` Breno Leitao
2026-11-04 17:31 ` Michael Chan
2026-11-03 23:51 ` [PATCH net-next v2 2/7] net: devmem: charge the frag length to TX skb truesize Stanislav Fomichev
2026-11-03 23:51 ` [PATCH net-next v2 3/7] net: devmem: use niov_shift in net_devmem_get_niov_at() Stanislav Fomichev
2026-11-03 23:51 ` [PATCH net-next v2 4/7] net: devmem: add a per-device netmem TX frag size limit Stanislav Fomichev
2026-11-04 15:41 ` Mina Almasry
2026-11-05 17:53 ` Stanislav Fomichev [this message]
2026-11-03 23:51 ` [PATCH net-next v2 5/7] bnxt_en: limit netmem TX frags to 32KB Stanislav Fomichev
2026-11-04 17:35 ` Michael Chan
2026-11-03 23:51 ` [PATCH net-next v2 6/7] net: devmem: size TX net_iovs from the dmabuf sg table Stanislav Fomichev
2026-11-03 23:51 ` [PATCH net-next v2 7/7] selftests: drv-net: devmem: TX from a hugepage-backed dmabuf Stanislav Fomichev
2026-11-04 14:43 ` Dragos Tatulea
2026-11-05 17:50 ` Stanislav Fomichev
2026-11-04 0:14 ` [PATCH net-next v2 0/7] net: devmem: size TX net_iovs from the dmabuf layout Mina Almasry
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=auzCRJidvMSIOcKc@devvm16445.scu0.facebook.com \
--to=sdf.kernel@gmail.com \
--cc=almasrymina@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=asml.silence@gmail.com \
--cc=bobbyeshleman@meta.com \
--cc=corbet@lwn.net \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=edumazet@kernel.org \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavan.chebbi@broadcom.com \
--cc=razor@blackwall.org \
--cc=rdunlap@infradead.org \
--cc=sdf@fomichev.me \
--cc=skhan@linuxfoundation.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 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.