[dpdk-stable] patch 'net/qede: fix slow path completion timeout' has been queued to stable release 18.02.2
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue May 29 12:25:49 CEST 2018
Hi,
FYI, your patch has been queued to stable release 18.02.2
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/31/18. So please
shout if anyone has objections.
Thanks.
Luca Boccassi
---
>From e6d531b7aef43ffc4e5331d822d94ddf073172e6 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh at cavium.com>
Date: Wed, 23 May 2018 11:48:53 -0700
Subject: [PATCH] net/qede: fix slow path completion timeout
[ upstream commit 0833120f20f0aeae8496d39bddaad0c1a70b0bfc ]
In 100G mode, we poll firmware slow path completion for every 1 second,
which is not enough and may result in completion timeout if
driver misses that window.
Patch "eal: set affinity for control threads" exposed this issue since
alarm callback runs in control thread context.
Fix this issue by update polling period to 100ms.
Fixes: d651ee4919cd ("eal: set affinity for control threads")
Fixes: 2af14ca79c0a ("net/qede: support 100G")
Signed-off-by: Shahed Shaikh <shahed.shaikh at cavium.com>
---
drivers/net/qede/qede_ethdev.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 65eb33e73..6dfff07e2 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -16,7 +16,7 @@ int qede_logtype_init;
int qede_logtype_driver;
static const struct qed_eth_ops *qed_ops;
-static int64_t timer_period = 1;
+#define QEDE_SP_TIMER_PERIOD 10000 /* 100ms */
/* VXLAN tunnel classification mapping */
const struct _qede_udp_tunn_types {
@@ -1649,7 +1649,7 @@ static void qede_poll_sp_sb_cb(void *param)
qede_interrupt_action(ECORE_LEADING_HWFN(edev));
qede_interrupt_action(&edev->hwfns[1]);
- rc = rte_eal_alarm_set(timer_period * US_PER_S,
+ rc = rte_eal_alarm_set(QEDE_SP_TIMER_PERIOD,
qede_poll_sp_sb_cb,
(void *)eth_dev);
if (rc != 0) {
@@ -3046,7 +3046,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
* interrupt vector but we need one for each engine.
*/
if (ECORE_IS_CMT(edev) && IS_PF(edev)) {
- rc = rte_eal_alarm_set(timer_period * US_PER_S,
+ rc = rte_eal_alarm_set(QEDE_SP_TIMER_PERIOD,
qede_poll_sp_sb_cb,
(void *)eth_dev);
if (rc != 0) {
--
2.17.0
More information about the stable
mailing list