libcds.git
4 years agoFinal changelog ver 2.3 v2.3.0
khizmax [Mon, 31 Jul 2017 07:05:50 +0000 (10:05 +0300)]
Final changelog ver 2.3

4 years agoFixed compiler error
khizmax [Sun, 23 Jul 2017 08:33:46 +0000 (11:33 +0300)]
Fixed compiler error

4 years ago[TSan] Fixed data race in std container wrappers
khizmax [Sat, 22 Jul 2017 10:00:18 +0000 (13:00 +0300)]
[TSan] Fixed data race in std container wrappers

4 years agoTuning stress-tests for GCCFarm
khizmax [Tue, 18 Jul 2017 09:24:02 +0000 (12:24 +0300)]
Tuning stress-tests for GCCFarm

4 years ago[TSan] Fixed data races
khizmax [Sat, 8 Jul 2017 15:19:59 +0000 (18:19 +0300)]
[TSan] Fixed data races

4 years ago[TSan] Added annotation for std::shared_ptr::~shared_ptr to hide false positive report
khizmax [Sat, 8 Jul 2017 08:51:57 +0000 (11:51 +0300)]
[TSan] Added annotation for std::shared_ptr::~shared_ptr to hide false positive report

4 years agoFixed memory ordering
khizmax [Sat, 8 Jul 2017 07:11:30 +0000 (10:11 +0300)]
Fixed memory ordering

4 years ago[TSan] Fixed data race
khizmax [Tue, 27 Jun 2017 18:09:45 +0000 (21:09 +0300)]
[TSan] Fixed data race

4 years agoAdded TSan happens-before annotations (TSan don't understand atomic_thread_fence)
khizmax [Sat, 3 Jun 2017 09:26:23 +0000 (12:26 +0300)]
Added TSan happens-before annotations (TSan don't understand atomic_thread_fence)

4 years agoFixed memory ordering
khizmax [Sat, 3 Jun 2017 08:09:31 +0000 (11:09 +0300)]
Fixed memory ordering

4 years agoRefactoring exponential and delay back-off strategies to avoid static data members...
khizmax [Wed, 31 May 2017 09:59:06 +0000 (12:59 +0300)]
Refactoring exponential and delay back-off strategies to avoid static data members in template classes

4 years agoFixed ambiguity in casting size_t to one of unsigned type (found in AIX 32bit target)
khizmax [Tue, 30 May 2017 20:34:39 +0000 (23:34 +0300)]
Fixed ambiguity in casting size_t to one of unsigned type (found in AIX 32bit target)

4 years agoFixed ambiguous ceil2() call in 32bit target
khizmax [Tue, 30 May 2017 19:13:08 +0000 (22:13 +0300)]
Fixed ambiguous ceil2() call in 32bit target

4 years agoFixed MSVC project dependencies
khizmax [Tue, 30 May 2017 15:31:37 +0000 (18:31 +0300)]
Fixed MSVC project dependencies

4 years agoFixed memory ordering
khizmax [Sun, 28 May 2017 18:00:34 +0000 (21:00 +0300)]
Fixed memory ordering

4 years ago[AIX] Added missing byteswap.h
khizmax [Sat, 27 May 2017 15:16:27 +0000 (18:16 +0300)]
[AIX] Added missing byteswap.h

4 years agoAdded a comment
khizmax [Fri, 26 May 2017 19:44:28 +0000 (22:44 +0300)]
Added a comment

4 years ago[ARM] Added memory fences for strict modification order during rotation
khizmax [Fri, 26 May 2017 19:43:24 +0000 (22:43 +0300)]
[ARM] Added memory fences for strict modification order during rotation

4 years agoFixed memory order
khizmax [Wed, 24 May 2017 18:00:54 +0000 (21:00 +0300)]
Fixed memory order

4 years agoFixed memory ordering
khizmax [Wed, 24 May 2017 17:58:03 +0000 (20:58 +0300)]
Fixed memory ordering

4 years agoFixed clang "unused-function" warning
khizmax [Tue, 23 May 2017 19:45:03 +0000 (22:45 +0300)]
Fixed clang "unused-function" warning

4 years ago[WeakRingBuffer] to prevent integer overflow, used 64bit counters even in 32-bit...
khizmax [Tue, 23 May 2017 19:41:40 +0000 (22:41 +0300)]
[WeakRingBuffer] to prevent integer overflow, used 64bit counters even in 32-bit mode

4 years agoTuning parameters for spsc-queue stress tests
khizmax [Tue, 23 May 2017 18:00:36 +0000 (21:00 +0300)]
Tuning parameters for spsc-queue stress tests

4 years agoTuning parameters of insdel-string map/set stress tests
khizmax [Tue, 23 May 2017 07:50:25 +0000 (10:50 +0300)]
Tuning parameters of insdel-string map/set stress tests

4 years agoTuning parameters of map_insdel_item_int stress test
khizmax [Tue, 23 May 2017 07:42:01 +0000 (10:42 +0300)]
Tuning parameters of map_insdel_item_int stress test

4 years agoAdded SPSC queue stress tests
khizmax [Sun, 21 May 2017 16:54:23 +0000 (19:54 +0300)]
Added SPSC queue stress tests

4 years agoDocfix
khizmax [Sun, 21 May 2017 16:43:31 +0000 (19:43 +0300)]
Docfix

4 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

4 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

4 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

4 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

4 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

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

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

4 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)

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

4 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

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

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

4 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

4 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

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

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

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

4 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+

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

4 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

4 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.

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

4 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

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

4 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

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

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

4 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

4 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

4 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

4 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

4 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

4 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

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

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

4 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

4 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

4 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

4 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

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

4 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

4 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

4 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)

4 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

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

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

4 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

4 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

4 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

4 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

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

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

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

4 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

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

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

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

4 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

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

4 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

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

4 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

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

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

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

4 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

4 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"

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

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

4 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

4 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

4 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

4 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