Samy Al Bahra
ab310bfdb4
ck_hp: Linearize registration and recycling.
12 years ago
Samy Al Bahra
94475b85be
ck_epoch: Remove redundant load fence.
12 years ago
Samy Al Bahra
a30a89817c
ck_epoch: Follow-up to previous commit
12 years ago
Samy Al Bahra
acde423ce8
ck_epoch: Adopt RMO ck_pr semantics.
...
These changes primarily affect platforms with RMO semantics.
- Write out to local epoch requires atomic semantics,
adopt atomic store to epoch in ck_epoch_reclaim.
- Correct an issue where we would publish node availability
before record re-initialization.
- Execute full barrier in write_begin to serialize active flag
IFF we are not recursing into an epoch block. Serialize active
publication with respect to epoch walk.
- Use CAS-based tick operation for epoch counter. Despite higher
constant factor, we are much less likely to starve writers on
bursty workloads.
12 years ago
Samy Al Bahra
d37eb779cb
build: Add dist target, allow user to modify version.
12 years ago
Samy Al Bahra
45f310893c
ck_rwlock: Fix behavior for weakly-ordered systems.
...
As ck_pr semantics were still not molded, I was designing
under the assumption I would potentially go towards
acq/req interface. Since RMO will be the semantic norm for
the ck_pr model from now on, enforce stricter ordering
requirements on rwlock.
ck_rwlock_write_unlock function will now also serialize both
loads and stores.
12 years ago
Samy Al Bahra
8043f52130
ck_pr: Add ck_pr_barrier for compiler barrier.
...
CK_CC_BARRIER isn't idiomatic, roll this into PR memory model
instead.
12 years ago
Samy Al Bahra
1e8fe57028
ck_bitmap: Remove unnecessary whitespace.
12 years ago
Samy Al Bahra
e3cf015723
build: Drop dist target, it really adds little value.
...
Use git-archive instead or similar if you need to build
your own distribution tarball.
12 years ago
Samy Al Bahra
7e9a0d8751
regressions/ck_brlock: Reduce number of iterations.
12 years ago
Samy Al Bahra
d4abd39dd6
build: Remove tarball.
12 years ago
Samy Al Bahra
f8c19a89b4
regressions/ck_hp: LLVM's optimizer keeps getting the best of us.
...
If I see more regressions in LLVM, I may end up enforcing compiler
barriers in all inlined code.
12 years ago
Samy Al Bahra
bc19dccb1f
ck_cc: Add CK_CC_BARRIER for compiler barrier.
12 years ago
Samy Al Bahra
f567513f8c
regressions/ck_hp: Add Donner's unit test.
12 years ago
Samy Al Bahra
06345e7917
build: Add "dist" target for people who want to build their own distribution.
...
Based on original patch submitted by Andrew Schorr.
12 years ago
Samy Al Bahra
b1b19c1f74
ck_ring: Memory fence is overly pedantic for parameterized enqueue.
12 years ago
Samy Al Bahra
753f95fb45
Merge branch 'master' of git.concurrencykit.org:ck
12 years ago
Samy Al Bahra
94698736c1
ck_queue: Add appropriate load fences.
12 years ago
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