[dpdk-dev] Stopping DPDK Timer [RTE-Timers]

Suraj R Gupta surajrgupta at iith.ac.in
Tue Sep 3 06:51:17 CEST 2019


These are the links to Timers documentation.
https://doc.dpdk.org/api/rte__timer_8h.html
https://doc.dpdk.org/guides/prog_guide/timer_lib.html

 As per my understanding of the documentation,
PENDING means timer is scheduled to run but not started.(in a list)
RUNNING means timer is presently running.
STOPPED means timer has stopped and callback processed.

rte_timer_stop() can be used from callbacks for stopping the timer even in
case of periodical(multishot timers)
my use case is for a single shot , where i have to stop the timer in middle.


On Mon, Sep 2, 2019 at 8:44 PM Bruce Richardson <bruce.richardson at intel.com>
wrote:

> On Mon, Sep 02, 2019 at 05:12:36PM +0530, Suraj R Gupta wrote:
> >    Hi,
> >    If I am right, rte_timer_stop() stops the timer after the call back
> >    execution.
> >    It is said that if rte_timer_stop() is called during timer running,
> >    function will fail.
> >    I want to know if timer can be stopped in middle abruptly? i.e  If I
> >    have timer started for 500 ms and  i want to stop it in 100ms
> >    Thanks
> >
>
> IIRC when a timer has been configured but the time has not yet expired
> it is in the PENDING state, where is can be safely stopped. I believe the
> running state is for timers which have expired and are about to have their
> callbacks processed, or are currently having their callbacks processed on
> another core. Therefore, in the normal case, using stop will do what
> you want. If this is not the case, it seems like something we should fix.
>
> Regards,
> /Bruce
>
> >    On Mon, Sep 2, 2019 at 4:52 PM Bruce Richardson
> >    <[1]bruce.richardson at intel.com> wrote:
> >
> >      On Mon, Sep 02, 2019 at 11:02:16AM +0530, Suraj R Gupta wrote:
> >      > Hi all,
> >      > I am working with DPDK timers.
> >      > In the documentation of timers, it has been said that dpdk based
> >      rte-timers
> >      > cannot stopped while running. I would like to know if there is any
> >      way to
> >      > stop it in middle or any workaround is possible.
> >      >
> >      > For e.g.: If I have timer started for 500 ms and  i want to stop
> >      it in 100
> >      > ms due to an event/interrupt.
> >      >
> >      > Note:I am not talking of stopping timer after callback execution,
> >      before
> >      > timer expiry in middle
> >      > Thanks in advance.
> >      >
> >      I think rte_timer_stop() is what you are looking for.
> >      /Bruce
> >
> >    --
> >
> >    Thanks and Regards
> >    Suraj R Gupta
> >
> > References
> >
> >    1. mailto:bruce.richardson at intel.com
>


-- 
Thanks and Regards
Suraj R Gupta


More information about the dev mailing list