git: 832b8e986c68 - main - LinuxKPI: 802.11: increase mbufq lengths

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Mon, 14 Apr 2025 14:07:42 UTC
The branch main has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=832b8e986c68a43ecf2d6b4af805aaf37087f7d9

commit 832b8e986c68a43ecf2d6b4af805aaf37087f7d9
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-04-13 20:57:13 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-04-14 14:06:50 +0000

    LinuxKPI: 802.11: increase mbufq lengths
    
    Increase the mbufq lengths we use in the RX and TX path to decouple
    the lower and upper parts (currently using taskqs which likely need
    to be replaced as well now -- was asked not to add more sophisticated
    concepts 2-ish years ago).
    The old values of IFQ_MAXLEN (50) are a tad too small so bump them
    to 32 * NAPI_POLL_WEIGHT (32 * 64) which seems to be mostly enough
    now not to drop mbufs anymore (by not overflowing the queues).
    As a side effect TCP became a lot happier as well growing throughput
    towards where UDP is already.  There is more fish to fry but we
    are also doing ~750 Mbits/sec TX and 400 Mbit/s RX TCP at VHT160 now.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 34b2a3a2f8f9..29f4a95f0336 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -786,7 +786,7 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN],
 	/* Deferred TX path. */
 	LKPI_80211_LSTA_TXQ_LOCK_INIT(lsta);
 	TASK_INIT(&lsta->txq_task, 0, lkpi_80211_txq_task, lsta);
-	mbufq_init(&lsta->txq, IFQ_MAXLEN);
+	mbufq_init(&lsta->txq, 32 * NAPI_POLL_WEIGHT);
 	lsta->txq_ready = true;
 
 	return (lsta);
@@ -5599,7 +5599,7 @@ linuxkpi_ieee80211_alloc_hw(size_t priv_len, const struct ieee80211_ops *ops)
 	/* Deferred RX path. */
 	LKPI_80211_LHW_RXQ_LOCK_INIT(lhw);
 	TASK_INIT(&lhw->rxq_task, 0, lkpi_80211_lhw_rxq_task, lhw);
-	mbufq_init(&lhw->rxq, IFQ_MAXLEN);
+	mbufq_init(&lhw->rxq, 32 * NAPI_POLL_WEIGHT);
 	lhw->rxq_stopped = false;
 
 	/*