Samy Al Bahra
64b1201dcc
ck_spinlock: Acquire semantics for old locked operations.
...
Even though the intended use-case is for testing, developers
may want correctness guarantees in other situations.
12 years ago
Samy Al Bahra
143bc4b336
regressions: Add ck_spinlock locked coverage.
12 years ago
Samy Al Bahra
a51c8c7aa6
ck_spinlock: Add ck_spinlock_clh_locked.
12 years ago
Samy Al Bahra
46d61ccd46
ck_spinlock: Add ck_spinlock_ticket_locked.
12 years ago
Samy Al Bahra
f149dd09fe
ck_pr: Add ck_pr_fence_strict_atomic for x86-64.
12 years ago
Samy Al Bahra
55decd0b38
ck_spinlock: Add ck_spinlock_anderson_locked.
12 years ago
Samy Al Bahra
a03d58fff2
ck_rwlock: Use heavier-weight barrier on write path.
...
This is an example limitation of fence_X_Y variant. I am
considering extending this to include an acquire extension.
Use a memory fence to force total order in a manner that
will be clearer to other developers who read this.
This did not manifest as a problem on any target architectures
due to their handling of atomic operations (SPARC models it as
both a load and a store, while Power atomic_load ordering was
enforced through a full barrier).
12 years ago
Samy Al Bahra
a694e871ca
ck_rwlock: Relax write_trylock_rtm semantics.
...
trylock semantics are best effort to begin with, so
avoid fallback path all together.
12 years ago
Samy Al Bahra
3fbefc5042
ck_rwlock: Add read_trylock_rtm.
12 years ago
Samy Al Bahra
4d2ccfe497
ck_rwlock: Add basic RTM interface to rwlock.
...
It is possible this will be moved to a self-contained file.
For a majority of architectures, RTM is an unnecessary
implementation-specific optimization.
12 years ago
Samy Al Bahra
39ed9c6b8a
git: Add ck_sequence benchmark to gitignore.
12 years ago
Samy Al Bahra
7f5216c4c6
regressions/ck_sequence: Add fast-path latency measurement.
12 years ago
Samy Al Bahra
2ed965bfc2
ck_pr_rtm: Fix xtest output clobber identifier.
12 years ago
Samy Al Bahra
43a6628cf1
ck_pr: Initial support for TSX.
...
goto label support has been omitted for the moment.
A majority of initial targets are still pre-gcc-4.7
to support multiple branches.
12 years ago
Samy Al Bahra
04590839d9
ck_sequence: change retry to take unsigned int.
...
version identifier is unsigned int not uint32_t.
12 years ago
Brendon Scheinman
cb0a7c8ce6
Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Brendon Scheinman
9f5fca5905
Merge branch 'master' of https://github.com/bscheinman/ck
12 years ago
Brendon Scheinman
94655f57ff
ck_rwcohort: Completed sample code in documentation;
12 years ago
Samy Al Bahra
a8a74b9f57
ck_spinlock: Remove erroneous mask usage for non-x86 targets.
12 years ago
Samy Al Bahra
045d0e1053
ck_spinlock: Apply modulo arithmetic to proportional back-off ticket lock.
12 years ago
Samy Al Bahra
d0745f51ee
regressions: Lower wait factor for ck_ticket_pb.
12 years ago
Samy Al Bahra
33f30ac941
build: Bump version for next release.
12 years ago
Samy Al Bahra
68ec467ca8
ck_hs: Branch simplification on fast path.
...
Take advantage of probe function invariant
(object != NULL) -> (slot != NULL).
12 years ago
Samy Al Bahra
6587bfa51d
ck_hs: Universally use slot as unit for probe limit optimization.
12 years ago
Samy Al Bahra
cd53e928bf
ck_cc: Add branch execution hint support for GCC.
12 years ago
Samy Al Bahra
b63fe45460
regressions: Fix uninitialized usage in ck_hs parallel_bytestring.
12 years ago
Samy Al Bahra
1cdbb7b7bf
ck_hs: Remove unused return value from ck_hs_fas.
12 years ago
Samy Al Bahra
be9f0d489c
doc: Enable ck_hs_fas manual page compression.
12 years ago
Samy Al Bahra
e330bb9749
doc: Add cross-references to ck_hs_fas.
12 years ago
Samy Al Bahra
3eb29381e6
doc: Update ck_hs_fas title.
12 years ago
Samy Al Bahra
c27f4f27e5
doc: Add ck_hs_fas manual page.
12 years ago
Samy Al Bahra
03efd38742
regressions: Testing of ck_hs_fas functionality.
12 years ago
Samy Al Bahra
7da381bb1a
ck_hs: Prototype for new ck_hs_fas operation.
12 years ago
Samy Al Bahra
693ad68b86
ck_hs: Existence requires generation check.
...
It is possible for a defragmenting set or swap operation
to set a tombstone. If the probe sequence does not encounter
an empty slot and hits maximum write-side probe limit first
for it to fail to reprobe defragmenting store.
12 years ago
Samy Al Bahra
86619b3c38
ck_hs: Add atomic swap operation (requires existence).
12 years ago
Samy Al Bahra
cc164d86e9
doc: Fix argument reference in ck_hs_set manual page.
12 years ago
Samy Al Bahra
df5e62b09c
doc: Fix argument reference in ck_hs_put manual page.
12 years ago
Samy Al Bahra
6c7781d8c3
ck_hs: Simplify marshal path for inserted pointer.
...
ck_hs_marshal function has been added which mutates
pointer to appropriate representation for insertion.
12 years ago
Brendon Scheinman
fc071e1ce2
Merge branch 'master' of https://github.com/bscheinman/ck
12 years ago
Brendon Scheinman
f9ea659bff
Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Samy Al Bahra
3ca7072c14
ck_pr: Implicit compiler barrier ck_pr_fence.
...
I accidentally removed ck_pr_fence implicit compiler
barrier semantics in re-structure of ck_pr_fence.
This does affect the correctness of any data structures
in ck_pr_fence or the correctness of consumers of ck_pr
operations where ck_pr serves as linearization points.
The reason it does not affect any CK data structures is
that explicit compiler barriers (whether they are store/load
operations or atomic ready-modify-write operations) always
serve as linearization points.
However, if consumers are doing tricky things like using
these barriers to serialize aliased locations for correctness,
then it is possible for compiler re-ordering to bite them in
the ass.
12 years ago
Samy Al Bahra
a5e8d6ad45
ck_spinlock: Only enable trylock for ck_spinlock_ticket on x86*.
...
trylock algorithm semantics are not cleanly defined outside of x86.
12 years ago
Samy Al Bahra
b1a40dcc34
build: Only copy generated files if out-of-source.
12 years ago
Samy Al Bahra
005dd36ade
doc: Add ck_pr_fence_store_X manual pages.
12 years ago
Samy Al Bahra
d12388f5f7
doc: Add ck_pr_fence_load_X manual pages.
12 years ago
Samy Al Bahra
adbdfe6633
ck_pr: Get rid of ck_pr_fence_X_X functions.
...
These add unnecessary complexity to the ck_pr_fence interface.
Instead, it can be safely assumed that developers will use
ck_pr_fence_X to enforce X -> X ordering.
12 years ago
Samy Al Bahra
c2e99fa43e
doc: Add references to ck_pr_fence_atomic_X.
12 years ago
Samy Al Bahra
c58b0aa755
doc: Add ck_pr_fence_atomic_X manual pages.
12 years ago
Samy Al Bahra
931e967f3f
doc: Add ck_pr_fence_atomic manual page.
12 years ago
Samy Al Bahra
e52fd0b405
ck_fifo: Migrate MPMC FIFO to ck_pr_fence_X_Y.
12 years ago