libcds.git
7 years agoA magic code is found to fix CLang 3.6-3.7 mass test failures for FeldmanHashSet...
khizmax [Mon, 15 May 2017 19:53:17 +0000 (22:53 +0300)]
A magic code is found to fix CLang 3.6-3.7 mass test failures for FeldmanHashSet<RCU> even in single-threaded ubit tests

7 years agoFixed several bugs in WeakRungBuffer
khizmax [Sun, 14 May 2017 20:23:59 +0000 (23:23 +0300)]
Fixed several bugs in WeakRungBuffer
Added single-threaded test for single-consumer VyukowQueue
Added single-threaded test for WeakRingBuffer

7 years agoGCC-7 64bit does not support lock-free wide (128-bit) atomics
khizmax [Sat, 13 May 2017 16:43:59 +0000 (19:43 +0300)]
GCC-7 64bit does not support lock-free wide (128-bit) atomics

7 years agoMerged VC 14.1 projects to VC14
khizmax [Sat, 13 May 2017 16:43:04 +0000 (19:43 +0300)]
Merged VC 14.1 projects to VC14

7 years agoWrapped gtest/gtest.h into cds_test/ext_gtest.h to suppress GCC 7 warning
khizmax [Fri, 12 May 2017 20:46:39 +0000 (23:46 +0300)]
Wrapped gtest/gtest.h into cds_test/ext_gtest.h to suppress GCC 7 warning

7 years agoFixed a bug
khizmax [Fri, 12 May 2017 19:22:48 +0000 (22:22 +0300)]
Fixed a bug

7 years agoFixed a bug
khizmax [Fri, 12 May 2017 19:07:35 +0000 (22:07 +0300)]
Fixed a bug

7 years agoAdded prototype for untyped variable-sized WeakRingBuffer<void> (not tested yet,...
khizmax [Fri, 12 May 2017 14:08:59 +0000 (17:08 +0300)]
Added prototype for untyped variable-sized WeakRingBuffer<void> (not tested yet, to be continued)

7 years agoFixed typo
khizmax [Thu, 11 May 2017 18:33:41 +0000 (21:33 +0300)]
Fixed typo

7 years agoTry to disable CLang "unused private field" warning
khizmax [Thu, 11 May 2017 18:31:20 +0000 (21:31 +0300)]
Try to disable CLang "unused private field" warning

7 years agoAdded missing header
khizmax [Thu, 11 May 2017 18:17:19 +0000 (21:17 +0300)]
Added missing header

7 years agoFixed typo
khizmax [Wed, 10 May 2017 21:04:21 +0000 (00:04 +0300)]
Fixed typo

7 years agoissue #76: added cds::atomicity::cache_friendly_item_counter to avoid false sharing
khizmax [Wed, 10 May 2017 21:01:35 +0000 (00:01 +0300)]
issue #76: added cds::atomicity::cache_friendly_item_counter to avoid false sharing
issue #76: MichaelHashSet/Map: removed static_assert for empty_item_counter

7 years agoAdded WeakRingBuffer - a single-producer/single-consumer queue based on ring buffer
khizmax [Tue, 9 May 2017 08:04:54 +0000 (11:04 +0300)]
Added WeakRingBuffer - a single-producer/single-consumer queue based on ring buffer

7 years agoDocfix
khizmax [Mon, 8 May 2017 17:29:24 +0000 (20:29 +0300)]
Docfix

7 years agoDocfix
khizmax [Sun, 7 May 2017 08:46:58 +0000 (11:46 +0300)]
Docfix

7 years ago[SplitList] Fixed TSan warnings
khizmax [Sat, 6 May 2017 16:38:33 +0000 (19:38 +0300)]
[SplitList] Fixed TSan warnings

7 years agoAdded support __SANITIZE_THREAD__ pre-defined macro for GCC-5+
khizmax [Thu, 4 May 2017 20:20:46 +0000 (23:20 +0300)]
Added support __SANITIZE_THREAD__ pre-defined macro for GCC-5+

7 years agoFixed "dangling-else" GCC7 warning
khizmax [Thu, 4 May 2017 07:38:06 +0000 (10:38 +0300)]
Fixed "dangling-else" GCC7 warning

7 years agoAdded ability to manually suppress wide-atomic support in compiler command line:
khizmax [Wed, 3 May 2017 20:46:48 +0000 (23:46 +0300)]
Added ability to manually suppress wide-atomic support in compiler command line:
 for 64bit platform: -DCDS_DISABLE_128BIT_ATOMIC
 for 32bit platform: -DCDS_DISABLE_64BIT_ATOMIC

7 years agoGCC-7 requires libatomic to support 128-bit atomics on amd64, see https://gcc.gnu...
khizmax [Wed, 3 May 2017 20:19:21 +0000 (23:19 +0300)]
GCC-7 requires libatomic to support 128-bit atomics on amd64, see https://gcc.gnu.org/ml/gcc/2017-01/msg00167.html discussion.

7 years agoFixed include directive
khizmax [Wed, 3 May 2017 19:11:29 +0000 (22:11 +0300)]
Fixed include directive

7 years agoAdded missing CityHash file for SSE4.2 platform
khizmax [Wed, 3 May 2017 18:48:45 +0000 (21:48 +0300)]
Added missing CityHash file for SSE4.2 platform

7 years agoAdded GCC-7 to CI
khizmax [Wed, 3 May 2017 18:26:13 +0000 (21:26 +0300)]
Added GCC-7 to CI

7 years agoAdded -Wno-unused-local-typedefs for GCC7
khizmax [Wed, 3 May 2017 18:18:58 +0000 (21:18 +0300)]
Added -Wno-unused-local-typedefs for GCC7

7 years agoFixed a typo
khizmax [Wed, 26 Apr 2017 18:47:21 +0000 (21:47 +0300)]
Fixed a typo

7 years agoFixed minor warnings
khizmax [Wed, 26 Apr 2017 13:46:53 +0000 (16:46 +0300)]
Fixed minor warnings

7 years agoAdded missing pthread lib to cmake test script
khizmax [Tue, 25 Apr 2017 18:31:05 +0000 (21:31 +0300)]
Added missing pthread lib to cmake test script

7 years agoAdded cleaning after CHECK_CXX_SOURCE_COMPILES call
khizmax [Mon, 24 Apr 2017 21:01:40 +0000 (00:01 +0300)]
Added cleaning after CHECK_CXX_SOURCE_COMPILES call

7 years agoFixed annoying warning in gtest: added 4th arg for INSTANTIATE_TEST_CASE_P macro...
khizmax [Mon, 24 Apr 2017 20:53:29 +0000 (23:53 +0300)]
Fixed annoying warning in gtest: added 4th arg for INSTANTIATE_TEST_CASE_P macro if it is supported

7 years agoFixed uRCU barriers on read-side entry/exit
khizmax [Mon, 24 Apr 2017 19:57:58 +0000 (22:57 +0300)]
Fixed uRCU barriers on read-side entry/exit

7 years agoRemoved prohibited atomic<void*>::fetch_xxx() tests
khizmax [Mon, 24 Apr 2017 16:11:45 +0000 (19:11 +0300)]
Removed prohibited atomic<void*>::fetch_xxx() tests

7 years agoRestored acq-rel fence in urcu access_lock().
khizmax [Mon, 24 Apr 2017 16:05:21 +0000 (19:05 +0300)]
Restored acq-rel fence in urcu access_lock().
Seems, CLang 3.6/3.7 cannot handle acquire barrier on atomic var correctly

7 years agoRemoved odd assert
khizmax [Sun, 23 Apr 2017 21:35:07 +0000 (00:35 +0300)]
Removed odd assert

7 years agoRemoved constexpr from node ctor
khizmax [Sun, 23 Apr 2017 20:52:19 +0000 (23:52 +0300)]
Removed constexpr from node ctor

7 years ago[signal-handled urcu]: add cacheline padding to URCU thread data
khizmax [Sun, 23 Apr 2017 17:19:23 +0000 (20:19 +0300)]
[signal-handled urcu]: add cacheline padding to URCU thread data

7 years agourcu: add cacheline padding to URCU thread data
Todd Lipcon [Fri, 21 Apr 2017 23:01:47 +0000 (16:01 -0700)]
urcu: add cacheline padding to URCU thread data

The thread-local data was previously smaller than a cacheline, so it was
possible for multiple thread's thread data to be allocated on the same
cacheline and cause false sharing.

I measured the offcore_response.all_data_rd.l3_hit.hitm_other_core
perf counter in a read-only workload with 16 threads executing a
read-only workload against a URCU-protected split-list set. Before, I
saw about 5.6M events per second. After, I saw basically none.

Additionally, 'perf c2c' showed a lot of cache-line bouncing in the URCU
read side critical section before, but now shows none.

I benchmarked the above read-only workload on a machine with 88 logical
cores (Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz) and 88 threads, and
the performance improved more than 2x.

Fixes issue #75

7 years ago[urcu] Replaced RMW atomics with atomic load/store in URCU read-side lock/unlock.
khizmax [Sat, 22 Apr 2017 16:31:36 +0000 (19:31 +0300)]
[urcu] Replaced RMW atomics with atomic load/store in URCU read-side lock/unlock.
Fixing the barriers speed up a micro-benchmark (16 threads accessing an RCU-protected split-list set) by 30-40%. Thanks to Todd Lipcon who found this improvement

7 years ago[SkipList] Added random-lvel generators for max height 32/24/16
khizmax [Sat, 22 Apr 2017 14:46:46 +0000 (17:46 +0300)]
[SkipList] Added random-lvel generators for max height 32/24/16

7 years ago[TSan] Fixed memory order
khizmax [Sat, 22 Apr 2017 08:01:39 +0000 (11:01 +0300)]
[TSan] Fixed memory order

7 years agoFixed optimization level for xSan-instrumented build
khizmax [Tue, 18 Apr 2017 19:16:39 +0000 (22:16 +0300)]
Fixed optimization level for xSan-instrumented build

7 years agoAdded release barrier to node initialization
khizmax [Tue, 18 Apr 2017 18:07:12 +0000 (21:07 +0300)]
Added release barrier to node initialization

7 years agoFixed memory ordering (by TSan reports)
khizmax [Mon, 17 Apr 2017 19:34:50 +0000 (22:34 +0300)]
Fixed memory ordering (by TSan reports)

7 years agoDisabled signal-handled RCU for TSan build
khizmax [Sun, 16 Apr 2017 18:47:06 +0000 (21:47 +0300)]
Disabled signal-handled RCU for TSan build

7 years agoRemooved constespr from ctor
khizmax [Sun, 16 Apr 2017 18:46:25 +0000 (21:46 +0300)]
Remooved constespr from ctor

7 years agoRemoved redundant comment
khizmax [Sun, 16 Apr 2017 16:24:45 +0000 (19:24 +0300)]
Removed redundant comment

7 years agoChanged pqueue stress-test params for debug mode
khizmax [Sun, 16 Apr 2017 16:17:52 +0000 (19:17 +0300)]
Changed pqueue stress-test params for debug mode

7 years agoMerge branch 'dev' of github.com:khizmax/libcds into dev
khizmax [Sun, 16 Apr 2017 16:16:49 +0000 (19:16 +0300)]
Merge branch 'dev' of github.com:khizmax/libcds into dev

7 years agoChanged stack stress-test params for debug build
khizmax [Sun, 16 Apr 2017 09:22:31 +0000 (12:22 +0300)]
Changed stack stress-test params for debug build

7 years agoFixed missing acquire read in Flat-Combining algorithm (found by TSan)
khizmax [Sun, 16 Apr 2017 09:21:53 +0000 (12:21 +0300)]
Fixed missing acquire read in Flat-Combining algorithm (found by TSan)
Removed redundant TSan annotation from FC-based containers

7 years agoFixed atomic initialization, ordering optimization
khizmax [Sat, 15 Apr 2017 09:16:55 +0000 (12:16 +0300)]
Fixed atomic initialization, ordering optimization

7 years agoFix typo
khizmax [Sat, 15 Apr 2017 09:16:10 +0000 (12:16 +0300)]
Fix typo

7 years agoFixed CI gen script
khizmax [Tue, 11 Apr 2017 08:28:47 +0000 (11:28 +0300)]
Fixed CI gen script

7 years agoAdded exe linker flags to the output
khizmax [Mon, 10 Apr 2017 20:30:19 +0000 (23:30 +0300)]
Added exe linker flags to the output

7 years agoFixed preprocessor symbol duplication
khizmax [Mon, 10 Apr 2017 20:29:37 +0000 (23:29 +0300)]
Fixed preprocessor symbol duplication

7 years ago[TSan] Fixed memory order constraints
khizmax [Mon, 10 Apr 2017 20:28:49 +0000 (23:28 +0300)]
[TSan] Fixed memory order constraints

7 years agoFixed memory ordering constraints
khizmax [Wed, 5 Apr 2017 20:45:44 +0000 (23:45 +0300)]
Fixed memory ordering constraints

7 years agoUse atomic exchange instead of CAS in try_lock()
khizmax [Wed, 5 Apr 2017 20:44:33 +0000 (23:44 +0300)]
Use atomic exchange instead of CAS in try_lock()
Added TSan annotations

7 years agoFixed memory ordering
khizmax [Wed, 5 Apr 2017 20:42:39 +0000 (23:42 +0300)]
Fixed memory ordering

7 years ago[TSan] Fixed data races in HP/DHP
khizmax [Sat, 1 Apr 2017 16:35:04 +0000 (19:35 +0300)]
[TSan] Fixed data races in HP/DHP

7 years agoCMake minor fixing
khizmax [Sat, 1 Apr 2017 16:34:22 +0000 (19:34 +0300)]
CMake minor fixing

7 years agoUpdated CMake script to detect arm64
khizmax [Mon, 27 Mar 2017 21:28:54 +0000 (00:28 +0300)]
Updated CMake script to detect arm64

7 years agoDocfix
khizmax [Sun, 26 Mar 2017 08:20:35 +0000 (11:20 +0300)]
Docfix

7 years agoSplit stress-queue test
khizmax [Sat, 25 Mar 2017 08:06:51 +0000 (11:06 +0300)]
Split stress-queue test

7 years agoFixed GCC 4.8 incompatibility
khizmax [Sun, 19 Mar 2017 20:07:36 +0000 (23:07 +0300)]
Fixed GCC 4.8 incompatibility

7 years agoUsed std::thread::hardware_consurrency() to get processor count in Linux
khizmax [Sun, 19 Mar 2017 08:55:54 +0000 (11:55 +0300)]
Used std::thread::hardware_consurrency() to get processor count in Linux

7 years agouRCU: docfix, mark some virtual func as "override"
khizmax [Sun, 19 Mar 2017 07:50:17 +0000 (10:50 +0300)]
uRCU: docfix, mark some virtual func as "override"

7 years agoRemoved signal_threaded uRCU
khizmax [Sat, 18 Mar 2017 21:12:57 +0000 (00:12 +0300)]
Removed signal_threaded uRCU

7 years agoRemoved redundant ctor
khizmax [Sat, 18 Mar 2017 15:12:59 +0000 (18:12 +0300)]
Removed redundant ctor

7 years agoRemoved redundant atomics in urcu disposing thread
khizmax [Sat, 18 Mar 2017 14:17:56 +0000 (17:17 +0300)]
Removed redundant atomics in urcu disposing thread

7 years agoAdded different bit_reversal algo to SplitListSet/Map stress test
khizmax [Sat, 18 Mar 2017 07:24:22 +0000 (10:24 +0300)]
Added different bit_reversal algo to SplitListSet/Map stress test

7 years agoAdded new files to VC 2015 projects
khizmax [Wed, 15 Mar 2017 21:06:48 +0000 (00:06 +0300)]
Added new files to VC 2015 projects

7 years agoAdded several bit reversal algo
khizmax [Wed, 15 Mar 2017 20:52:55 +0000 (23:52 +0300)]
Added several bit reversal algo
Added option to select bit reversal algorithm for SplitList-based containers

7 years agoRemoved IterableList-based SplitListMap/Set from "erase by iterator" stress-test
khizmax [Wed, 15 Mar 2017 05:53:36 +0000 (08:53 +0300)]
Removed IterableList-based SplitListMap/Set from "erase by iterator" stress-test

7 years agoRemoved wrong assertion
khizmax [Tue, 14 Mar 2017 18:30:06 +0000 (21:30 +0300)]
Removed wrong assertion

7 years agoExcluded IterableList-based MichaelMap/Set from "erase by iterator" stress-test
khizmax [Tue, 14 Mar 2017 16:03:06 +0000 (19:03 +0300)]
Excluded IterableList-based MichaelMap/Set from "erase by iterator" stress-test

7 years agoRearranged rotation code
khizmax [Tue, 14 Mar 2017 08:11:47 +0000 (11:11 +0300)]
Rearranged rotation code

7 years agoAdded missing typename
khizmax [Tue, 14 Mar 2017 07:21:35 +0000 (10:21 +0300)]
Added missing typename

7 years agoUpdated CI build machine configs
khizmax [Mon, 13 Mar 2017 20:36:19 +0000 (23:36 +0300)]
Updated CI build machine configs

7 years agoadded erase_at()
khizmax [Mon, 13 Mar 2017 20:32:55 +0000 (23:32 +0300)]
added erase_at()

7 years agoAdded erase_at( iterator ) function to MichaelHashSet/Map and SplitListSet/Map based...
khizmax [Mon, 13 Mar 2017 20:26:18 +0000 (23:26 +0300)]
Added erase_at( iterator ) function to MichaelHashSet/Map and SplitListSet/Map based on IterableList

7 years agoFixed clang 4 incompatibility
khizmax [Mon, 13 Mar 2017 19:16:11 +0000 (22:16 +0300)]
Fixed clang 4 incompatibility

7 years agoAdded stress-map-iter-erase test for erase_at()
khizmax [Sun, 12 Mar 2017 08:31:45 +0000 (11:31 +0300)]
Added stress-map-iter-erase test for erase_at()

7 years agoAdded setup for set-stress-iter-erase
khizmax [Sun, 12 Mar 2017 07:40:43 +0000 (10:40 +0300)]
Added setup for set-stress-iter-erase

7 years agoFixed GCC warnings
khizmax [Sat, 11 Mar 2017 20:16:57 +0000 (23:16 +0300)]
Fixed GCC warnings

7 years agoAdded stress-set-iter-erase test for testing erase_at() - erasing by iterator
khizmax [Sat, 11 Mar 2017 16:58:31 +0000 (19:58 +0300)]
Added stress-set-iter-erase test for testing erase_at() - erasing by iterator

7 years agoAdded assertions for node ordering
khizmax [Sat, 11 Mar 2017 15:22:33 +0000 (18:22 +0300)]
Added assertions for node ordering

7 years agoRemoved legacy suppression
khizmax [Sat, 11 Mar 2017 08:02:14 +0000 (11:02 +0300)]
Removed legacy suppression

7 years agoMutex-based flat-combining wait strategy: try to reduce starvation
khizmax [Sat, 11 Mar 2017 07:29:39 +0000 (10:29 +0300)]
Mutex-based flat-combining wait strategy: try to reduce starvation

7 years agoMinor stress-test change
khizmax [Fri, 10 Mar 2017 20:08:01 +0000 (23:08 +0300)]
Minor stress-test change

7 years agoRemoved signal-handled RCU from daily stress-testing
khizmax [Thu, 9 Mar 2017 20:19:53 +0000 (23:19 +0300)]
Removed signal-handled RCU from daily stress-testing

7 years agoFixed potentially incorrect usage of Win API
khizmax [Thu, 9 Mar 2017 18:28:12 +0000 (21:28 +0300)]
Fixed potentially incorrect usage of Win API

7 years agoChanged default back-off strategy
khizmax [Wed, 8 Mar 2017 21:41:55 +0000 (00:41 +0300)]
Changed default back-off strategy

7 years agoTuning stress-test parameters
khizmax [Wed, 8 Mar 2017 21:32:40 +0000 (00:32 +0300)]
Tuning stress-test parameters

7 years agoTuning stress-test parameters
khizmax [Wed, 8 Mar 2017 20:27:36 +0000 (23:27 +0300)]
Tuning stress-test parameters

7 years agoTuning stress-test parameters
khizmax [Wed, 8 Mar 2017 20:26:40 +0000 (23:26 +0300)]
Tuning stress-test parameters

7 years agoFixed VC++ project dependencies
khizmax [Wed, 8 Mar 2017 20:20:47 +0000 (23:20 +0300)]
Fixed VC++ project dependencies

7 years agoAdded 32bit integer functions
khizmax [Wed, 8 Mar 2017 20:17:23 +0000 (23:17 +0300)]
Added 32bit integer functions

7 years agoRevised processor-specific hints for back-off
khizmax [Wed, 8 Mar 2017 09:53:00 +0000 (12:53 +0300)]
Revised processor-specific hints for back-off

7 years ago[UBsan] fixed UB
khizmax [Wed, 8 Mar 2017 08:37:21 +0000 (11:37 +0300)]
[UBsan] fixed UB