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: sta...@dpdk.org

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

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 */
-- 
2.15.1

Reply via email to