net/softnic: fix pipeline time calculation

Message ID 20190515135904.81415-1-xiao.w.wang@intel.com
State New
Delegated to: Cristian Dumitrescu
Headers show
Series
  • net/softnic: fix pipeline time calculation
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Xiao Wang May 15, 2019, 1:59 p.m.
When a new pipeline is added to a thread, the "time_next_min" value may
need update, otherwise this pipeline won't get served timely.

Fixes: 70709c78fda6 ("net/softnic: add command to enable/disable pipeline")
Cc: stable@dpdk.org

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
---
 drivers/net/softnic/rte_eth_softnic_thread.c | 6 ++++++
 1 file changed, 6 insertions(+)

Patch

diff --git a/drivers/net/softnic/rte_eth_softnic_thread.c b/drivers/net/softnic/rte_eth_softnic_thread.c
index 855408e98..2b482117d 100644
--- a/drivers/net/softnic/rte_eth_softnic_thread.c
+++ b/drivers/net/softnic/rte_eth_softnic_thread.c
@@ -337,6 +337,9 @@  softnic_thread_pipeline_enable(struct pmd_internals *softnic,
 		tdp->timer_period = (rte_get_tsc_hz() * p->timer_period_ms) / 1000;
 		tdp->time_next = rte_get_tsc_cycles() + tdp->timer_period;
 
+		if (tdp->time_next < td->time_next_min)
+			td->time_next_min = tdp->time_next;
+
 		td->n_pipelines++;
 
 		/* Pipeline */
@@ -522,6 +525,9 @@  thread_msg_handle_pipeline_enable(struct softnic_thread_data *t,
 		(rte_get_tsc_hz() * req->pipeline_enable.timer_period_ms) / 1000;
 	p->time_next = rte_get_tsc_cycles() + p->timer_period;
 
+	if (p->time_next < t->time_next_min)
+		t->time_next_min = p->time_next;
+
 	t->n_pipelines++;
 
 	/* Response */