From: Luka Gejak <luka.gejak@linux.dev>
To: Bitterblue Smith <rtl8821cerfe2@gmail.com>,
Ping-Ke Shih <pkshih@realtek.com>, Kalle Valo <kvalo@kernel.org>
Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>,
Brian Norris <briannorris@chromium.org>,
Stanislaw Gruszka <sgruszka@redhat.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, luka.gejak@linux.dev
Subject: Re: [PATCH] wifi: rtw88: increase TX report timeout to fix race condition
Date: Fri, 01 May 2026 22:46:51 +0200 [thread overview]
Message-ID: <6CD170FE-CAED-4B91-AEED-A1AFB98FFE8A@linux.dev> (raw)
In-Reply-To: <72f6fffd-bd77-437f-a9d9-6a542a8b365b@gmail.com>
On May 1, 2026 9:26:30 PM GMT+02:00, Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
>On 01/05/2026 18:04, luka.gejak@linux.dev wrote:
>> From: Luka Gejak <luka.gejak@linux.dev>
>>
>> The driver expects the firmware to report TX status within 500ms.
>> However, a race condition exists when the hardware is under heavy TX
>> load and is simultaneously interrupted by background scans or
>> power-saving state transitions. During these events, the firmware may
>> go off-channel for longer than 500ms, delaying the TX reports.
>>
Hi Bitterblue,
thanks for the review.
>
>But power saving state transitions should not happen during heavy TX load.
>
You are absolutely right that power save transitions don't happen
during heavy TX. The issue is strictly tied to off-channel dwell time.
I reliably trigger this on my rtl8723du (USB) by forcing background
scans (iw dev wlanX scan) while under heavy iperf3 load. The firmware
goes off-channel to scan, which delays the TX report well beyond the
current 500ms threshold.
>> When this happens, the purge timer fires prematurely, dropping the
>> tracking skbs from the queue and spamming the kernel log with:
>> "failed to get tx report from firmware". Dropping these tracking skbs
>> prevents the driver from reporting TX status back to mac80211, which
>> breaks rate control accounting and degrades performance.
>>
>
>But mac80211 doesn't handle rate control for these chips. How much does
>performance degrade?
>
I understand the firmware handles that internally. The performance
degradation I am actually seeing is TCP window collapse, as the host
stack interprets the dropped tracking skbs as packet loss. In my
testing with iperf3, throughput drops from a steady 80-90 Mbps to
near-zero for nearly 2 seconds following the scan before recovery
begins.
>> Increase RTW_TX_PROBE_TIMEOUT to 2500ms. This timeout is large enough
>> to comfortably accommodate the duration of full WiFi background scans
>> and sleep transitions without incorrectly tripping the purge timer,
>> while still eventually catching true firmware lockups.
>>
>
>rtw88 supports many chips. Which one are you using?
>
>Perhaps provide a full description of the problem you encountered.
>
...
I also realize now that globally changing RTW_TX_PROBE_TIMEOUT to
2500ms is too heavy-handed. Since this impacts all rtw88 chips,
including PCIe variants where 500ms might be exactly what is needed to
catch a real firmware lockup, the blast radius is too large. How would
you prefer I handle this for the v2 patch? I can either implement a
more conservative global bump, or make the timeout dynamic based on
the HCI interface so USB devices get a longer timeout to accommodate
the bus latency during scans.
Best regards,
Luka Gejak
next prev parent reply other threads:[~2026-05-01 20:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-01 15:04 [PATCH] wifi: rtw88: increase TX report timeout to fix race condition luka.gejak
2026-05-01 19:26 ` Bitterblue Smith
2026-05-01 20:46 ` Luka Gejak [this message]
2026-05-01 21:28 ` Bitterblue Smith
2026-05-01 21:33 ` Luka Gejak
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=6CD170FE-CAED-4B91-AEED-A1AFB98FFE8A@linux.dev \
--to=luka.gejak@linux.dev \
--cc=briannorris@chromium.org \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=pkshih@realtek.com \
--cc=rtl8821cerfe2@gmail.com \
--cc=sgruszka@redhat.com \
--cc=stable@vger.kernel.org \
--cc=yhchuang@realtek.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