Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Stanislav Fomichev <sdf.kernel@gmail.com>
Cc: <netdev@vger.kernel.org>, <davem@davemloft.net>,
	<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<anthony.l.nguyen@intel.com>, <przemyslaw.kitszel@intel.com>,
	<andrew+netdev@lunn.ch>, <saeedm@nvidia.com>, <tariqt@nvidia.com>,
	<mbloch@nvidia.com>, <maxime.chevallier@bootlin.com>,
	<mcoquelin.stm32@gmail.com>, <alexandre.torgue@foss.st.com>,
	<aleksander.lobakin@intel.com>, <horms@kernel.org>,
	<magnus.karlsson@intel.com>, <sdf@fomichev.me>, <ast@kernel.org>,
	<daniel@iogearbox.net>, <hawk@kernel.org>,
	<john.fastabend@gmail.com>, <guoren@kernel.org>,
	<dtatulea@nvidia.com>, <witu@nvidia.com>, <martin.lau@kernel.org>,
	<yoong.siang.song@intel.com>, <intel-wired-lan@lists.osuosl.org>,
	<linux-kernel@vger.kernel.org>, <linux-rdma@vger.kernel.org>,
	<linux-stm32@st-md-mailman.stormreply.com>,
	<linux-arm-kernel@lists.infradead.org>, <bpf@vger.kernel.org>,
	<linux-csky@vger.kernel.org>, <leon@kernel.org>
Subject: Re: [PATCH net v3 3/3] net: stmmac: document oversized AF_XDP frame handling
Date: Fri, 21 Aug 2026 12:31:42 +0200	[thread overview]
Message-ID: <aogpDsa8hz6CPpD3@boxer> (raw)
In-Reply-To: <aoeoJ6-njBxcWs4w@devvm7509.cco0.facebook.com>

On Thu, Aug 20, 2026 at 06:29:16PM -0700, Stanislav Fomichev wrote:
> On 08/20, Maciej Fijalkowski wrote:
> > On Wed, Aug 19, 2026 at 09:05:35AM -0700, Stanislav Fomichev wrote:
> > > stmmac drops AF_XDP zero-copy frames that exceed taprio's queueMaxSDU
> > > after xsk_tx_peek_desc() has reserved their completion entries.
> > > 
> > > Completing a rejected descriptor is unsafe because AF_XDP completions are
> > > ordered: xsk_tx_completed(pool, 1) would complete the oldest outstanding
> > > descriptor, which may still be owned by hardware. Instead, leave the
> > > completion pending so the ring eventually wedges and increment the drop
> > > counter to expose the application error without risking hardware
> > > misbehavior.
> > > 
> > > Document this intentional ring imbalance at the check.
> > > 
> > > Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
> > > ---
> > >  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > > 
> > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > index 62de03e65a90..6a532747c039 100644
> > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > @@ -2713,6 +2713,10 @@ static bool stmmac_xdp_xmit_zc(struct stmmac_priv *priv, u32 queue, u32 budget)
> > >  		if (priv->est && priv->est->enable &&
> > >  		    priv->est->max_sdu[queue] &&
> > >  		    xdp_desc.len > priv->est->max_sdu[queue]) {
> > > +			/* Completions are ordered, so this descriptor cannot
> > > +			 * be completed safely. Wedge the ring to expose the
> > > +			 * application error instead.
> > > +			 */
> > >  			priv->xstats.max_sdu_txq_drop[queue]++;
> > >  			continue;
> > 
> > Hmm. I read the discussion on v2. Maybe we could cancel cq entry here in
> > this branch? Also it feels like something achievable at bind time when
> > taprio is configured and vice versa?
> > 
> > Otherwise we over-commit cq entries.
> 
> What do you want to achieve with the cancel here? IIUC it will make it look
> as if some (if the user has posted many) tx descriptor has not been consumed
> by the kernel?

Oof. My bad. I meant completely different thing :D

Right now the semantics are that we post invalid/dropped addrs to cq (the
rationale was that dropped descs are gone and unreachable which might
eventually lead to dying traffic).

We should submit xdp_desc's addr to cq.

Regarding the comment included in code I must disagree. CQ entries no
longer imply that 'this particular descriptor has been successfully sent
by HW'.

> 
> I do agree that a better idea is to probably do these checks during control
> paths, but it's a bit more involved (and not sure if it's possible? if we
> have a bunch of xsk sockets and we change that max_sdu, do we go over all
> sockets on the system somehow?). My main motivation with this patch was
> to make our LLM reviewers less chatty about preexisting issues.

I hear you, however I feel like we do not know this driver too much and
probably we don't have a HW to test out such changes, so maybe let us try
to fix existing behavior?


      reply	other threads:[~2026-08-21 10:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-19 16:05 [PATCH net v3 0/3] xsk: pre-existing AF_XDP TX metadata fixes from Sashiko Stanislav Fomichev
2026-08-19 16:05 ` [PATCH net v3 1/3] xsk: align TX metadata layout across ABIs Stanislav Fomichev
2026-08-19 16:05 ` [PATCH net v3 2/3] xsk: honor XDP_TX_METADATA in zero-copy path Stanislav Fomichev
2026-08-21 11:21   ` Maciej Fijalkowski
2026-08-21 12:22   ` Loktionov, Aleksandr
2026-08-19 16:05 ` [PATCH net v3 3/3] net: stmmac: document oversized AF_XDP frame handling Stanislav Fomichev
2026-08-20 15:33   ` Maciej Fijalkowski
2026-08-21  1:29     ` Stanislav Fomichev
2026-08-21 10:31       ` Maciej Fijalkowski [this message]

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=aogpDsa8hz6CPpD3@boxer \
    --to=maciej.fijalkowski@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dtatulea@nvidia.com \
    --cc=edumazet@google.com \
    --cc=guoren@kernel.org \
    --cc=hawk@kernel.org \
    --cc=horms@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=john.fastabend@gmail.com \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=magnus.karlsson@intel.com \
    --cc=martin.lau@kernel.org \
    --cc=maxime.chevallier@bootlin.com \
    --cc=mbloch@nvidia.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=saeedm@nvidia.com \
    --cc=sdf.kernel@gmail.com \
    --cc=sdf@fomichev.me \
    --cc=tariqt@nvidia.com \
    --cc=witu@nvidia.com \
    --cc=yoong.siang.song@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox