[dpdk-dev] [PATCH] timer: fix break list when timer_cb reset running timer

Sanford, Robert rsanford at akamai.com
Mon Jul 25 14:29:23 CEST 2016


On 7/23/16 4:49 AM, "Thomas Monjalon" <thomas.monjalon at 6wind.com> wrote:

>2016-07-23 0:14 GMT+02:00 Sanford, Robert <rsanford at akamai.com>:
>> Acked-by: Robert Sanford <rsanford at akamai.com>
>>
>> I tested the three timer patches with app/test timer_autotest and
>> timer_racecond_autotest, and additional private tests.
>
>Thanks Robert.
>Are you confident enough to integrate them in the last days of 16.07?
>How critical are they?
>Should we make a RC5 for them?

Yes, I'm confident that the patches are safe and correct.
However, I'm not sure that we should make a RC just for them.

Patch 1 fixes a problem where we incorrectly lower the depth of the skip
list, resulting in performance that does not live up to O(log n) that we
expect. Summary: performance degradation with large number of timers.

Patch 2 fixes a minor inefficiency when timer_manage() races with
timer_stop() or timer_reset().

Patch 3 fixes the most serious problem: We may corrupt timer list links if
multiple timers expire at roughly the same time, and one of those timers'
callback tries to stop/reset other(s) that are scheduled to run in the
same call to timer_manage().

Question for Hiroyuki:
How did you discover timer linked-list corruption? By code inspection, or
do you have a real application that needs that functionality (timers
stop/reset each other at roughly the same time)?

Regards,
Robert



More information about the dev mailing list