Samy Al Bahra
7530ca21b7
ck_fifo: Do not forget about node recycling.
12 years ago
Samy Al Bahra
2d2b49a313
ck_stack: Assume weak ordering of CAS.
...
I was actually unsure of the exact memory model
I wanted for atomic RMW operations. It was
made apparent with time that I had to adopt RMO
if I didn't want to sacrifice performance. Make
sure we can assume RMO for the stack.
12 years ago
Samy Al Bahra
3f6a3660eb
regressions/ck_stack: Add trypush unit tests to check target.
...
Submitted by Andrew Schorr <aschorr@telemetry-inves....>.
12 years ago
Samy Al Bahra
a7f51fffca
ck_hp_fifo: Serialize second CAS.
12 years ago
Samy Al Bahra
d454f729e0
regressions/ck_fifo: Add dependency to ck_fifo.h.
12 years ago
Samy Al Bahra
ccbf28f0cb
ck_fifo: Remove unused variables, serialize MPMC insertion.
12 years ago
Samy Al Bahra
78f00eeeb6
ck_fifo_spsc: Fix implementation.
...
Do not be overly pedantic. Fix misplaced store
barrier and make sure to atomically load stub
pointer on reader side.
12 years ago
Samy Al Bahra
80c56d115b
ck_ring: Do not use volatile load for parametric ck_ring_size.
12 years ago
Samy Al Bahra
6159940337
build: Bump version for next release.
12 years ago
Samy Al Bahra
fc316307c4
build: Add sysctl line for OpenBSD.
12 years ago
Samy Al Bahra
ad5e143bd5
ck_ring: Various improvements to readability.
...
No regressions in unit tests, so I'm dropping volatile
semantics for unnecessary volatile load/store on producer/consumer
side.
12 years ago
Samy Al Bahra
290add2e50
build/regressions: Add CORES option, add "check" target.
...
The check target will attempt to run the unit tests with some
sane defaults.
12 years ago
Samy Al Bahra
fbb88a519c
ck_bytelock: read_lock must serialize all load/store before checking owner field.
...
Thanks to Andrew Schorr for reporting the unit test failure.
12 years ago
Samy Al Bahra
3afa6b2b39
ck_ht: Let users define their own empty and tombstone values.
12 years ago
Samy Al Bahra
94c26494a6
ck_ring: Size is no longer necessary.
...
Patch submitted by Andrew Schorr.
12 years ago
Samy Al Bahra
1a8b3db453
ck_ht: Various performance improvements.
...
Though a new implementation is in the works, roll in
some performance improvements in the mean time.
The probe routines have been broken out into separate
reader/writer variants. These variants are much less
branch-intensive (and don't involve predict to stall
in many cases).
New implementation is attempting to deal with
interface-induced overheads.
12 years ago
Samy Al Bahra
e1ec55819e
regressions/common. Move edx/eax to x86_64 block.
12 years ago
Samy Al Bahra
a56cac3a38
regressions/ck_sequence: Work-around LLVM bug.
...
For some reason, load operations were being re-ordered with respect
to read begin operation (even with explicit compiler barriers).
12 years ago
Samy Al Bahra
7657df25a8
ck_sequence: Serialize read_begin, add load barrier.
12 years ago
Samy Al Bahra
d100c8b834
Merge pull request #6 from abelmathew/master
...
ck_bag documentation
12 years ago
Abel Mathew
b9c6532b2a
Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Abel Mathew
5ca4e884bd
doc/ck_bag: Add ck_bag documentation.
12 years ago
Samy Al Bahra
ac8acffe6a
Merge branch 'master' of git.concurrencykit.org:ck
13 years ago
Samy Al Bahra
2015f0f5d4
Merge branch 'master' of git.concurrencykit.org:ck
13 years ago
Samy Al Bahra
e9bd744877
doc/ck_ht_entry_set_direct: Update manual page to include latest API change.
13 years ago
Samy Al Bahra
37d8a5e98d
build: Bump version for next release.
13 years ago
Samy Al Bahra
976f017450
build: Move symbolic link to -devel package, keep .spec file in distributions.
...
Patch submitted by Andrew Schorr <schorr@te....>.
13 years ago
Samy Al Bahra
031d950cc0
ck_stack: Add aliased attribute to ck_stack for GCC 4.4.
13 years ago
Samy Al Bahra
65cf506af9
ck_cc: Add CK_CC_ALIASED attribute.
...
Submitted by John Wittrock <jwittrock@...>.
13 years ago
Samy Al Bahra
7dd705c86f
ck_ht: Remove ck_ht_allocator_set declaration.
13 years ago
Samy Al Bahra
59158c824b
ck_ht: Do not re-hash on growth for non-PP case.
...
We already store the hash value in the hash table entry
if pointer packing is not enabled.
13 years ago
Samy Al Bahra
ccb1fd6d86
ck_fifo: Add some load fences for SPARC/PPC.
13 years ago
Samy Al Bahra
7d6626131d
ck_hp_fifo: Forgot load fence in last commit.
13 years ago
Samy Al Bahra
319872ca8c
ck_hp_fifo: Fix race condition on dequeue.
...
I accidentally swapped head/tail load in ck_hp_fifo (not in
ck_fifo, however). We must acquire head snapshot before tail snapshot.
An example execution history which could cause an incorrect update to occur
is below.
- tail <- fifo.tail / fifo.head != fifo.tail
- dequeue to empty (until final CAS which renders fifo.head = fifo.tail)
- head <- fifo.head / (head != tail)
- next <- fifo.head->next / next = NULL
- As head != tail, update to next pointer (where next is NULL).
However, if
- head <- fifo.head / (fifo.head != fifo.tail)
- dequeue to empty (until final CAS which renders fifo.head = fifo.tail)
- tail <- fifo.tail / fifo.head != fifo.tail
- next <- fifo.head->next / next = NULL
If we caught tail in final transition, the by the time we read next pointer,
head would have also changed forcing us to re-read. Thanks to Hendrik Donner
for reporting this.
13 years ago
Samy Al Bahra
f02b87cd65
build: Bump version for next release.
13 years ago
Samy Al Bahra
72a8adb599
ck_ht: Add support for per-hash-table allocator.
...
Documentation and regressions tests have been updated to reflect this.
This functionality allows for individual hash tables use to different
allocation functions. Thanks to Wez Furlong for pointing out the necessary
documentation update for ck_ht.
13 years ago
Samy Al Bahra
af7b877414
regressions/ck_ht: Turn off CK_MD_RDTSCP by default.
13 years ago
Samy Al Bahra
cc23781512
regressions/ck_ht: Switch to a format that is more readable by R.
...
This allows me to use read.table with minimal changes.
13 years ago
Samy Al Bahra
9a3909163f
regressions/ck_ht: Drop secondary sequence table.
...
It is unnecessary, we primarily end up measuring cache miss costs
with it.
13 years ago
Samy Al Bahra
0b32fd064e
regressions/ck_ht: Previous commit was in fact shuffled insertion.
...
Add actual shuffled get.
13 years ago
Samy Al Bahra
efdae8f77b
regressions/ck_ht: Extend serial benchmark.
...
Add key shuffle get test.
13 years ago
Samy Al Bahra
3b5a3c857e
regressions: Update out-of-date comment.
13 years ago
Samy Al Bahra
da9e0f58f1
regressions: Use RDTSCP in presence of CK_MD_RDTSCP.
13 years ago
Samy Al Bahra
b353ebe8c2
regressions: Remove debug build flags.
13 years ago
Samy Al Bahra
314ce3ad81
ck_rwlock: Drop factor argument to trylock API.
...
Remove read-side recursion tests, it is an unsupported
feature to begin with.
13 years ago
Samy Al Bahra
512bbc050b
ck_rwlock: Add recursive trylock operations.
...
Unlike ck_rwlock, there is no spin factor associated with these.
13 years ago
Samy Al Bahra
380dd410c6
ck_backoff: Saturate geometric back-off.
...
A simple regression test has been added to verify this behavior.
13 years ago
Samy Al Bahra
fc2517947b
regressions/ck_ht: Use user-specified hash function for direct benchmark.
13 years ago
Samy Al Bahra
fc00a31815
doc/ck_ht: Update ck_ht_init documentation.
13 years ago
Samy Al Bahra
a832237b0a
ck_ht: We do not need to reprobe for direct tables on a per-slot basis.
13 years ago