* [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
@ 2019-09-02 5:32 Suraj R Gupta
2019-09-02 11:22 ` Bruce Richardson
0 siblings, 1 reply; 6+ messages in thread
From: Suraj R Gupta @ 2019-09-02 5:32 UTC (permalink / raw)
To: users, dev
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.
--
Thanks and Regards
Suraj R Gupta
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
2019-09-02 5:32 [dpdk-dev] Stopping DPDK Timer [RTE-Timers] Suraj R Gupta
@ 2019-09-02 11:22 ` Bruce Richardson
2019-09-02 11:42 ` Suraj R Gupta
0 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2019-09-02 11:22 UTC (permalink / raw)
To: Suraj R Gupta; +Cc: users, dev
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
2019-09-02 11:22 ` Bruce Richardson
@ 2019-09-02 11:42 ` Suraj R Gupta
2019-09-02 15:14 ` Bruce Richardson
0 siblings, 1 reply; 6+ messages in thread
From: Suraj R Gupta @ 2019-09-02 11:42 UTC (permalink / raw)
To: Bruce Richardson; +Cc: users, dev
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
On Mon, Sep 2, 2019 at 4:52 PM Bruce Richardson <bruce.richardson@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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
2019-09-02 11:42 ` Suraj R Gupta
@ 2019-09-02 15:14 ` Bruce Richardson
2019-09-03 4:51 ` Suraj R Gupta
0 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2019-09-02 15:14 UTC (permalink / raw)
To: Suraj R Gupta; +Cc: users, dev
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@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@intel.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
2019-09-02 15:14 ` Bruce Richardson
@ 2019-09-03 4:51 ` Suraj R Gupta
2019-09-03 6:04 ` Stephen Hemminger
0 siblings, 1 reply; 6+ messages in thread
From: Suraj R Gupta @ 2019-09-03 4:51 UTC (permalink / raw)
To: Bruce Richardson; +Cc: users, dev
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@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@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@intel.com
>
--
Thanks and Regards
Suraj R Gupta
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Stopping DPDK Timer [RTE-Timers]
2019-09-03 4:51 ` Suraj R Gupta
@ 2019-09-03 6:04 ` Stephen Hemminger
0 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2019-09-03 6:04 UTC (permalink / raw)
To: Suraj R Gupta; +Cc: Bruce Richardson, users, dev
On Tue, 3 Sep 2019 10:21:17 +0530
Suraj R Gupta <surajrgupta@iith.ac.in> wrote:
> 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.
>
rte_timer_manage is what that drives running timers.
You can't stop a timer in the middle through DPDK.
But you could set a flag on one cpu and test that in what ever long
running loop you have in a the timer.
Having a long running loop, kind of defeats the purpose of rte_timers
which are meant for short running callbacks.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-09-03 6:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-02 5:32 [dpdk-dev] Stopping DPDK Timer [RTE-Timers] Suraj R Gupta
2019-09-02 11:22 ` Bruce Richardson
2019-09-02 11:42 ` Suraj R Gupta
2019-09-02 15:14 ` Bruce Richardson
2019-09-03 4:51 ` Suraj R Gupta
2019-09-03 6:04 ` Stephen Hemminger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).