[dpdk-dev] [PATCH] doc: announce API change in timer
Carrillo, Erik G
erik.g.carrillo at intel.com
Mon Aug 3 18:45:52 CEST 2020
> -----Original Message-----
> From: Sarosh Arif <sarosh.arif at emumba.com>
> Sent: Monday, August 3, 2020 6:21 AM
> To: Carrillo, Erik G <erik.g.carrillo at intel.com>; rsanford at akamai.com
> Cc: dev at dpdk.org; Sarosh Arif <sarosh.arif at emumba.com>
> Subject: [PATCH] doc: announce API change in timer
>
> If the user tries to reset/stop some other timer in it's callback function, which
> 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
It looks like this should be rte_timer_reset_sync. Maybe something like:
timer: Timers can get stuck in an infinite loop if their callback tries to synchronously reset/stop some other timer that is also about to expire. The functions ``rte_timer_reset_sync`` and ``rte_timer_stop_sync`` will updated with an int return type so that an error code can be returned when this condition occurs.
Thanks,
Erik
> +``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