mt76: mt7921s: fix cmd timeout in throughput test
authorDeren Wu <deren.wu@mediatek.com>
Thu, 16 Dec 2021 17:02:09 +0000 (01:02 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sun, 19 Dec 2021 14:24:05 +0000 (15:24 +0100)
During heavy loading throughtput test, the RX buffer (128)
would be exhausted and some RX pkts dropped randomly. Increase
buffer size from 128 to 512 (a safer length) to avoid tput degrade
or cmd-timeout problem.

Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/sdio.c

index 8edbf42b452629eae0baee3c5e5ec03f094bddd6..404c3d1a70d69cbe447633368c1b797883f0060f 100644 (file)
@@ -497,6 +497,8 @@ struct mt76_usb {
 };
 
 #define MT76S_XMIT_BUF_SZ      (16 * PAGE_SIZE)
+#define MT76S_NUM_TX_ENTRIES   256
+#define MT76S_NUM_RX_ENTRIES   512
 struct mt76_sdio {
        struct mt76_worker txrx_worker;
        struct mt76_worker status_worker;
index b0bc7be0fb1fcbb14a34205bee9e476b0211125a..54f72d21594833d4cdf4e5536bfd3cd2037beb62 100644 (file)
@@ -305,12 +305,12 @@ int mt76s_alloc_rx_queue(struct mt76_dev *dev, enum mt76_rxq_id qid)
 
        spin_lock_init(&q->lock);
        q->entry = devm_kcalloc(dev->dev,
-                               MT_NUM_RX_ENTRIES, sizeof(*q->entry),
+                               MT76S_NUM_RX_ENTRIES, sizeof(*q->entry),
                                GFP_KERNEL);
        if (!q->entry)
                return -ENOMEM;
 
-       q->ndesc = MT_NUM_RX_ENTRIES;
+       q->ndesc = MT76S_NUM_RX_ENTRIES;
        q->head = q->tail = 0;
        q->queued = 0;
 
@@ -328,12 +328,12 @@ static struct mt76_queue *mt76s_alloc_tx_queue(struct mt76_dev *dev)
 
        spin_lock_init(&q->lock);
        q->entry = devm_kcalloc(dev->dev,
-                               MT_NUM_TX_ENTRIES, sizeof(*q->entry),
+                               MT76S_NUM_TX_ENTRIES, sizeof(*q->entry),
                                GFP_KERNEL);
        if (!q->entry)
                return ERR_PTR(-ENOMEM);
 
-       q->ndesc = MT_NUM_TX_ENTRIES;
+       q->ndesc = MT76S_NUM_TX_ENTRIES;
 
        return q;
 }