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