[dpdk-dev] [PATCH v3 0/2] Timer library changes
Mattias Rönnblom
hofors at lysator.liu.se
Wed Dec 19 08:33:20 CET 2018
On 2018-12-19 04:35, Thomas Monjalon wrote:
> 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?
>
>
I can give reviewing the overall aim with the patch set a try: Do we
really want DPDK to support more secondary process-based use cases? I
would rather see it supporting fewer, with the long term goal of
dropping support for secondary processes altogether.
DPDK secondary processes are a horrible mess, in my opinion, to put it
bluntly.
More information about the dev
mailing list