Samy Al Bahra
cc600e7d4f
ck_ring: Add MPMC and MPSC variants.
9 years ago
Samy Al Bahra
0dfd145aa6
whitespace: Update Copyright messages.
10 years ago
Samy Al Bahra
8937ec84c3
regressions: Use correct regression for ck_ring_spmc_template.
...
We were previously building the wrong target. This was found out due
to Phil Sorber pointing out that _template.c would have had compilation issues.
10 years ago
Samy Al Bahra
d6ba2a6273
whitespace: Sweeping whitespace changes.
...
Removing trailing whitespaces and newlines.
10 years ago
Samy Al Bahra
c197b37df1
legal: Update Copyright statements.
11 years ago
Samy Al Bahra
fb7310b4cb
regressions: Coverage for parametric ring.
11 years ago
Samy Al Bahra
fdc2061935
regressions/ck_ring: Always treat buffer as opaque.
11 years ago
Samy Al Bahra
f9ae05b15a
regressions/ck_ring: Drop template variants.
11 years ago
Olivier Houchard
3edb523da5
ck_ring: Move the ring buffer outside of the ck_ring_t
...
Remove the ring buffer from the struct ck_ring, it is now required to
explicitely pass the ring buffer for enqueue/dequeue. That can be useful for
systems with multiple address spaces.
11 years ago
Samy Al Bahra
16e8b1c672
regressions/ck_ring: Allow for buffers of size 4 or more.
12 years ago
David Joseph
7b94d7c13d
regressions: Make clean and gettimeofday fixes.
12 years ago
David Joseph
a4cd7f2ef2
Revert "regressions: Remove exes with make clean."
...
This reverts commit 9d37e38580
.
12 years ago
David Joseph
9d37e38580
regressions: Remove exes with make clean.
12 years ago
Samy Al Bahra
5c90d917f7
regressions/ck_ring: More improvements and _size coverage.
...
SPMC path exercises random delays. Coverage exists for
the new *_enqueue_*_size
12 years ago
Samy Al Bahra
33a9222923
legal: Update Copyright statements.
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
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
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
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
3cf265cba0
all: Strip trailing whitespaces.
13 years ago
Samy Al Bahra
706fd07de7
legal: Update Copyright statements.
13 years ago
Samy Al Bahra
84535028d9
regressions: ck_ring_spsc_template explicit power of 2 parameter.
13 years ago
Samy Al Bahra
d7bba58c0f
regressions: ck_ring_spsc is now explicit about power-of-2 parameter.
13 years ago
Samy Al Bahra
5f53f86cab
regressions: Add missing ck_ring SPMC benchmark.
13 years ago
Samy Al Bahra
5889498c16
ck_ring: Add modulo logic to ck_ring_size and CK_RING_SIZE.
14 years ago
Samy Al Bahra
88ee328b78
ck_ring: Add CK_RING_SIZE/CAPACITY and ck_ring_size/capacity.
...
ck_ring_size will return the current size of the ring while ck_ring_capacity
will return the capacity of the specified ring.
14 years ago
sbahra
49a2820000
Added support for Sun Studio 12 C compiler.
...
build:
- configure step will generate relevant CFLAGS.
- build profiles are for convenience (developers can use themu
for cross-compilation).
regressions:
- Renamed ck_barrier unit tests to work-around behavior
of Solaris linker.
- Adopted use of a PTHREAD_CFLAGS variable.
ck_cc:
- Added internal CK_CC_IMM macro for compilers that are
verbose against impossible inline constraints (or limited
optimizers).
ck_pr/x86*:
- Adopted CK_CC_IMM macro.
- Dropped redundant constraints.
This work was mostly completed by Theo Schlossnagle
<jesus@omniti.com>, much thanks to him. He has
also provided access to a machine with Sun Studio 12.
14 years ago
Samy Al Bahra
34ec9ced0a
regressions: Use -pthread instead of -lpthread.
...
Pointed out by Matt Johnson.
14 years ago
Samy Al Bahra
646b3ef99e
Legal: Add copyright statements.
14 years ago
Samy Al Bahra
bcaadcf094
Factor out some common utility functions.
...
Moved rdtsc and affinity logic to a single file which other
regression tests use. Single point of reference will ease
porting these to future architectures and platforms. Removed
invalid Copyright statement.
Added CK_CC_USED to force some code generation that I found
useful for debugging.
Added ck_stack latency tests and a modified version of djoseph's
modifications to benchmark.h for spinlock latency tests.
14 years ago
Samy Al Bahra
cbd30b2206
Initial import.
14 years ago