All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net v3 0/6] igb: xdp patches followup
@ 2020-10-19  8:05 ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

This patch series addresses some of the comments that came back
after the igb XDP patch was accepted.
Most of it is code cleanup.
The last patch contains a fix for a tx queue timeout
that can occur when using xdp.

Change from v2:
    * Move SOB line to end
    * Remove SOB from cover letter
    * Add a better commit message for
      avoid transmit queue timeout in xdp path
    * Add ACK by from Maciej Fijalkowski

Change from v1:
    * Drop patch 5 as the igb_rx_frame_truesize won't match
    * Fix typo in comment
    * Add Suggested-by and Reviewed-by tags
    * Add how to avoid transmit queue timeout in xdp path
      is fixed in the commit message

Sven Auhagen (6):
  igb: XDP xmit back fix error code
  igb: take vlan double header into account
  igb: XDP extack message on error
  igb: skb add metasize for xdp
  igb: use xdp_do_flush
  igb: avoid transmit queue timeout in xdp path

 drivers/net/ethernet/intel/igb/igb.h      |  5 ++++
 drivers/net/ethernet/intel/igb/igb_main.c | 32 +++++++++++++++--------
 2 files changed, 26 insertions(+), 11 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 0/6] igb: xdp patches followup
@ 2020-10-19  8:05 ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

This patch series addresses some of the comments that came back
after the igb XDP patch was accepted.
Most of it is code cleanup.
The last patch contains a fix for a tx queue timeout
that can occur when using xdp.

Change from v2:
    * Move SOB line to end
    * Remove SOB from cover letter
    * Add a better commit message for
      avoid transmit queue timeout in xdp path
    * Add ACK by from Maciej Fijalkowski

Change from v1:
    * Drop patch 5 as the igb_rx_frame_truesize won't match
    * Fix typo in comment
    * Add Suggested-by and Reviewed-by tags
    * Add how to avoid transmit queue timeout in xdp path
      is fixed in the commit message

Sven Auhagen (6):
  igb: XDP xmit back fix error code
  igb: take vlan double header into account
  igb: XDP extack message on error
  igb: skb add metasize for xdp
  igb: use xdp_do_flush
  igb: avoid transmit queue timeout in xdp path

 drivers/net/ethernet/intel/igb/igb.h      |  5 ++++
 drivers/net/ethernet/intel/igb/igb_main.c | 32 +++++++++++++++--------
 2 files changed, 26 insertions(+), 11 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH net v3 1/6] igb: XDP xmit back fix error code
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

The igb XDP xmit back function should only return
defined error codes.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 5fc2c381da55..08cc6f59aa2e 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2910,7 +2910,7 @@ static int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
 	 */
 	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
 	if (unlikely(!tx_ring))
-		return -ENXIO;
+		return IGB_XDP_CONSUMED;
 
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 1/6] igb: XDP xmit back fix error code
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

The igb XDP xmit back function should only return
defined error codes.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 5fc2c381da55..08cc6f59aa2e 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2910,7 +2910,7 @@ static int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
 	 */
 	tx_ring = adapter->xdp_prog ? igb_xdp_tx_queue_mapping(adapter) : NULL;
 	if (unlikely(!tx_ring))
-		return -ENXIO;
+		return IGB_XDP_CONSUMED;
 
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH net v3 2/6] igb: take vlan double header into account
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

Increase the packet header padding to include double VLAN tagging.
This patch uses a macro for this.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb.h      | 5 +++++
 drivers/net/ethernet/intel/igb/igb_main.c | 7 +++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index 0286d2fceee4..aaa954aae574 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -138,6 +138,8 @@ struct vf_mac_filter {
 /* this is the size past which hardware will drop packets when setting LPE=0 */
 #define MAXIMUM_ETHERNET_VLAN_SIZE 1522
 
+#define IGB_ETH_PKT_HDR_PAD	(ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2))
+
 /* Supported Rx Buffer Sizes */
 #define IGB_RXBUFFER_256	256
 #define IGB_RXBUFFER_1536	1536
@@ -247,6 +249,9 @@ enum igb_tx_flags {
 #define IGB_SFF_ADDRESSING_MODE		0x4
 #define IGB_SFF_8472_UNSUP		0x00
 
+/* TX resources are shared between XDP and netstack
+ * and we need to tag the buffer type to distinguish them
+ */
 enum igb_tx_buf_type {
 	IGB_TYPE_SKB = 0,
 	IGB_TYPE_XDP,
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 08cc6f59aa2e..0a9198037b98 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2826,7 +2826,7 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
 
 static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
 {
-	int i, frame_size = dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
 	struct igb_adapter *adapter = netdev_priv(dev);
 	bool running = netif_running(dev);
 	struct bpf_prog *old_prog;
@@ -3950,8 +3950,7 @@ static int igb_sw_init(struct igb_adapter *adapter)
 	/* set default work limits */
 	adapter->tx_work_limit = IGB_DEFAULT_TX_WORK;
 
-	adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN +
-				  VLAN_HLEN;
+	adapter->max_frame_size = netdev->mtu + IGB_ETH_PKT_HDR_PAD;
 	adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN;
 
 	spin_lock_init(&adapter->nfc_lock);
@@ -6491,7 +6490,7 @@ static void igb_get_stats64(struct net_device *netdev,
 static int igb_change_mtu(struct net_device *netdev, int new_mtu)
 {
 	struct igb_adapter *adapter = netdev_priv(netdev);
-	int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+	int max_frame = new_mtu + IGB_ETH_PKT_HDR_PAD;
 
 	if (adapter->xdp_prog) {
 		int i;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 2/6] igb: take vlan double header into account
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

Increase the packet header padding to include double VLAN tagging.
This patch uses a macro for this.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb.h      | 5 +++++
 drivers/net/ethernet/intel/igb/igb_main.c | 7 +++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index 0286d2fceee4..aaa954aae574 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -138,6 +138,8 @@ struct vf_mac_filter {
 /* this is the size past which hardware will drop packets when setting LPE=0 */
 #define MAXIMUM_ETHERNET_VLAN_SIZE 1522
 
+#define IGB_ETH_PKT_HDR_PAD	(ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2))
+
 /* Supported Rx Buffer Sizes */
 #define IGB_RXBUFFER_256	256
 #define IGB_RXBUFFER_1536	1536
@@ -247,6 +249,9 @@ enum igb_tx_flags {
 #define IGB_SFF_ADDRESSING_MODE		0x4
 #define IGB_SFF_8472_UNSUP		0x00
 
+/* TX resources are shared between XDP and netstack
+ * and we need to tag the buffer type to distinguish them
+ */
 enum igb_tx_buf_type {
 	IGB_TYPE_SKB = 0,
 	IGB_TYPE_XDP,
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 08cc6f59aa2e..0a9198037b98 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2826,7 +2826,7 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
 
 static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
 {
-	int i, frame_size = dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
 	struct igb_adapter *adapter = netdev_priv(dev);
 	bool running = netif_running(dev);
 	struct bpf_prog *old_prog;
@@ -3950,8 +3950,7 @@ static int igb_sw_init(struct igb_adapter *adapter)
 	/* set default work limits */
 	adapter->tx_work_limit = IGB_DEFAULT_TX_WORK;
 
-	adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN +
-				  VLAN_HLEN;
+	adapter->max_frame_size = netdev->mtu + IGB_ETH_PKT_HDR_PAD;
 	adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN;
 
 	spin_lock_init(&adapter->nfc_lock);
@@ -6491,7 +6490,7 @@ static void igb_get_stats64(struct net_device *netdev,
 static int igb_change_mtu(struct net_device *netdev, int new_mtu)
 {
 	struct igb_adapter *adapter = netdev_priv(netdev);
-	int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+	int max_frame = new_mtu + IGB_ETH_PKT_HDR_PAD;
 
 	if (adapter->xdp_prog) {
 		int i;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH net v3 3/6] igb: XDP extack message on error
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

Add an extack error message when the RX buffer size is too small
for the frame size.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 0a9198037b98..088f9ddb0093 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
 	}
 }
 
-static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
+static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
 {
 	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
 	struct igb_adapter *adapter = netdev_priv(dev);
+	struct bpf_prog *prog = bpf->prog, *old_prog;
 	bool running = netif_running(dev);
-	struct bpf_prog *old_prog;
 	bool need_reset;
 
 	/* verify igb ring attributes are sufficient for XDP */
 	for (i = 0; i < adapter->num_rx_queues; i++) {
 		struct igb_ring *ring = adapter->rx_ring[i];
 
-		if (frame_size > igb_rx_bufsz(ring))
+		if (frame_size > igb_rx_bufsz(ring)) {
+			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
 			return -EINVAL;
+		}
 	}
 
 	old_prog = xchg(&adapter->xdp_prog, prog);
@@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
 	switch (xdp->command) {
 	case XDP_SETUP_PROG:
-		return igb_xdp_setup(dev, xdp->prog);
+		return igb_xdp_setup(dev, xdp);
 	default:
 		return -EINVAL;
 	}
@@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
 			struct igb_ring *ring = adapter->rx_ring[i];
 
 			if (max_frame > igb_rx_bufsz(ring)) {
-				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
+				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
 				return -EINVAL;
 			}
 		}
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

Add an extack error message when the RX buffer size is too small
for the frame size.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 0a9198037b98..088f9ddb0093 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
 	}
 }
 
-static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
+static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
 {
 	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
 	struct igb_adapter *adapter = netdev_priv(dev);
+	struct bpf_prog *prog = bpf->prog, *old_prog;
 	bool running = netif_running(dev);
-	struct bpf_prog *old_prog;
 	bool need_reset;
 
 	/* verify igb ring attributes are sufficient for XDP */
 	for (i = 0; i < adapter->num_rx_queues; i++) {
 		struct igb_ring *ring = adapter->rx_ring[i];
 
-		if (frame_size > igb_rx_bufsz(ring))
+		if (frame_size > igb_rx_bufsz(ring)) {
+			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
 			return -EINVAL;
+		}
 	}
 
 	old_prog = xchg(&adapter->xdp_prog, prog);
@@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
 	switch (xdp->command) {
 	case XDP_SETUP_PROG:
-		return igb_xdp_setup(dev, xdp->prog);
+		return igb_xdp_setup(dev, xdp);
 	default:
 		return -EINVAL;
 	}
@@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
 			struct igb_ring *ring = adapter->rx_ring[i];
 
 			if (max_frame > igb_rx_bufsz(ring)) {
-				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
+				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
 				return -EINVAL;
 			}
 		}
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH net v3 4/6] igb: skb add metasize for xdp
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

add metasize if it is set in xdp

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 088f9ddb0093..36ff8725fdaf 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -8345,6 +8345,7 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 				     struct xdp_buff *xdp,
 				     union e1000_adv_rx_desc *rx_desc)
 {
+	unsigned int metasize = xdp->data - xdp->data_meta;
 #if (PAGE_SIZE < 8192)
 	unsigned int truesize = igb_rx_pg_size(rx_ring) / 2;
 #else
@@ -8366,6 +8367,9 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 	skb_reserve(skb, xdp->data - xdp->data_hard_start);
 	__skb_put(skb, xdp->data_end - xdp->data);
 
+	if (metasize)
+		skb_metadata_set(skb, metasize);
+
 	/* pull timestamp out of packet data */
 	if (igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP)) {
 		igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 4/6] igb: skb add metasize for xdp
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

add metasize if it is set in xdp

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 088f9ddb0093..36ff8725fdaf 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -8345,6 +8345,7 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 				     struct xdp_buff *xdp,
 				     union e1000_adv_rx_desc *rx_desc)
 {
+	unsigned int metasize = xdp->data - xdp->data_meta;
 #if (PAGE_SIZE < 8192)
 	unsigned int truesize = igb_rx_pg_size(rx_ring) / 2;
 #else
@@ -8366,6 +8367,9 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 	skb_reserve(skb, xdp->data - xdp->data_hard_start);
 	__skb_put(skb, xdp->data_end - xdp->data);
 
+	if (metasize)
+		skb_metadata_set(skb, metasize);
+
 	/* pull timestamp out of packet data */
 	if (igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP)) {
 		igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH net v3 5/6] igb: use xdp_do_flush
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

Since it is a new XDP implementation change xdp_do_flush_map
to xdp_do_flush.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 36ff8725fdaf..55e708f75187 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -8776,7 +8776,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 	rx_ring->skb = skb;
 
 	if (xdp_xmit & IGB_XDP_REDIR)
-		xdp_do_flush_map();
+		xdp_do_flush();
 
 	if (xdp_xmit & IGB_XDP_TX) {
 		struct igb_ring *tx_ring = igb_xdp_tx_queue_mapping(adapter);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 5/6] igb: use xdp_do_flush
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

Since it is a new XDP implementation change xdp_do_flush_map
to xdp_do_flush.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 36ff8725fdaf..55e708f75187 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -8776,7 +8776,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 	rx_ring->skb = skb;
 
 	if (xdp_xmit & IGB_XDP_REDIR)
-		xdp_do_flush_map();
+		xdp_do_flush();
 
 	if (xdp_xmit & IGB_XDP_TX) {
 		struct igb_ring *tx_ring = igb_xdp_tx_queue_mapping(adapter);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH net v3 6/6] igb: avoid transmit queue timeout in xdp path
  2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
@ 2020-10-19  8:05   ` sven.auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann,
	sandeep.penigalapati, brouer

From: Sven Auhagen <sven.auhagen@voleatech.de>

Since we share the transmit queue with the network stack,
it is possible that we run into a transmit queue timeout.
This will reset the queue.
This happens under high load when XDP is using the
transmit queue pretty much exclusively.

netdev_start_xmit() sets the trans_start variable of the
transmit queue to jiffies which is later utilized by dev_watchdog(),
so to avoid timeout, let stack know that XDP xmit happened by
bumping the trans_start within XDP Tx routines to jiffies.

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 55e708f75187..4a082c06f48d 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2916,6 +2916,8 @@ static int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
 
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
+	/* Avoid transmit queue timeout since we share it with the slow path */
+	nq->trans_start = jiffies;
 	ret = igb_xmit_xdp_ring(adapter, tx_ring, xdpf);
 	__netif_tx_unlock(nq);
 
@@ -2948,6 +2950,9 @@ static int igb_xdp_xmit(struct net_device *dev, int n,
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
 
+	/* Avoid transmit queue timeout since we share it with the slow path */
+	nq->trans_start = jiffies;
+
 	for (i = 0; i < n; i++) {
 		struct xdp_frame *xdpf = frames[i];
 		int err;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 6/6] igb: avoid transmit queue timeout in xdp path
@ 2020-10-19  8:05   ` sven.auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: sven.auhagen @ 2020-10-19  8:05 UTC (permalink / raw)
  To: intel-wired-lan

From: Sven Auhagen <sven.auhagen@voleatech.de>

Since we share the transmit queue with the network stack,
it is possible that we run into a transmit queue timeout.
This will reset the queue.
This happens under high load when XDP is using the
transmit queue pretty much exclusively.

netdev_start_xmit() sets the trans_start variable of the
transmit queue to jiffies which is later utilized by dev_watchdog(),
so to avoid timeout, let stack know that XDP xmit happened by
bumping the trans_start within XDP Tx routines to jiffies.

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 55e708f75187..4a082c06f48d 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2916,6 +2916,8 @@ static int igb_xdp_xmit_back(struct igb_adapter *adapter, struct xdp_buff *xdp)
 
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
+	/* Avoid transmit queue timeout since we share it with the slow path */
+	nq->trans_start = jiffies;
 	ret = igb_xmit_xdp_ring(adapter, tx_ring, xdpf);
 	__netif_tx_unlock(nq);
 
@@ -2948,6 +2950,9 @@ static int igb_xdp_xmit(struct net_device *dev, int n,
 	nq = txring_txq(tx_ring);
 	__netif_tx_lock(nq, cpu);
 
+	/* Avoid transmit queue timeout since we share it with the slow path */
+	nq->trans_start = jiffies;
+
 	for (i = 0; i < n; i++) {
 		struct xdp_frame *xdpf = frames[i];
 		int err;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* RE: [PATCH net v3 3/6] igb: XDP extack message on error
  2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
@ 2020-11-11  5:31     ` Penigalapati, Sandeep
  -1 siblings, 0 replies; 28+ messages in thread
From: Penigalapati, Sandeep @ 2020-11-11  5:31 UTC (permalink / raw)
  To: sven.auhagen, Nguyen, Anthony L, Fijalkowski, Maciej, kuba
  Cc: davem, intel-wired-lan, netdev, nhorman, sassmann, brouer

From: sven.auhagen@voleatech.de <sven.auhagen@voleatech.de> 
Sent: Monday, October 19, 2020 1:36 PM
To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Fijalkowski, Maciej <maciej.fijalkowski@intel.com>; kuba@kernel.org
Cc: davem@davemloft.net; intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; nhorman@redhat.com; sassmann@redhat.com; Penigalapati, Sandeep <sandeep.penigalapati@intel.com>; brouer@redhat.com
Subject: [PATCH net v3 3/6] igb: XDP extack message on error

From: Sven Auhagen <sven.auhagen@voleatech.de>

Add an extack error message when the RX buffer size is too small for the frame size.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Tested-by: Sandeep Penigalapati <sandeep.penigalapati@intel.com>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11  5:31     ` Penigalapati, Sandeep
  0 siblings, 0 replies; 28+ messages in thread
From: Penigalapati, Sandeep @ 2020-11-11  5:31 UTC (permalink / raw)
  To: intel-wired-lan

From: sven.auhagen@voleatech.de <sven.auhagen@voleatech.de> 
Sent: Monday, October 19, 2020 1:36 PM
To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Fijalkowski, Maciej <maciej.fijalkowski@intel.com>; kuba at kernel.org
Cc: davem at davemloft.net; intel-wired-lan at lists.osuosl.org; netdev at vger.kernel.org; nhorman at redhat.com; sassmann at redhat.com; Penigalapati, Sandeep <sandeep.penigalapati@intel.com>; brouer at redhat.com
Subject: [PATCH net v3 3/6] igb: XDP extack message on error

From: Sven Auhagen <sven.auhagen@voleatech.de>

Add an extack error message when the RX buffer size is too small for the frame size.

Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Tested-by: Sandeep Penigalapati <sandeep.penigalapati@intel.com>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
@ 2020-11-11  7:11     ` Paul Menzel
  -1 siblings, 0 replies; 28+ messages in thread
From: Paul Menzel @ 2020-11-11  7:11 UTC (permalink / raw)
  To: sven.auhagen, anthony.l.nguyen, maciej.fijalkowski, kuba
  Cc: nhorman, netdev, intel-wired-lan, brouer, davem, sassmann

Dear Sven,


Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:
> From: Sven Auhagen <sven.auhagen@voleatech.de>
> 
> Add an extack error message when the RX buffer size is too small
> for the frame size.
> 
> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> ---
>   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index 0a9198037b98..088f9ddb0093 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
>   	}
>   }
>   
> -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
>   {
>   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
>   	struct igb_adapter *adapter = netdev_priv(dev);
> +	struct bpf_prog *prog = bpf->prog, *old_prog;
>   	bool running = netif_running(dev);
> -	struct bpf_prog *old_prog;
>   	bool need_reset;
>   
>   	/* verify igb ring attributes are sufficient for XDP */
>   	for (i = 0; i < adapter->num_rx_queues; i++) {
>   		struct igb_ring *ring = adapter->rx_ring[i];
>   
> -		if (frame_size > igb_rx_bufsz(ring))
> +		if (frame_size > igb_rx_bufsz(ring)) {
> +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

Could you please also add both size values to the error message?

>   			return -EINVAL;
> +		}
>   	}
>   
>   	old_prog = xchg(&adapter->xdp_prog, prog);
> @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>   {
>   	switch (xdp->command) {
>   	case XDP_SETUP_PROG:
> -		return igb_xdp_setup(dev, xdp->prog);
> +		return igb_xdp_setup(dev, xdp);
>   	default:
>   		return -EINVAL;
>   	}
> @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>   			struct igb_ring *ring = adapter->rx_ring[i];
>   
>   			if (max_frame > igb_rx_bufsz(ring)) {
> -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
>   				return -EINVAL;
>   			}
>   		}
> 


Kind regards,

Paul


PS: For commit message summaries, statements with verbs in imperative 
mood are quite common [1].

 > igb: Print XDP extack error on too big frame size


[1]: https://chris.beams.io/posts/git-commit/

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11  7:11     ` Paul Menzel
  0 siblings, 0 replies; 28+ messages in thread
From: Paul Menzel @ 2020-11-11  7:11 UTC (permalink / raw)
  To: intel-wired-lan

Dear Sven,


Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
> From: Sven Auhagen <sven.auhagen@voleatech.de>
> 
> Add an extack error message when the RX buffer size is too small
> for the frame size.
> 
> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> ---
>   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index 0a9198037b98..088f9ddb0093 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
>   	}
>   }
>   
> -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
>   {
>   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
>   	struct igb_adapter *adapter = netdev_priv(dev);
> +	struct bpf_prog *prog = bpf->prog, *old_prog;
>   	bool running = netif_running(dev);
> -	struct bpf_prog *old_prog;
>   	bool need_reset;
>   
>   	/* verify igb ring attributes are sufficient for XDP */
>   	for (i = 0; i < adapter->num_rx_queues; i++) {
>   		struct igb_ring *ring = adapter->rx_ring[i];
>   
> -		if (frame_size > igb_rx_bufsz(ring))
> +		if (frame_size > igb_rx_bufsz(ring)) {
> +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

Could you please also add both size values to the error message?

>   			return -EINVAL;
> +		}
>   	}
>   
>   	old_prog = xchg(&adapter->xdp_prog, prog);
> @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>   {
>   	switch (xdp->command) {
>   	case XDP_SETUP_PROG:
> -		return igb_xdp_setup(dev, xdp->prog);
> +		return igb_xdp_setup(dev, xdp);
>   	default:
>   		return -EINVAL;
>   	}
> @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>   			struct igb_ring *ring = adapter->rx_ring[i];
>   
>   			if (max_frame > igb_rx_bufsz(ring)) {
> -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
>   				return -EINVAL;
>   			}
>   		}
> 


Kind regards,

Paul


PS: For commit message summaries, statements with verbs in imperative 
mood are quite common [1].

 > igb: Print XDP extack error on too big frame size


[1]: https://chris.beams.io/posts/git-commit/

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-11-11  7:11     ` Paul Menzel
@ 2020-11-11  9:39       ` Sven Auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11  9:39 UTC (permalink / raw)
  To: Paul Menzel
  Cc: anthony.l.nguyen, maciej.fijalkowski, kuba, nhorman, netdev,
	intel-wired-lan, brouer, davem, sassmann

On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:
> > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > 
> > Add an extack error message when the RX buffer size is too small
> > for the frame size.
> > 
> > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > ---
> >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> >   1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > index 0a9198037b98..088f9ddb0093 100644
> > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> >   	}
> >   }
> > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> >   {
> >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> >   	struct igb_adapter *adapter = netdev_priv(dev);
> > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> >   	bool running = netif_running(dev);
> > -	struct bpf_prog *old_prog;
> >   	bool need_reset;
> >   	/* verify igb ring attributes are sufficient for XDP */
> >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> >   		struct igb_ring *ring = adapter->rx_ring[i];
> > -		if (frame_size > igb_rx_bufsz(ring))
> > +		if (frame_size > igb_rx_bufsz(ring)) {
> > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
> 
> Could you please also add both size values to the error message?

Dear Paul,

yes, sure.
I will send a new series with that change.

Best
Sven

> 
> >   			return -EINVAL;
> > +		}
> >   	}
> >   	old_prog = xchg(&adapter->xdp_prog, prog);
> > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> >   {
> >   	switch (xdp->command) {
> >   	case XDP_SETUP_PROG:
> > -		return igb_xdp_setup(dev, xdp->prog);
> > +		return igb_xdp_setup(dev, xdp);
> >   	default:
> >   		return -EINVAL;
> >   	}
> > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> >   			struct igb_ring *ring = adapter->rx_ring[i];
> >   			if (max_frame > igb_rx_bufsz(ring)) {
> > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> >   				return -EINVAL;
> >   			}
> >   		}
> > 
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> PS: For commit message summaries, statements with verbs in imperative mood
> are quite common [1].
> 
> > igb: Print XDP extack error on too big frame size
> 
> 
> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11  9:39       ` Sven Auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11  9:39 UTC (permalink / raw)
  To: intel-wired-lan

On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
> > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > 
> > Add an extack error message when the RX buffer size is too small
> > for the frame size.
> > 
> > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > ---
> >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> >   1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > index 0a9198037b98..088f9ddb0093 100644
> > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> >   	}
> >   }
> > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> >   {
> >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> >   	struct igb_adapter *adapter = netdev_priv(dev);
> > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> >   	bool running = netif_running(dev);
> > -	struct bpf_prog *old_prog;
> >   	bool need_reset;
> >   	/* verify igb ring attributes are sufficient for XDP */
> >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> >   		struct igb_ring *ring = adapter->rx_ring[i];
> > -		if (frame_size > igb_rx_bufsz(ring))
> > +		if (frame_size > igb_rx_bufsz(ring)) {
> > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
> 
> Could you please also add both size values to the error message?

Dear Paul,

yes, sure.
I will send a new series with that change.

Best
Sven

> 
> >   			return -EINVAL;
> > +		}
> >   	}
> >   	old_prog = xchg(&adapter->xdp_prog, prog);
> > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> >   {
> >   	switch (xdp->command) {
> >   	case XDP_SETUP_PROG:
> > -		return igb_xdp_setup(dev, xdp->prog);
> > +		return igb_xdp_setup(dev, xdp);
> >   	default:
> >   		return -EINVAL;
> >   	}
> > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> >   			struct igb_ring *ring = adapter->rx_ring[i];
> >   			if (max_frame > igb_rx_bufsz(ring)) {
> > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> >   				return -EINVAL;
> >   			}
> >   		}
> > 
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> PS: For commit message summaries, statements with verbs in imperative mood
> are quite common [1].
> 
> > igb: Print XDP extack error on too big frame size
> 
> 
> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-11-11  7:11     ` Paul Menzel
@ 2020-11-11 10:10       ` Sven Auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11 10:10 UTC (permalink / raw)
  To: Paul Menzel
  Cc: anthony.l.nguyen, maciej.fijalkowski, kuba, nhorman, netdev,
	intel-wired-lan, brouer, davem, sassmann

On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:
> > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > 
> > Add an extack error message when the RX buffer size is too small
> > for the frame size.
> > 
> > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > ---
> >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> >   1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > index 0a9198037b98..088f9ddb0093 100644
> > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> >   	}
> >   }
> > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> >   {
> >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> >   	struct igb_adapter *adapter = netdev_priv(dev);
> > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> >   	bool running = netif_running(dev);
> > -	struct bpf_prog *old_prog;
> >   	bool need_reset;
> >   	/* verify igb ring attributes are sufficient for XDP */
> >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> >   		struct igb_ring *ring = adapter->rx_ring[i];
> > -		if (frame_size > igb_rx_bufsz(ring))
> > +		if (frame_size > igb_rx_bufsz(ring)) {
> > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

Dear Paul,

just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
for the text to print.
What seems to be the common practive is to add a second log line
with netdev_warn to print out the sizes.

Is that what you are looking for?

Best
Sven

> 
> Could you please also add both size values to the error message?
> 
> >   			return -EINVAL;
> > +		}
> >   	}
> >   	old_prog = xchg(&adapter->xdp_prog, prog);
> > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> >   {
> >   	switch (xdp->command) {
> >   	case XDP_SETUP_PROG:
> > -		return igb_xdp_setup(dev, xdp->prog);
> > +		return igb_xdp_setup(dev, xdp);
> >   	default:
> >   		return -EINVAL;
> >   	}
> > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> >   			struct igb_ring *ring = adapter->rx_ring[i];
> >   			if (max_frame > igb_rx_bufsz(ring)) {
> > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> >   				return -EINVAL;
> >   			}
> >   		}
> > 
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> PS: For commit message summaries, statements with verbs in imperative mood
> are quite common [1].
> 
> > igb: Print XDP extack error on too big frame size
> 
> 
> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11 10:10       ` Sven Auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11 10:10 UTC (permalink / raw)
  To: intel-wired-lan

On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
> > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > 
> > Add an extack error message when the RX buffer size is too small
> > for the frame size.
> > 
> > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > ---
> >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> >   1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > index 0a9198037b98..088f9ddb0093 100644
> > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> >   	}
> >   }
> > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> >   {
> >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> >   	struct igb_adapter *adapter = netdev_priv(dev);
> > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> >   	bool running = netif_running(dev);
> > -	struct bpf_prog *old_prog;
> >   	bool need_reset;
> >   	/* verify igb ring attributes are sufficient for XDP */
> >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> >   		struct igb_ring *ring = adapter->rx_ring[i];
> > -		if (frame_size > igb_rx_bufsz(ring))
> > +		if (frame_size > igb_rx_bufsz(ring)) {
> > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

Dear Paul,

just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
for the text to print.
What seems to be the common practive is to add a second log line
with netdev_warn to print out the sizes.

Is that what you are looking for?

Best
Sven

> 
> Could you please also add both size values to the error message?
> 
> >   			return -EINVAL;
> > +		}
> >   	}
> >   	old_prog = xchg(&adapter->xdp_prog, prog);
> > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> >   {
> >   	switch (xdp->command) {
> >   	case XDP_SETUP_PROG:
> > -		return igb_xdp_setup(dev, xdp->prog);
> > +		return igb_xdp_setup(dev, xdp);
> >   	default:
> >   		return -EINVAL;
> >   	}
> > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> >   			struct igb_ring *ring = adapter->rx_ring[i];
> >   			if (max_frame > igb_rx_bufsz(ring)) {
> > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> >   				return -EINVAL;
> >   			}
> >   		}
> > 
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> PS: For commit message summaries, statements with verbs in imperative mood
> are quite common [1].
> 
> > igb: Print XDP extack error on too big frame size
> 
> 
> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-11-11  9:39       ` Sven Auhagen
@ 2020-11-11 10:15         ` Jesper Dangaard Brouer
  -1 siblings, 0 replies; 28+ messages in thread
From: Jesper Dangaard Brouer @ 2020-11-11 10:15 UTC (permalink / raw)
  To: Sven Auhagen
  Cc: Paul Menzel, anthony.l.nguyen, maciej.fijalkowski, kuba, nhorman,
	netdev, intel-wired-lan, davem, sassmann, brouer

On Wed, 11 Nov 2020 10:39:09 +0100
Sven Auhagen <sven.auhagen@voleatech.de> wrote:

> On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> > Dear Sven,
> > 
> > 
> > Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:  
> > > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > > 
> > > Add an extack error message when the RX buffer size is too small
> > > for the frame size.
> > > 
> > > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > > ---
> > >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> > >   1 file changed, 7 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > > index 0a9198037b98..088f9ddb0093 100644
> > > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> > >   	}
> > >   }
> > > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> > >   {
> > >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> > >   	struct igb_adapter *adapter = netdev_priv(dev);
> > > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> > >   	bool running = netif_running(dev);
> > > -	struct bpf_prog *old_prog;
> > >   	bool need_reset;
> > >   	/* verify igb ring attributes are sufficient for XDP */
> > >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> > >   		struct igb_ring *ring = adapter->rx_ring[i];
> > > -		if (frame_size > igb_rx_bufsz(ring))
> > > +		if (frame_size > igb_rx_bufsz(ring)) {
> > > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");  
> > 
> > Could you please also add both size values to the error message?  
> 
> Dear Paul,
> 
> yes, sure.
> I will send a new series with that change.

I don't think it is possible to send this extra variable info via
extack (but the macro might have improved since last I checked).

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer


^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11 10:15         ` Jesper Dangaard Brouer
  0 siblings, 0 replies; 28+ messages in thread
From: Jesper Dangaard Brouer @ 2020-11-11 10:15 UTC (permalink / raw)
  To: intel-wired-lan

On Wed, 11 Nov 2020 10:39:09 +0100
Sven Auhagen <sven.auhagen@voleatech.de> wrote:

> On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> > Dear Sven,
> > 
> > 
> > Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:  
> > > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > > 
> > > Add an extack error message when the RX buffer size is too small
> > > for the frame size.
> > > 
> > > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > > ---
> > >   drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> > >   1 file changed, 7 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > > index 0a9198037b98..088f9ddb0093 100644
> > > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> > >   	}
> > >   }
> > > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> > >   {
> > >   	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> > >   	struct igb_adapter *adapter = netdev_priv(dev);
> > > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> > >   	bool running = netif_running(dev);
> > > -	struct bpf_prog *old_prog;
> > >   	bool need_reset;
> > >   	/* verify igb ring attributes are sufficient for XDP */
> > >   	for (i = 0; i < adapter->num_rx_queues; i++) {
> > >   		struct igb_ring *ring = adapter->rx_ring[i];
> > > -		if (frame_size > igb_rx_bufsz(ring))
> > > +		if (frame_size > igb_rx_bufsz(ring)) {
> > > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");  
> > 
> > Could you please also add both size values to the error message?  
> 
> Dear Paul,
> 
> yes, sure.
> I will send a new series with that change.

I don't think it is possible to send this extra variable info via
extack (but the macro might have improved since last I checked).

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-11-11 10:10       ` Sven Auhagen
@ 2020-11-11 10:35         ` Paul Menzel
  -1 siblings, 0 replies; 28+ messages in thread
From: Paul Menzel @ 2020-11-11 10:35 UTC (permalink / raw)
  To: Sven Auhagen
  Cc: anthony.l.nguyen, maciej.fijalkowski, kuba, nhorman, netdev,
	intel-wired-lan, brouer, davem, sassmann

Dear Sven,


Am 11.11.20 um 11:10 schrieb Sven Auhagen:
> On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:

>> Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:
>>> From: Sven Auhagen <sven.auhagen@voleatech.de>
>>>
>>> Add an extack error message when the RX buffer size is too small
>>> for the frame size.
>>>
>>> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
>>> ---
>>>    drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
>>>    1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
>>> index 0a9198037b98..088f9ddb0093 100644
>>> --- a/drivers/net/ethernet/intel/igb/igb_main.c
>>> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
>>> @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
>>>    	}
>>>    }
>>> -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
>>> +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
>>>    {
>>>    	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
>>>    	struct igb_adapter *adapter = netdev_priv(dev);
>>> +	struct bpf_prog *prog = bpf->prog, *old_prog;
>>>    	bool running = netif_running(dev);
>>> -	struct bpf_prog *old_prog;
>>>    	bool need_reset;
>>>    	/* verify igb ring attributes are sufficient for XDP */
>>>    	for (i = 0; i < adapter->num_rx_queues; i++) {
>>>    		struct igb_ring *ring = adapter->rx_ring[i];
>>> -		if (frame_size > igb_rx_bufsz(ring))
>>> +		if (frame_size > igb_rx_bufsz(ring)) {
>>> +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

> just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
> for the text to print.

Ah, Jesper remarked that too. Can the macro be extended?

> What seems to be the common practice is to add a second log line
> with netdev_warn to print out the sizes.
> 
> Is that what you are looking for?

Yes, though it sounds to cumbersome. So, yes, that’d be great for me, 
but up to you, if you think it’s useful.


Kind regards,

Paul


>> Could you please also add both size values to the error message?
>>
>>>    			return -EINVAL;
>>> +		}
>>>    	}
>>>    	old_prog = xchg(&adapter->xdp_prog, prog);
>>> @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>>>    {
>>>    	switch (xdp->command) {
>>>    	case XDP_SETUP_PROG:
>>> -		return igb_xdp_setup(dev, xdp->prog);
>>> +		return igb_xdp_setup(dev, xdp);
>>>    	default:
>>>    		return -EINVAL;
>>>    	}
>>> @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>>>    			struct igb_ring *ring = adapter->rx_ring[i];
>>>    			if (max_frame > igb_rx_bufsz(ring)) {
>>> -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
>>> +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
>>>    				return -EINVAL;
>>>    			}
>>>    		}
>>>
>>
>>
>> Kind regards,
>>
>> Paul
>>
>>
>> PS: For commit message summaries, statements with verbs in imperative mood
>> are quite common [1].
>>
>>> igb: Print XDP extack error on too big frame size
>>
>>
>> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11 10:35         ` Paul Menzel
  0 siblings, 0 replies; 28+ messages in thread
From: Paul Menzel @ 2020-11-11 10:35 UTC (permalink / raw)
  To: intel-wired-lan

Dear Sven,


Am 11.11.20 um 11:10 schrieb Sven Auhagen:
> On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:

>> Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
>>> From: Sven Auhagen <sven.auhagen@voleatech.de>
>>>
>>> Add an extack error message when the RX buffer size is too small
>>> for the frame size.
>>>
>>> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>>> Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
>>> ---
>>>    drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
>>>    1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
>>> index 0a9198037b98..088f9ddb0093 100644
>>> --- a/drivers/net/ethernet/intel/igb/igb_main.c
>>> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
>>> @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
>>>    	}
>>>    }
>>> -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
>>> +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
>>>    {
>>>    	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
>>>    	struct igb_adapter *adapter = netdev_priv(dev);
>>> +	struct bpf_prog *prog = bpf->prog, *old_prog;
>>>    	bool running = netif_running(dev);
>>> -	struct bpf_prog *old_prog;
>>>    	bool need_reset;
>>>    	/* verify igb ring attributes are sufficient for XDP */
>>>    	for (i = 0; i < adapter->num_rx_queues; i++) {
>>>    		struct igb_ring *ring = adapter->rx_ring[i];
>>> -		if (frame_size > igb_rx_bufsz(ring))
>>> +		if (frame_size > igb_rx_bufsz(ring)) {
>>> +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

> just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
> for the text to print.

Ah, Jesper remarked that too. Can the macro be extended?

> What seems to be the common practice is to add a second log line
> with netdev_warn to print out the sizes.
> 
> Is that what you are looking for?

Yes, though it sounds to cumbersome. So, yes, that?d be great for me, 
but up to you, if you think it?s useful.


Kind regards,

Paul


>> Could you please also add both size values to the error message?
>>
>>>    			return -EINVAL;
>>> +		}
>>>    	}
>>>    	old_prog = xchg(&adapter->xdp_prog, prog);
>>> @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>>>    {
>>>    	switch (xdp->command) {
>>>    	case XDP_SETUP_PROG:
>>> -		return igb_xdp_setup(dev, xdp->prog);
>>> +		return igb_xdp_setup(dev, xdp);
>>>    	default:
>>>    		return -EINVAL;
>>>    	}
>>> @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>>>    			struct igb_ring *ring = adapter->rx_ring[i];
>>>    			if (max_frame > igb_rx_bufsz(ring)) {
>>> -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
>>> +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
>>>    				return -EINVAL;
>>>    			}
>>>    		}
>>>
>>
>>
>> Kind regards,
>>
>> Paul
>>
>>
>> PS: For commit message summaries, statements with verbs in imperative mood
>> are quite common [1].
>>
>>> igb: Print XDP extack error on too big frame size
>>
>>
>> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
  2020-11-11 10:35         ` Paul Menzel
@ 2020-11-11 16:16           ` Sven Auhagen
  -1 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11 16:16 UTC (permalink / raw)
  To: Paul Menzel
  Cc: anthony.l.nguyen, maciej.fijalkowski, kuba, nhorman, netdev,
	intel-wired-lan, brouer, davem, sassmann

On Wed, Nov 11, 2020 at 11:35:44AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 11.11.20 um 11:10 schrieb Sven Auhagen:
> > On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> 
> > > Am 19.10.20 um 10:05 schrieb sven.auhagen@voleatech.de:
> > > > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > > > 
> > > > Add an extack error message when the RX buffer size is too small
> > > > for the frame size.
> > > > 
> > > > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > > > ---
> > > >    drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> > > >    1 file changed, 7 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > > > index 0a9198037b98..088f9ddb0093 100644
> > > > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > > > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > > > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> > > >    	}
> > > >    }
> > > > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > > > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> > > >    {
> > > >    	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> > > >    	struct igb_adapter *adapter = netdev_priv(dev);
> > > > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> > > >    	bool running = netif_running(dev);
> > > > -	struct bpf_prog *old_prog;
> > > >    	bool need_reset;
> > > >    	/* verify igb ring attributes are sufficient for XDP */
> > > >    	for (i = 0; i < adapter->num_rx_queues; i++) {
> > > >    		struct igb_ring *ring = adapter->rx_ring[i];
> > > > -		if (frame_size > igb_rx_bufsz(ring))
> > > > +		if (frame_size > igb_rx_bufsz(ring)) {
> > > > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
> 
> > just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
> > for the text to print.
> 
> Ah, Jesper remarked that too. Can the macro be extended?

It probably can be not as part of this patch series.

> 
> > What seems to be the common practice is to add a second log line
> > with netdev_warn to print out the sizes.
> > 
> > Is that what you are looking for?
> 
> Yes, though it sounds to cumbersome. So, yes, that’d be great for me, but up
> to you, if you think it’s useful.
> 

Let me add a netdev warn here so this patch can move forward
and the information is available.

Best
Sven

> 
> Kind regards,
> 
> Paul
> 
> 
> > > Could you please also add both size values to the error message?
> > > 
> > > >    			return -EINVAL;
> > > > +		}
> > > >    	}
> > > >    	old_prog = xchg(&adapter->xdp_prog, prog);
> > > > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> > > >    {
> > > >    	switch (xdp->command) {
> > > >    	case XDP_SETUP_PROG:
> > > > -		return igb_xdp_setup(dev, xdp->prog);
> > > > +		return igb_xdp_setup(dev, xdp);
> > > >    	default:
> > > >    		return -EINVAL;
> > > >    	}
> > > > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> > > >    			struct igb_ring *ring = adapter->rx_ring[i];
> > > >    			if (max_frame > igb_rx_bufsz(ring)) {
> > > > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > > > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> > > >    				return -EINVAL;
> > > >    			}
> > > >    		}
> > > > 
> > > 
> > > 
> > > Kind regards,
> > > 
> > > Paul
> > > 
> > > 
> > > PS: For commit message summaries, statements with verbs in imperative mood
> > > are quite common [1].
> > > 
> > > > igb: Print XDP extack error on too big frame size
> > > 
> > > 
> > > [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7C832ea50c701b4d89fd5508d8862d8c92%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406877489969478%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ITPcipxk%2Bg%2FR0QRssfiF5lm1K3mGJsB5wFkdF3SqiA0%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error
@ 2020-11-11 16:16           ` Sven Auhagen
  0 siblings, 0 replies; 28+ messages in thread
From: Sven Auhagen @ 2020-11-11 16:16 UTC (permalink / raw)
  To: intel-wired-lan

On Wed, Nov 11, 2020 at 11:35:44AM +0100, Paul Menzel wrote:
> Dear Sven,
> 
> 
> Am 11.11.20 um 11:10 schrieb Sven Auhagen:
> > On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:
> 
> > > Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
> > > > From: Sven Auhagen <sven.auhagen@voleatech.de>
> > > > 
> > > > Add an extack error message when the RX buffer size is too small
> > > > for the frame size.
> > > > 
> > > > Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> > > > Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
> > > > ---
> > > >    drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
> > > >    1 file changed, 7 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> > > > index 0a9198037b98..088f9ddb0093 100644
> > > > --- a/drivers/net/ethernet/intel/igb/igb_main.c
> > > > +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> > > > @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
> > > >    	}
> > > >    }
> > > > -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
> > > > +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
> > > >    {
> > > >    	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
> > > >    	struct igb_adapter *adapter = netdev_priv(dev);
> > > > +	struct bpf_prog *prog = bpf->prog, *old_prog;
> > > >    	bool running = netif_running(dev);
> > > > -	struct bpf_prog *old_prog;
> > > >    	bool need_reset;
> > > >    	/* verify igb ring attributes are sufficient for XDP */
> > > >    	for (i = 0; i < adapter->num_rx_queues; i++) {
> > > >    		struct igb_ring *ring = adapter->rx_ring[i];
> > > > -		if (frame_size > igb_rx_bufsz(ring))
> > > > +		if (frame_size > igb_rx_bufsz(ring)) {
> > > > +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
> 
> > just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
> > for the text to print.
> 
> Ah, Jesper remarked that too. Can the macro be extended?

It probably can be not as part of this patch series.

> 
> > What seems to be the common practice is to add a second log line
> > with netdev_warn to print out the sizes.
> > 
> > Is that what you are looking for?
> 
> Yes, though it sounds to cumbersome. So, yes, that?d be great for me, but up
> to you, if you think it?s useful.
> 

Let me add a netdev warn here so this patch can move forward
and the information is available.

Best
Sven

> 
> Kind regards,
> 
> Paul
> 
> 
> > > Could you please also add both size values to the error message?
> > > 
> > > >    			return -EINVAL;
> > > > +		}
> > > >    	}
> > > >    	old_prog = xchg(&adapter->xdp_prog, prog);
> > > > @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> > > >    {
> > > >    	switch (xdp->command) {
> > > >    	case XDP_SETUP_PROG:
> > > > -		return igb_xdp_setup(dev, xdp->prog);
> > > > +		return igb_xdp_setup(dev, xdp);
> > > >    	default:
> > > >    		return -EINVAL;
> > > >    	}
> > > > @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
> > > >    			struct igb_ring *ring = adapter->rx_ring[i];
> > > >    			if (max_frame > igb_rx_bufsz(ring)) {
> > > > -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
> > > > +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
> > > >    				return -EINVAL;
> > > >    			}
> > > >    		}
> > > > 
> > > 
> > > 
> > > Kind regards,
> > > 
> > > Paul
> > > 
> > > 
> > > PS: For commit message summaries, statements with verbs in imperative mood
> > > are quite common [1].
> > > 
> > > > igb: Print XDP extack error on too big frame size
> > > 
> > > 
> > > [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&amp;data=04%7C01%7Csven.auhagen%40voleatech.de%7C832ea50c701b4d89fd5508d8862d8c92%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406877489969478%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ITPcipxk%2Bg%2FR0QRssfiF5lm1K3mGJsB5wFkdF3SqiA0%3D&amp;reserved=0

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2020-11-11 16:16 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-19  8:05 [PATCH net v3 0/6] igb: xdp patches followup sven.auhagen
2020-10-19  8:05 ` [Intel-wired-lan] " sven.auhagen
2020-10-19  8:05 ` [PATCH net v3 1/6] igb: XDP xmit back fix error code sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
2020-10-19  8:05 ` [PATCH net v3 2/6] igb: take vlan double header into account sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
2020-10-19  8:05 ` [PATCH net v3 3/6] igb: XDP extack message on error sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
2020-11-11  5:31   ` Penigalapati, Sandeep
2020-11-11  5:31     ` [Intel-wired-lan] " Penigalapati, Sandeep
2020-11-11  7:11   ` Paul Menzel
2020-11-11  7:11     ` Paul Menzel
2020-11-11  9:39     ` Sven Auhagen
2020-11-11  9:39       ` Sven Auhagen
2020-11-11 10:15       ` Jesper Dangaard Brouer
2020-11-11 10:15         ` Jesper Dangaard Brouer
2020-11-11 10:10     ` Sven Auhagen
2020-11-11 10:10       ` Sven Auhagen
2020-11-11 10:35       ` Paul Menzel
2020-11-11 10:35         ` Paul Menzel
2020-11-11 16:16         ` Sven Auhagen
2020-11-11 16:16           ` Sven Auhagen
2020-10-19  8:05 ` [PATCH net v3 4/6] igb: skb add metasize for xdp sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
2020-10-19  8:05 ` [PATCH net v3 5/6] igb: use xdp_do_flush sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen
2020-10-19  8:05 ` [PATCH net v3 6/6] igb: avoid transmit queue timeout in xdp path sven.auhagen
2020-10-19  8:05   ` [Intel-wired-lan] " sven.auhagen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.