Thread (21 messages) flat view 21 messages, 4 authors, 2021-06-24

Re: [PATCH net-next 12/16] gve: DQO: Add core netdev features

From: "Samudrala, Sridhar" <sridhar.samudrala@intel.com>
Date: 2021-06-24 23:18:15

On 6/24/2021 11:06 AM, Bailey Forrest wrote:
quoted hunk ↗ jump to hunk
Add napi netdev device registration, interrupt handling and initial tx
and rx polling stubs. The stubs will be filled in follow-on patches.

Also:
- LRO feature advertisement and handling
- Also update ethtool logic

Signed-off-by: Bailey Forrest <redacted>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Catherine Sullivan <redacted>
---
  drivers/net/ethernet/google/gve/Makefile      |   2 +-
  drivers/net/ethernet/google/gve/gve.h         |   2 +
  drivers/net/ethernet/google/gve/gve_adminq.c  |   2 +
  drivers/net/ethernet/google/gve/gve_dqo.h     |  32 +++
  drivers/net/ethernet/google/gve/gve_ethtool.c |  12 +-
  drivers/net/ethernet/google/gve/gve_main.c    | 188 ++++++++++++++++--
  drivers/net/ethernet/google/gve/gve_rx_dqo.c  |  24 +++
  drivers/net/ethernet/google/gve/gve_tx_dqo.c  |  23 +++
  8 files changed, 260 insertions(+), 25 deletions(-)
  create mode 100644 drivers/net/ethernet/google/gve/gve_dqo.h
  create mode 100644 drivers/net/ethernet/google/gve/gve_rx_dqo.c
  create mode 100644 drivers/net/ethernet/google/gve/gve_tx_dqo.c
diff --git a/drivers/net/ethernet/google/gve/Makefile b/drivers/net/ethernet/google/gve/Makefile
index 0143f4471e42..b9a6be76531b 100644
--- a/drivers/net/ethernet/google/gve/Makefile
+++ b/drivers/net/ethernet/google/gve/Makefile
@@ -1,4 +1,4 @@
  # Makefile for the Google virtual Ethernet (gve) driver
  
  obj-$(CONFIG_GVE) += gve.o
-gve-objs := gve_main.o gve_tx.o gve_rx.o gve_ethtool.o gve_adminq.o gve_utils.o
+gve-objs := gve_main.o gve_tx.o gve_tx_dqo.o gve_rx.o gve_rx_dqo.o gve_ethtool.o gve_adminq.o gve_utils.o
diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
index 8a2a8d125090..d6bf0466ae8b 100644
--- a/drivers/net/ethernet/google/gve/gve.h
+++ b/drivers/net/ethernet/google/gve/gve.h
@@ -45,6 +45,8 @@
  /* PTYPEs are always 10 bits. */
  #define GVE_NUM_PTYPES	1024
  
+#define GVE_RX_BUFFER_SIZE_DQO 2048
+
  /* Each slot in the desc ring has a 1:1 mapping to a slot in the data ring */
  struct gve_rx_desc_queue {
  	struct gve_rx_desc *desc_ring; /* the descriptor ring */
diff --git a/drivers/net/ethernet/google/gve/gve_adminq.c b/drivers/net/ethernet/google/gve/gve_adminq.c
index cf017a499119..5bb56b454541 100644
--- a/drivers/net/ethernet/google/gve/gve_adminq.c
+++ b/drivers/net/ethernet/google/gve/gve_adminq.c
@@ -714,6 +714,8 @@ int gve_adminq_describe_device(struct gve_priv *priv)
  	if (gve_is_gqi(priv)) {
  		err = gve_set_desc_cnt(priv, descriptor);
  	} else {
+		/* DQO supports LRO. */
+		priv->dev->hw_features |= NETIF_F_LRO;
Shouldn't this be NETIF_F_HW_GRO?
Also, what does DQO stands for?

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