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