Samy Al Bahra
2d4524dd3e
ck_spinlock: Retab (whitespace).
...
Accidentally had Haskell vim modeline set.
12 years ago
Samy Al Bahra
07aab518f6
ck_spinlock: Retab (whitespace).
12 years ago
Samy Al Bahra
ce142f17f8
ck_spinlock: Add ck_spinlock_mcs_init operation.
12 years ago
Samy Al Bahra
6bc9f7a485
ck_spinlock: Get rid of MCS context initializers.
...
They are unnecessary, legacy from older versions.
12 years ago
Samy Al Bahra
ec58f5dcf7
ck_spinlock: Add ck_spinlock_dec_init operation.
12 years ago
Samy Al Bahra
f100e05bad
doc: Add paper reference to ck_elide.
12 years ago
Samy Al Bahra
2f52ace54c
ck_spinlock: Fix strict aliasing issue in unlock (no-op).
...
For builds with -Werror. Not pointed out by Wez Furlong <wez@f....>.
12 years ago
Samy Al Bahra
82bc4f788b
doc: Fix typo in ck_hs_get manual page.
12 years ago
Samy Al Bahra
4d3df4bdbd
doc: Use correct cross-reference in ck_hs_move.
12 years ago
Samy Al Bahra
7e8e90b38e
doc: Add ck_hs cross-reference.
12 years ago
Samy Al Bahra
ca7f09ea76
doc: Add ck_hs_move manual page.
12 years ago
Samy Al Bahra
61d5beff46
regressions: Use correct hash value for blob!
12 years ago
Samy Al Bahra
077ca3ab00
regressions: Increase coverage of ck_hs_move.
...
Iteration count increased, duplicate logic fixed.
12 years ago
Samy Al Bahra
120a262f18
ck_hs: Test coverage for ck_hs_move.
12 years ago
Samy Al Bahra
29a84b47b3
ck_hs: Add ck_hs_move operation.
...
This operation moves ownership from one hash set object
to another and re-assigns callback functions to developer-specified
values. This allows for dynamic configuration of allocation
callbacks and is necessary for use-cases involving executable code
which may be unmapped underneath the hash set.
The developer is responsible for enforcing barriers and enforcing
the visibility of the new hash set.
12 years ago
Samy Al Bahra
721cc0605c
regressions: Remove -g from ck_rwcohort build flags.
12 years ago
Samy Al Bahra
5cf28b2152
ck_rwcohort: Missing fences on fast path.
...
When spinning on global counters, it cannot be assumed that is_locked
functions will guarantee atomic to load ordering, an explicit fence
is necessary. is_locked will only guarantee load ordering.
12 years ago
Samy Al Bahra
895ff34aab
regressions: Add ck_rwcohort to top-level Makefile.
12 years ago
Samy Al Bahra
f43f55bb86
build: Derive unknown VMA bits.
12 years ago
Samy Al Bahra
f7aab16baf
build: Set VMA bits to unknown by default.
12 years ago
Samy Al Bahra
0999d30067
build: Explicitly disable RTM on non-x86_64 targets.
...
And for x86-32, I don't have an environment with 32-bit
support that has RTM.
12 years ago
Samy Al Bahra
73a1e42baf
ck_rwcohort: Style fixes.
12 years ago
Samy Al Bahra
04a6802250
doc: Fix ck_rwcohort warnings.
12 years ago
Samy Al Bahra
b408920c7a
doc: Add missing ck_rwcohort manual pages.
12 years ago
Samy Al Bahra
249a69d931
build: Bump version for next release.
12 years ago
Samy Al Bahra
b36e35ec76
Merge branch 'master' of https://github.com/bscheinman/ck
12 years ago
Samy Al Bahra
ce2ef37ce3
ck_elide: Style fixes.
12 years ago
Samy Al Bahra
75946ba687
doc: Add more TRYLOCK examples in ck_elide.
12 years ago
Samy Al Bahra
8b717df3f0
doc: ck_elide fixes and improvements including examples.
12 years ago
Samy Al Bahra
cd3dd99bd7
doc: Document adaptive elision interface.
...
Still need follow-up examples for ck_rwlock and
ck_spinlock.
12 years ago
Samy Al Bahra
cc231e4ab0
ck_elide: No need to expose ck_elide_stat.
12 years ago
Samy Al Bahra
906eaf1881
ck_elide: Fold CK_ELIDE_ADAPTIVE_PROTOTYPE into PROTOTYPE.
12 years ago
Samy Al Bahra
b67e91c858
ck_rwlock: Fold CK_ELIDE_ADAPTIVE_PROTOTYPE into PROTOTYPE.
12 years ago
Samy Al Bahra
768b5b3597
ck_rwlock: Add adaptive elision and unit tests.
12 years ago
Samy Al Bahra
fe8deba87d
ck_elide: Adaptive elision semantics.
...
These come in the form of CK_ELIDE_ADAPTIVE_PROTOTYPE,
CK_ELIDE_LOCK_ADAPTIVE and CK_ELIDE_UNLOCK_ADAPTIVE.
Primarily pushing this for the few that are playing with
master.
This is inspired by Andi Kleen's work for adaptive behavior
in the Linux kernel's RTM locks implementation. There are
various differences in the state machine, however. Specifically,
the concept of a retry and a busy-wait has been unified due
to state machine simplification such that any exhausted busy-wait
cycle reverts to a forfeit (a busy-wait is a specialized retry).
Follow-up work will involve allowing for is_locked behavior
to yield what users expect, if called from with-in a transaction
through the wrapper. It is warned that this will come at a performance
penalty.
12 years ago
Samy Al Bahra
43f7a7692a
ck_cc: Expand LIKELY/UNLIKELY on unsupport compilers.
12 years ago
Samy Al Bahra
23353395ba
doc: Add ck_elide documentation.
12 years ago
Samy Al Bahra
f214d9419e
ck_spinlock: Move elision prototype to end of file.
12 years ago
Samy Al Bahra
c76441fff3
ck_stack: Style changes.
12 years ago
Samy Al Bahra
fc0bfae1da
ck_elide: Commentary on ck_elide interface.
12 years ago
Samy Al Bahra
ac4a703525
regressions: Get rid of debug flags in ck_rwlock benchmark.
12 years ago
Samy Al Bahra
59a1b53e86
ck_spinlock: Migrate to ck_elide.h.
...
Pending unit test updates.
12 years ago
Samy Al Bahra
671f82d7a8
ck_rwlock: Migrate to ck_elide.h.
12 years ago
Samy Al Bahra
68a614328a
ck_elide: General lock elision framework.
...
This allows users to wrap any single-argument lock implementation
to support lock elision. Built-in lock types will make use of this
facility.
12 years ago
Samy Al Bahra
0517a51b06
ck_spinlock: Weaken volatile store in clh_lock.
12 years ago
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