Thread (10 messages) 10 messages, 6 authors, 2019-11-27

Re: [PATCH v2 net-next] net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()

From: David Miller <davem@davemloft.net>
Date: 2019-11-26 23:57:49
Also in: linux-wireless, lkml

Possibly related (same subject, not in this thread)

From: Alexander Lobakin <redacted>
Date: Mon, 25 Nov 2019 15:02:24 +0300
quoted hunk ↗ jump to hunk
Paolo Abeni wrote 25.11.2019 14:42:
quoted
For -net, I *think* something as dumb and hacky as the following could
possibly work:
----
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 4bba6b8a863c..df82fad96cbb 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -1527,7 +1527,7 @@ static void iwl_pcie_rx_handle(struct iwl_trans
*trans, int queue)
                iwl_pcie_rxq_alloc_rbs(trans, GFP_ATOMIC, rxq);
        if (rxq->napi.poll)
-               napi_gro_flush(&rxq->napi, false);
+               napi_complete_done(&rxq->napi, 0);
        iwl_pcie_rxq_restock(trans, rxq);
 }
---
napi_complete_done(napi, 0) has an equivalent static inline
napi_complete(napi). I'm not sure it will work without any issues
as iwlwifi doesn't _really_ turn NAPI into scheduling state.

I'm not very familiar with iwlwifi, but as a work around manual
napi_gro_flush() you can also manually flush napi->rx_list to
prevent packets from stalling:

diff -Naur a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c 2019-11-25
--- 14:55:03.610355230 +0300
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c 2019-11-25
14:57:29.399556868 +0300
 ...

Thanks to everyone for looking into this.

Can I get some kind of fix in the next 24 hours?  I want to send a quick
follow-on pull request to Linus to deal with all of the fallout, and in
particular fix this regression.

Thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help