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
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
Samy Al Bahra
0d827b4c81
ck_hp_fifo: Finer-grained mapping to ck_pr_fence_X_Y.
...
Specifically, atomic-RMW fences were previously generalized
as store operations.
12 years ago
Samy Al Bahra
58af5c3072
ck_epoch: Elaborate on ck_epoch_register load fence.
12 years ago
Samy Al Bahra
4492325ccc
ck_hs: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra
0f08a33278
Merge branch 'master' of git.concurrencykit.org:ck
12 years ago
Samy Al Bahra
2ba3f59374
ck_spinlock: Migrate MCS to ck_pr_fence_X_Y.
...
This includes fixing acquire semantics on mcs_lock fast path.
This represents an additional fence on the fast path for
acquire semantics post-acquisition.
12 years ago
Samy Al Bahra
b43832c384
ck_spinlock: Migrate MCS to lighter-weight fast path.
12 years ago
Samy Al Bahra
8540821f3f
ck_spinlock: Minor style changes to return statement.
12 years ago
Samy Al Bahra
08d13deaf4
ck_brlock: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra
214d7aed66
ck_pr: Implement ck_pr_fence_atomic in MD ck_pr.
12 years ago
Samy Al Bahra
65f24e8860
git: Add ck_stailq regression to gitignore.
12 years ago
Samy Al Bahra
8320a4a6f4
ck_pr: Comment elaboration on ck_pr_fence_atomic semantics.
...
More specifically, note that in memory models where atomic
operations do not have serializing effects that atomic
read-modify-write operations are modeled as store operations.
12 years ago
Samy Al Bahra
3f06a4e23a
ck_rwlock: Use ck_pr_fence_atomic.
12 years ago
Samy Al Bahra
ffd22e57b8
ck_bytelock: Use ck_pr_fence_atomic.
12 years ago
Samy Al Bahra
a4220f2377
ck_pr: Remove ck_pr_fence_load_depends from GCC port.
12 years ago
Samy Al Bahra
d1dd6611ac
ck_pr: Add ck_pr_fence_atomic interface.
...
These operations serialize atomic-RMW operations with respect
to each other, loads and stores. In addition to this, the
load_depends implementations have been removed.
12 years ago
Samy Al Bahra
8face51e0d
ck_spinlock: Acquire semantics for anderson spinlock.
12 years ago
Samy Al Bahra
f87e0caf99
ck_bytelock: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra
83bc7f9f54
ck_epoch: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra
fe7e5ac5b1
ck_hp_stack: Migrate to ck_pr_fence_X_Y functions.
12 years ago
Samy Al Bahra
01f89ee691
ck_hp_fifo: Migrate to ck_pr_fence_X_Y functions.
12 years ago
Samy Al Bahra
b025722fbd
ck_brlock: Migrate to ck_pr_fence_X_Y interface.
12 years ago
Samy Al Bahra
5506ad2744
ck_pr: Move ck_pr_barrier to compiler port.
12 years ago
Samy Al Bahra
cc8c3fb2db
ck_pr/gcc: Fix style issue.
12 years ago
Samy Al Bahra
8311e9fcb4
ck_pr: Update GCC port and change ck_pr dependency path.
...
The compiler-specific ck_pr is now unconditionally included.
It currently implements things like compiler barriers.
12 years ago