Thread (10 messages) flat view 10 messages, 4 authors, 2021-10-08

Re: [PATCH net-next 3/7] gve: Do lazy cleanup in TX path

From: Eric Dumazet <hidden>
Date: 2021-10-07 19:57:16


On 10/7/21 9:25 AM, Jeroen de Borst wrote:
quoted hunk ↗ jump to hunk
From: Tao Liu <redacted>

When TX queue is full, attemt to process enough TX completions
to avoid stalling the queue.

Fixes: f5cedc84a30d2 ("gve: Add transmit and receive support")
Signed-off-by: Tao Liu <redacted>
Signed-off-by: Catherine Sullivan <redacted>
---
 drivers/net/ethernet/google/gve/gve.h         |  9 +-
 drivers/net/ethernet/google/gve/gve_ethtool.c |  3 +-
 drivers/net/ethernet/google/gve/gve_main.c    |  6 +-
 drivers/net/ethernet/google/gve/gve_tx.c      | 94 +++++++++++--------
 4 files changed, 62 insertions(+), 50 deletions(-)
diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
index 59c525800e5d..003b30b91c6d 100644
--- a/drivers/net/ethernet/google/gve/gve.h
+++ b/drivers/net/ethernet/google/gve/gve.h
@@ -341,8 +341,8 @@ struct gve_tx_ring {
 	union {
 		/* GQI fields */
 		struct {
-			/* NIC tail pointer */
-			__be32 last_nic_done;
+			/* Spinlock for when cleanup in progress */
+			spinlock_t clean_lock;
 		};
This is adding yet another spinlock in tx completion path.

Normally, BQL should kick and you should not fill the queue completely.

Something is not right.

tx completion can take a lot of time, it seems odd to block an
innocent thread in ndo_start_xmit().

Please provide more details in your changelog ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help