From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Fan Ye <fy15309206903@gmail.com>
Cc: Mika Westerberg <westeri@kernel.org>,
Yehezkel Bernat <YehezkelShB@gmail.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
zhangjianrong <zhangjianrong5@huawei.com>
Subject: Re: [PATCH net v2] Revert "net: thunderbolt: Enable end-to-end flow control also in transmit"
Date: Tue, 28 Jul 2026 06:32:19 +0200 [thread overview]
Message-ID: <20260728043219.GN2365036@black.igk.intel.com> (raw)
In-Reply-To: <20260727123002.25225-1-fy15309206903@gmail.com>
On Mon, Jul 27, 2026 at 12:29:48PM +0000, Fan Ye wrote:
> This reverts commit a8065af3346ebd7c76ebc113451fb3ba94cf7769.
>
> Per the USB4 spec, a Transmit Descriptor Ring with E2E flow control
> disabled does not require any credits to be available before the Host
> Interface Adapter Layer transmits a tunneled packet from it. Once E2E is
> enabled on that ring the controller must first obtain end-to-end
> credits.
>
> The ASMedia ASM4242 USB4 host router (PCI 1b21:2425) never delivers
> those credits. The controller does accept the configuration: reading the
> ring OPTIONS register back right after tb_ring_start() returns exactly
> what was written, including RING_FLAG_E2E_FLOW_CONTROL (bit 28) and the
> E2E HopID field. No credit ever arrives though, so the Tx ring's
> hardware consumer index never advances and the link carries no traffic
> at all.
>
> Measured on two hosts connected point to point, onboard ASM4242 on MSI
> X870E and X870, v6.17, stock drivers/net/thunderbolt/main.c with only
> this revert applied on top:
>
> before: 100% packet loss to the peer; thunderbolt0 is up and the
> XDomain handshake completes ("new host found"), but iperf3
> fails with "No route to host" once the neighbour entry
> expires
> after: 0% packet loss, 0.28 ms RTT; iperf3 4.21 Gb/s one way and
> 5.17 Gb/s the other (5 runs each, stddev <= 0.02), 1
> retransmit in 10 s
>
> An instrumented build additionally showed a frozen-Tx-consumer watchdog
> firing ~30k times in a 10 s window before this change.
>
> Rx-side E2E is not touched by this revert, so peers that do return
> credits keep receive-side flow control.
>
> ASMedia does not look like an isolated case. The out-of-tree
> thunderbolt-ibverbs project disables native E2E on AMD NHI by default,
> noting that "Strix Halo has reproduced TX completion wedges with
> multiple native E2E rings active" -- the same failure mode, on a
> different vendor. Since the driver has no way to tell in advance which
> host router returns the credits, going back to the previous behaviour
> looks safer than adding a quirk per affected part; Tx-side E2E can be
> reintroduced as an opt-in for controllers that are known to implement
> the credit return.
>
> Note that the reverted commit was not fixing a reported problem, it was
> derived from the spec wording alone, so this revert is not expected to
> regress a known workload. Cc'ing the original author in case there was
> one.
>
> Fixes: a8065af3346e ("net: thunderbolt: Enable end-to-end flow control also in transmit")
> Cc: zhangjianrong <zhangjianrong5@huawei.com>
> Signed-off-by: Fan Ye <fy15309206903@gmail.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
next prev parent reply other threads:[~2026-07-28 4:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-27 12:29 [PATCH net v2] Revert "net: thunderbolt: Enable end-to-end flow control also in transmit" Fan Ye
2026-07-28 4:32 ` Mika Westerberg [this message]
2026-07-30 23:20 ` patchwork-bot+netdevbpf
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=20260728043219.GN2365036@black.igk.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=YehezkelShB@gmail.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fy15309206903@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=westeri@kernel.org \
--cc=zhangjianrong5@huawei.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.