> -----Original Message-----
> From: Wang, Xiao W
> Sent: Wednesday, May 15, 2019 2:59 PM
> To: Singh, Jasvinder <jasvinder.si...@intel.com>
> Cc: dev@dpdk.org; Dumitrescu, Cristian <cristian.dumitre...@intel.com>;
> Wang, Xiao W <xiao.w.w...@intel.com>; sta...@dpdk.org
> Subject: [PATCH] net/softnic: fix pipeline time calculation
>
> 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
Hi Wang,
Timer values for pipelines and thread level message handlers are already
adjusted in runtime function rte_pmd_softnic_run_internal(). In runtime
function, the values of t->time_next_min is updated as well. IMO, above changes
not needed. Could you help with the case where timer adjustments in runtime not
working?
Thanks,
Jasvinder