[dpdk-dev] [PATCH] doc: announce API change in timer

Sarosh Arif sarosh.arif at emumba.com
Tue Aug 4 05:28:59 CEST 2020


Thank you Eric, I will fix the mistakes in v2

On Tue, Aug 4, 2020 at 4:16 AM Honnappa Nagarahalli
<Honnappa.Nagarahalli at arm.com> wrote:
>
> <snip>
>
> >
> > If the user tries to reset/stop some other timer in it's callback function, which
> Is there any use case for this? Why not just say document that the user is not allowed to reset some other timer in the call back function? How does the user get access to some other timer in the call back function?
> Not sure if this was discussed earlier, I might have missed.
The issue is more clearly described in bug 491 here is a link:
https://bugs.dpdk.org/show_bug.cgi?id=491
further discussion on this issue was done on the following patch:
https://patches.dpdk.org/patch/73683/

>
> > is also about to expire, using rte_timer_reset_sync/rte_timer_stop_sync the
> > application goes into an infinite loop. This happens because
> > rte_timer_reset_sync/rte_timer_stop_sync loop until the timer resets/stops
> > and there is check inside timer_set_config_state which prevents a running
> > timer from being reset/stopped by not it's own timer_cb. Therefore
> > timer_set_config_state returns -1 due to which rte_timer_reset returns -1 and
> > rte_timer_reset_sync goes into an infinite loop
> >
> > To to prevent this rte_timer_reset_sync and rte_timer_stop_sync should have
> > int return types, so that -1 can be returned if the above condition occurs
> >
> > Signed-off-by: Sarosh Arif <sarosh.arif at emumba.com>
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst
> > b/doc/guides/rel_notes/deprecation.rst
> > index ea4cfa7a4..ed93a707d 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -151,3 +151,9 @@ Deprecation Notices
> >    Python 2 support will be completely removed in 20.11.
> >    In 20.08, explicit deprecation warnings will be displayed when running
> >    scripts with Python 2.
> > +
> > +* timer: Since timer can get stuck in an infinite loop if the
> > +application tries to
> > +  reset/stop some other timer in it's callback function, which is also
> > +about to
> > +  expire. The function ``rte_timer_stop_sync`` and
> > +``rte_timer_stop_sync``  will
> > +  have a int return type in order to return with -1 in when this
> > +condition
> > +  occures.
> > --
> > 2.17.1
>


More information about the dev mailing list