13/12/2018 23:26, Erik Gabriel Carrillo: > This patch series modifies the timer library in such a way that > structures that used to be statically allocated in a process's data > segment are now allocated in shared memory. As these structures contain > lists of timers, new APIs are introduced that allow a caller to specify > the particular structure instance into which a timer should be inserted > or from which a timer should be removed. This enables primary and > secondary processes to modify the same timer list, which enables some > multi-process use cases that were not previously possible; e.g. a > secondary process can start a timer whose expiration is detected in a > primary process running a new flavor of timer_manage(). > > The original library API is mostly unchanged, though implementations are > updated to call into newly added functions with a default structure > instance ID that provides the original behavior. New functions are > introduced to enable applications to allocate structure instances to > house timer lists, and to reference them with an identifier when > starting and stopping timers, and finally, to manage the timer lists > referenced with an identifier. > > My initial performance testing with the "timer_perf_autotest" test shows > no performance regression or improvement, and inspection of the > generated optimized code shows that the extra function call gets inlined > in the functions that now have an extra function call. > > Depends on: https://patches.dpdk.org/patch/48417/ > > Changes in v3: > - remove C++ style comment in first patch in series (Stephen) > > Changes in v2: > - split these changes out into their own series > - version the symbols where the existing ABI was updated, and > provide alternate implementation with behavior equivalent to original > behavior. Validated ABI compatibility with validate-abi.sh > - refactor changes to simplify patches > > Erik Gabriel Carrillo (2): > timer: allow timer management in shared memory > timer: add function to stop all timers in a list > > lib/librte_timer/Makefile | 1 + > lib/librte_timer/rte_timer.c | 558 > ++++++++++++++++++++++++++++++--- > lib/librte_timer/rte_timer.h | 258 ++++++++++++++- > lib/librte_timer/rte_timer_version.map | 23 ++ > 4 files changed, 795 insertions(+), 45 deletions(-)
It is a lot of changes! Anyone to review please?