From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
To: luka.gejak@linux.dev, 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
Subject: Re: [PATCH] wifi: rtw88: increase TX report timeout to fix race condition
Date: Fri, 1 May 2026 22:26:30 +0300 [thread overview]
Message-ID: <72f6fffd-bd77-437f-a9d9-6a542a8b365b@gmail.com> (raw)
In-Reply-To: <20260501150402.227788-1-luka.gejak@linux.dev>
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.
>
But power saving state transitions should not happen during heavy TX load.
> 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?
> 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.
> Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
> Cc: stable@vger.kernel.org
> Tested-by: Luka Gejak <luka.gejak@linux.dev>
> Signed-off-by: Luka Gejak <luka.gejak@linux.dev>
> ---
> drivers/net/wireless/realtek/rtw88/tx.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h
> index d34cdeca16f1..95d15e4f5d34 100644
> --- a/drivers/net/wireless/realtek/rtw88/tx.h
> +++ b/drivers/net/wireless/realtek/rtw88/tx.h
> @@ -7,7 +7,7 @@
>
> #define RTK_TX_MAX_AGG_NUM_MASK 0x1f
>
> -#define RTW_TX_PROBE_TIMEOUT msecs_to_jiffies(500)
> +#define RTW_TX_PROBE_TIMEOUT msecs_to_jiffies(2500)
>
> struct rtw_tx_desc {
> __le32 w0;
next prev parent reply other threads:[~2026-05-01 19:26 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 [this message]
2026-05-01 20:46 ` Luka Gejak
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=72f6fffd-bd77-437f-a9d9-6a542a8b365b@gmail.com \
--to=rtl8821cerfe2@gmail.com \
--cc=briannorris@chromium.org \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=luka.gejak@linux.dev \
--cc=pkshih@realtek.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