2024-04-17 01:40:52

by Ping-Ke Shih

[permalink] [raw]
Subject: [PATCH] wifi: rtw88: suppress messages of failed to flush queue

Driver throws messages when scanning with a lot of traffic, because packets
in TX buffer can not be transmitted in time. Since this is a common
occurrence, change them to debug message with special debug mask that
developers can turn on this mask by default for further analysis.

Cc: Lewis Robbins <[email protected]>
Signed-off-by: Ping-Ke Shih <[email protected]>
---
drivers/net/wireless/realtek/rtw88/debug.h | 1 +
drivers/net/wireless/realtek/rtw88/mac.c | 3 ++-
drivers/net/wireless/realtek/rtw88/pci.c | 3 ++-
3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw88/debug.h b/drivers/net/wireless/realtek/rtw88/debug.h
index f20c0471c82a..eb69006c463e 100644
--- a/drivers/net/wireless/realtek/rtw88/debug.h
+++ b/drivers/net/wireless/realtek/rtw88/debug.h
@@ -26,6 +26,7 @@ enum rtw_debug_mask {
RTW_DBG_STATE = 0x00020000,
RTW_DBG_SDIO = 0x00040000,

+ RTW_DBG_UNEXP = 0x80000000,
RTW_DBG_ALL = 0xffffffff
};

diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
index 699ae3048c6b..1fa273012b9c 100644
--- a/drivers/net/wireless/realtek/rtw88/mac.c
+++ b/drivers/net/wireless/realtek/rtw88/mac.c
@@ -1046,7 +1046,8 @@ static void __rtw_mac_flush_prio_queue(struct rtw_dev *rtwdev,
* And it requires like ~2secs to flush the full priority queue.
*/
if (!drop)
- rtw_warn(rtwdev, "timed out to flush queue %d\n", prio_queue);
+ rtw_dbg(rtwdev, RTW_DBG_UNEXP,
+ "timed out to flush queue %d\n", prio_queue);
}

static void rtw_mac_flush_prio_queues(struct rtw_dev *rtwdev,
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 9986a4cb37eb..7a093f3d5f74 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -729,7 +729,8 @@ static void __pci_flush_queue(struct rtw_dev *rtwdev, u8 pci_q, bool drop)
}

if (!drop)
- rtw_warn(rtwdev, "timed out to flush pci tx ring[%d]\n", pci_q);
+ rtw_dbg(rtwdev, RTW_DBG_UNEXP,
+ "timed out to flush pci tx ring[%d]\n", pci_q);
}

static void __rtw_pci_flush_queues(struct rtw_dev *rtwdev, u32 pci_queues,
--
2.25.1



2024-04-17 22:16:33

by Lewis Robbins

[permalink] [raw]
Subject: RE: [PATCH] wifi: rtw88: suppress messages of failed to flush queue

Thanks, I tested it for 30 minutes and didn't receive any superfluous warning message. Only thing I could find was the comment above not reflecting the (new) debug print (but very nit-picky from me).

Acked-by: Lewis Robbins <[email protected]>

diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
index 9038e2311596..3d1a886262d8 100644
--- a/drivers/net/wireless/realtek/rtw88/mac.c
+++ b/drivers/net/wireless/realtek/rtw88/mac.c
@@ -1026,7 +1026,7 @@ static void __rtw_mac_flush_prio_queue(struct rtw_dev *rtwdev,
msleep(20);
}

- /* priority queue is still not empty, throw a warning,
+ /* priority queue is still not empty, throw a debug message
*
* Note that if we want to flush the tx queue when having a lot of
* traffic (ex, 100Mbps up), some of the packets could be dropped.

2024-04-18 00:32:35

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: [PATCH] wifi: rtw88: suppress messages of failed to flush queue

Lewis Robbins <[email protected]> wrote:

> Thanks, I tested it for 30 minutes and didn't receive any superfluous warning message. Only thing I could
> find was the comment above not reflecting the (new) debug print (but very nit-picky from me).
>
> Acked-by: Lewis Robbins <[email protected]>

Acked-by is used by maintainers, so I used your Tested-by by v2. [1]

>
> diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
> index 9038e2311596..3d1a886262d8 100644
> --- a/drivers/net/wireless/realtek/rtw88/mac.c
> +++ b/drivers/net/wireless/realtek/rtw88/mac.c
> @@ -1026,7 +1026,7 @@ static void __rtw_mac_flush_prio_queue(struct rtw_dev *rtwdev,
> msleep(20);
> }
>
> - /* priority queue is still not empty, throw a warning,
> + /* priority queue is still not empty, throw a debug message

Thanks for pointing this.

> *
> * Note that if we want to flush the tx queue when having a lot of
> * traffic (ex, 100Mbps up), some of the packets could be dropped.

[1] https://lore.kernel.org/linux-wireless/[email protected]/T/#u