libcds.git
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

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

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

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

5 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

5 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

5 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

5 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

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

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

5 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

5 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

5 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

5 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

5 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

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

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

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

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

5 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

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

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

5 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

5 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

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

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

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

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

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

5 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

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

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

5 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

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

5 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

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

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

5 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

5 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

5 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

5 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

5 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

5 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

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

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

5 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

5 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

5 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

5 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

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

5 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

5 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

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

5 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

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

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

5 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

5 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

5 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

5 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

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

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

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

5 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

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

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

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

5 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

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

5 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

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

5 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

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

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

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

5 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

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

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

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

5 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

5 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

5 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

5 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

5 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

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

5 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

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

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

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

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

5 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

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

5 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()

5 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