Samy Al Bahra
27d454248d
ck_spinlock: Add ticket lock with trylock operation.
...
Upon popular request, added a variant of the ticket spinlock
with trylock support. This is pending additional verification
on other architectures besides x86*. It is still unclear whether
this implementation will be the default as it is has slower
fast path.
Add trylock support to the ck_spinlock validation tests.
It currently only tests ck_spinlock_ticket_t trylock
functionality if available.
12 years ago
Samy Al Bahra
aef827b5a3
regressions: Remove unnecessary include.
12 years ago
Samy Al Bahra
81b9313e10
build: Fix regression introduced by MingW32 port.
12 years ago
Samy Al Bahra
9c298fc78b
whitespace: Remove unnecessary newline.
12 years ago
David Joseph
1298a6c335
Add support for MinGW32.
...
This primarily involved changing the configure script and adding
several utility functions to regressions/common.h for unit testing.
Signed-off-by: Samy Al Bahra <sbahra@appnexus.com>
12 years ago
Samy Al Bahra
9152cc7cea
regressions/ck_hp_fifo_donner: This was submitted from a Windows editor.
...
Switch to using UNIX EOL.
12 years ago
Samy Al Bahra
f9a484a10d
build: Disclaimer that regressions are unsupported for out-of-source builds.
12 years ago
Samy Al Bahra
cff7b1b21f
regressions/ck_queue: Add coverage for previous regression.
12 years ago
Samy Al Bahra
e517126247
regressions: Enable rdtsc for x86-32 targets.
12 years ago
Samy Al Bahra
72855320c4
regressions/ck_hs: Do not rely on ck_pr_add_64 for benchmarks.
...
ck_hs now officially targets the 32-bit ports. No advantage
to using ck_pr_*_64 operations here.
12 years ago
Samy Al Bahra
5d1fff2e06
regressions/ck_pr: Place double tests under feature flag.
12 years ago
Samy Al Bahra
33a9222923
legal: Update Copyright statements.
12 years ago
Samy Al Bahra
ca6637a57c
regressions/ck_pr: Utilize _GNU_SOURCE for ck_pr_store unit test.
12 years ago
Samy Al Bahra
3293cde2d2
regressions/common: Add missing header files in common.h
12 years ago
Samy Al Bahra
cb650246e2
regressions/ck_hp: Do not use empty loop body.
...
Fixes some GCC warnings in 4.7+.
12 years ago
Samy Al Bahra
0866206c1f
regressions/ck_ring: Add ck_ring_spmc to fast path test.
12 years ago
Samy Al Bahra
fbdc512304
regressions/ck_ring: Use variable for ring size.
12 years ago
Samy Al Bahra
0631e396e0
ck_backoff: Replace ck_backoff_eb with ck_backoff_gb.
...
The distinction between additive/exponential implementation
and geometric implementation does little but confuse users.
The terminology used in ck_backoff now reflects terminology
used in literature.
ck_backoff_gb has been removed.
12 years ago
Samy Al Bahra
d55e588ee4
regressions/ck_ring: Fix use of uninitialized data.
...
Execution history exists such that first thread will dequeue
from an uninitialized ring buffer. The unit test has been
(un)fortunate in that it would busy-wait during dequeue.
Full barrier semantics will enforce visibility.
Reported by: Maxime Henrion <mhenrion@gma....>.
12 years ago
Samy Al Bahra
1f13c75a66
regressions/ck_pr_store: Add coverage for double.
...
It appears GCC doesn't handle IMM constraint gracefully
for double. This isn't an issue with clang.
12 years ago
Samy Al Bahra
56bd0b7424
regressions/ck_fifo: cache align MPMC fifo.
12 years ago
Samy Al Bahra
3f0a90813a
ck_ring: Unit test coverage for ck_ring_trydequeue.
12 years ago
Samy Al Bahra
5c93ee3add
regressions: Do not use ck_error for debug output.
12 years ago
Samy Al Bahra
f1be36b6d2
regressions/ck_ring: Fix erroneous usage of ck_error.
12 years ago
Samy Al Bahra
6bd946d019
regressions: Add ck_error convenience function.
...
Prints a message and then executes exit(EXIT_FAILURE).
12 years ago
Samy Al Bahra
90745e4d60
regressions/ck_ring: Silence GCC false positives.
12 years ago
Samy Al Bahra
911909ef31
regressions/ck_ring: Add ck_ring_spmc_template unit test.
12 years ago
Samy Al Bahra
b07c7808ce
regressions/ck_ring: Add strict fence around barrier and cache align ring.
12 years ago
Samy Al Bahra
d705e02b76
ck_ring: Replace MPMC variant with SPMC variant for starters.
...
Immediate use-case is SPMC. Next is MPSC, then I will generalize
to MPMC (unfortunately, I don't have an algorithm that avoids CAS2
yet for MPMC).
12 years ago
Samy Al Bahra
8d90fa28ed
regressions/ck_ring: Add missing header file.
12 years ago
Samy Al Bahra
8d8f76845b
regressions/ck_ring: Add MPMC unit test.
12 years ago
Samy Al Bahra
68e6752e53
ck_ring: Due to popular request, add MPMC variants of enqueue/dequeue.
...
Fencing semantics are heavier-weight than they need to be.
12 years ago
Samy Al Bahra
cb1c72d36b
ck_queue: Add CK_?LIST_MOVE operation.
...
This operation is of format:
CK_S*LIST_MOVE(a, b, linkage) and is equivalent to intializing
a with the contents of b. This is done in a manner that is atomic
with respect to readers. Read-only operations are still valid in
b, but behavior is undefined for write-side operations on b after
a MOVE operation.
12 years ago
Samy Al Bahra
533136627f
regressions/ck_stack: Cache align stack.
13 years ago
Samy Al Bahra
b0277346b8
regressions/ck_bytelock: Cache-align bytelock.
...
Signed-off-by: Samy Al Bahra <sbahra@repnop.org>
13 years ago
Samy Al Bahra
ac50efbeaf
regressions/ck_epoch: GCC 4.6.3 ignores used attribute in this case.
13 years ago
Samy Al Bahra
ddfdda3649
regressions/ck_epoch: Force generation of stack dereference in ck_epoch_synchronize.
13 years ago
Samy Al Bahra
099f13a24d
regressions/ck_epoch: Force generation of stack pointer.
13 years ago
Samy Al Bahra
31040a925d
regressions/ck_ht: Use random get counter.
...
We were erroneously printing reverse get results in serial.
13 years ago
Samy Al Bahra
ee2ae5a50f
regressions/ck_epoch: Update check target.
...
Makefile was ignored due to bogus gitignore entry.
13 years ago
Samy Al Bahra
690782aa67
ck_hs: Add hash function wrapper to maintain opacity of ck_hs_t.
...
This is in the form of CK_HS_HASH(X, Y, Z) which expands to
Y(Z, X.seed).
13 years ago
Samy Al Bahra
43b24d9f28
regressions/ck_hs: Initialize n_state.
13 years ago
Samy Al Bahra
44b845a53a
regressions/ck_hs: Use (char *) for debug output.
13 years ago
Samy Al Bahra
bc7a3e5606
regressions/ck_bag: Add status around sleep.
13 years ago
Samy Al Bahra
ece2895e9e
ck_hs: Drop ck_hs_hash_t abstraction.
...
No need for opaque type anymore.
13 years ago
Samy Al Bahra
adaf20b31c
ck_ht: Add ck_ht_stat function.
...
This can be used to expose certain performance metrics.
13 years ago
Samy Al Bahra
a40b724270
regressions/ck_hs: Add Makefile for benchmarks.
13 years ago
Samy Al Bahra
0f5e540afa
ck_hs: Lock-free set loosely modeled after ck_ht.
...
Currently only SPMC, but MPMC transformation is relatively trivial.
Documentation will come in a follow-up commit.
13 years ago
Samy Al Bahra
67895cb87e
regressions/ck_epoch: Add support for multiple writers in poll unit test.
13 years ago
Samy Al Bahra
375a9eb816
regressions/ck_epoch: Drop debug flags.
13 years ago