libcds.git
6 years agoRemoved trailing spaces
khizmax [Mon, 31 Jul 2017 07:46:43 +0000 (10:46 +0300)]
Removed trailing spaces

6 years agover 2.4.0
khizmax [Mon, 31 Jul 2017 07:41:47 +0000 (10:41 +0300)]
ver 2.4.0

6 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

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

6 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

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

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

6 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

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

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

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

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

6 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

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

6 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

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

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

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

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

6 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

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

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

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

6 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

6 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

6 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

6 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

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

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

6 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

6 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

6 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

6 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

6 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

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

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

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

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

6 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

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

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

6 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

6 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

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

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

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

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

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

6 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

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

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

6 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

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

6 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

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

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

6 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

6 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

6 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

6 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

6 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

6 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

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

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

6 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

6 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

6 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

6 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

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

6 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

6 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