[dpdk-dev] [PATCH v8 0/3] generic spinlock optimization and test case enhancements
konstantin.ananyev at intel.com
Fri Mar 15 13:21:03 CET 2019
> V8: Remove internal ChangeId
> V7: Update the 1/3 patch headline and commit message
> V6: Rebase and drop the first patch as a similar fix was already merged.
> V5: Remove ChangeId(sorry for that)
> 1. Drop one patch for the test case to get time precisely as the overhead
> of getting time is amortized already in another patch.
> 2. Drop the ticket lock patch from this series as there are no dependency
> between them, the ticket lock patch was submitted separately:
> 3. Define volatile variable in patch #3 to be more realistic for spinlock
> protection(avoid optimization be compiler).
> 4. Fix typos.
> 1. Implemented the ticket lock to improve the fairness and predictability.
> The locks are obtained in the order of requested.
> 1. FORCE_INTRINCIS is still an option for ppc/x86, although not is use
> by default, so don't remove it from generic file.
> 2. Fix the clang compiler error on x86 when the above FORCE_INTRINSICS
> is enabled.
> 1. Remove the 1us delay outside of the locked region to really benchmark
> the spinlock acquire/release performance, not the delay API.
> 2. Use the precise version of getting timestamps for more precise
> benchmarking results.
> 3. Amortize the overhead of getting the timestamp by 10000 loops.
> 4. Move the arm specific implementation to arm folder to remove the
> hardcoded implementation.
> 5. Use atomic primitives, which translate to one-way barriers, instead of
> two-way sync primitives, to optimize for performance.
> Gavin Hu (3):
> test/spinlock: remove 1us delay for correct benchmarking
> test/spinlock: amortize the cost of getting time
> spinlock: reimplement with atomic one-way barrier builtins
> app/test/test_spinlock.c | 31 +++++++++++-----------
> .../common/include/generic/rte_spinlock.h | 18 +++++++++----
> 2 files changed, 29 insertions(+), 20 deletions(-)
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
More information about the dev