patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Lunyuan Cui <lunyuanx.cui@intel.com>
Cc: Xiaolong Ye <xiaolong.ye@intel.com>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/ixgbe: fix link up in FreeBSD' has been queued to LTS release 18.11.7
Date: Fri,  7 Feb 2020 15:12:30 +0000	[thread overview]
Message-ID: <20200207151248.29804-18-ktraynor@redhat.com> (raw)
In-Reply-To: <20200207151248.29804-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to LTS release 18.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/13/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7224d8b173a814aedfa59fa4fcd17479c7de739f

Thanks.

Kevin.

---
From 7224d8b173a814aedfa59fa4fcd17479c7de739f Mon Sep 17 00:00:00 2001
From: Lunyuan Cui <lunyuanx.cui@intel.com>
Date: Mon, 16 Dec 2019 02:24:18 +0000
Subject: [PATCH] net/ixgbe: fix link up in FreeBSD

[ upstream commit ba7b12dd64e4e08f52ce9dd62f7c52f6fc455e10 ]

In FreeBSD environment, nic_uio drivers do not support interrupts,
rte_intr_callback_register() will fail to register interrupts.
We cannot make link status to change from down to up by interrupt
callback. So we need to wait for the controller to acquire link
when ports start. Through multiple tests, 5s should be enough.

Fixes: b9bd0f09fa15 ("ethdev: fix link status query")

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 36 ++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 2092051940..fc7fc68120 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -375,4 +375,5 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
 static int ixgbe_filter_restore(struct rte_eth_dev *dev);
 static void ixgbe_l2_tunnel_conf(struct rte_eth_dev *dev);
+static int ixgbe_wait_for_link_up(struct ixgbe_hw *hw);
 
 /*
@@ -2832,4 +2833,9 @@ skip_link_setup:
 			    "before starting the port");
 
+	/* wait for the controller to acquire link */
+	err = ixgbe_wait_for_link_up(hw);
+	if (err)
+		goto error;
+
 	/*
 	 * Update link status right before return, because it may
@@ -4079,4 +4085,34 @@ ixgbe_dev_setup_link_alarm_handler(void *param)
 }
 
+/*
+ * In freebsd environment, nic_uio drivers do not support interrupts,
+ * rte_intr_callback_register() will fail to register interrupts.
+ * We can not make link status to change from down to up by interrupt
+ * callback. So we need to wait for the controller to acquire link
+ * when ports start.
+ * It returns 0 on link up.
+ */
+static int
+ixgbe_wait_for_link_up(struct ixgbe_hw *hw)
+{
+#ifdef RTE_EXEC_ENV_FREEBSD
+	const int nb_iter = 25;
+#else
+	const int nb_iter = 0;
+#endif
+	int err, i, link_up = 0;
+	uint32_t speed = 0;
+
+	for (i = 0; i < nb_iter; i++) {
+		err = ixgbe_check_link(hw, &speed, &link_up, 0);
+		if (err)
+			return err;
+		if (link_up)
+			return 0;
+		msec_delay(200);
+	}
+	return 0;
+}
+
 /* return 0 means link status changed, -1 means not changed */
 int
-- 
2.21.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-02-07 15:08:18.460363007 +0000
+++ 0018-net-ixgbe-fix-link-up-in-FreeBSD.patch	2020-02-07 15:08:17.526062790 +0000
@@ -1 +1 @@
-From ba7b12dd64e4e08f52ce9dd62f7c52f6fc455e10 Mon Sep 17 00:00:00 2001
+From 7224d8b173a814aedfa59fa4fcd17479c7de739f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ba7b12dd64e4e08f52ce9dd62f7c52f6fc455e10 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index a3f550c534..fba8c51595 100644
+index 2092051940..fc7fc68120 100644
@@ -26 +27 @@
-@@ -379,4 +379,5 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
+@@ -375,4 +375,5 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
@@ -32 +33 @@
-@@ -2802,4 +2803,9 @@ skip_link_setup:
+@@ -2832,4 +2833,9 @@ skip_link_setup:
@@ -42 +43 @@
-@@ -4115,4 +4121,34 @@ ixgbe_dev_setup_link_alarm_handler(void *param)
+@@ -4079,4 +4085,34 @@ ixgbe_dev_setup_link_alarm_handler(void *param)


  parent reply	other threads:[~2020-02-07 15:14 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-07 15:12 [dpdk-stable] patch 'eal/linux: fix uninitialized data valgrind warning' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'eal/linux: fix build error on RHEL 7.6' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'doc: fix build with python 3.8' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'build: explicitly enable sse4 for meson' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'kni: fix meson warning about console keyword' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'doc: fix warning with meson' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'doc: reduce whitespace in meson build file' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'doc: reduce indentation " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'event/dsw: flush buffers immediately on zero-sized enqueue' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'event/dsw: avoid credit leak on oversized enqueue bursts' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'bus/fslmc: remove conflicting memory barrier macro' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix crash on unsupported algo' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'app/testpmd: fix device mcast list error handling' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/fm10k: fix descriptor VLAN field filling in Tx' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/iavf: fix Rx total stats' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/iavf: add TSO offload use basic path' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
2020-02-07 15:12 ` Kevin Traynor [this message]
2020-02-07 15:12 ` [dpdk-stable] patch 'net/iavf/base: fix command buffer memory leak' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/iavf/base: fix adminq return' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/iavf: fix virtual channel " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/i40e: fix Tx when TSO is enabled' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/bnxt: fix link during port toggle' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'app/testpmd: call cleanup on exit' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/vhost: check creation failure' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/virtio-user: check file descriptor before closing' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'vhost: fix socket initial value' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/i40e/base: fix buffer address' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/i40e/base: fix error message' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/i40e/base: fix Tx descriptors number' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/i40e/base: fix retrying logic' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'ethdev: fix callback unregister with wildcard argument list' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/netvsc: fix crash in secondary process' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'net/cxgbe: announce Tx multi-segments offload' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'service: avoid false sharing on core state' " Kevin Traynor
2020-02-07 15:12 ` [dpdk-stable] patch 'service: don't walk out of bounds when checking services' " Kevin Traynor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200207151248.29804-18-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=lunyuanx.cui@intel.com \
    --cc=stable@dpdk.org \
    --cc=xiaolong.ye@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).