Samy Al Bahra
16c86b98e5
ck_rwlock: Add publish semantics for rwlock.
14 years ago
Samy Al Bahra
43519250f5
build: Use typical LD naming convention for libck.so.
...
This was necessary in order to package CK with some distributions.
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
Samy Al Bahra
85099afb85
regressions: Add ck_brlock and ck_rwlock executables to gitignore.
14 years ago
Samy Al Bahra
c46bc1f1d7
regressions: Silence some irrelevant compiler warnings.
14 years ago
Samy Al Bahra
e1219a4d17
regressions/ck_stack: Remove unused variable.
14 years ago
Samy Al Bahra
9098485dc7
regressions: Add Makefile for ck_rwlock and ck_brlock.
...
Remove Makefile entry from .gitignore.
14 years ago
Samy Al Bahra
b4404f5f86
regressions: Add ck_rwlock to Makefile.
14 years ago
Samy Al Bahra
7b44a157ea
regressions: Use ck_rwlock instead of local implementation.
...
regressions/ck_bytelock/benchmark/latency: Switch to tabs from spaces.
14 years ago
Samy Al Bahra
006f58edcb
ck_rwlock: Add a naive rw spinlock after many requests.
14 years ago
Samy Al Bahra
647e570516
regressions: Add ck_brlock to the regressions Makefile.
14 years ago
Samy Al Bahra
786efb9594
ck_brlock: Add big reader spinlocks.
14 years ago
Samy Al Bahra
295a63a90b
configure: Suffix flags.
14 years ago
Samy Al Bahra
8fd90d71c3
build: Do not over-write user-specified options.
14 years ago
Samy Al Bahra
631d5f93f4
ck_pr/sparcv9: Recent SPARCs actually implement RSO.
...
ck_pr_fence_store/load will enforce store/load barriers
by default from now on.
14 years ago
Samy Al Bahra
a89f89c033
Fix build on other targets.
...
Update regressions.build.in to use PTHREAD_CFLAGS.
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
2754038882
regressions: Drop run.sh, unnecessary. To be replaced soon.
14 years ago
Samy Al Bahra
38c614222a
ck_spinlock: Avoid modulus on unlock for power of 2 count.
14 years ago
Samy Al Bahra
6b4d03b30d
Add ck_stack_read to gitignore
14 years ago
Samy Al Bahra
b0fbcb8210
regressions: ck_spinlock, make throughput test more robust.
...
Use explicit entry barrier. Move thread counters to separate
cache lines.
14 years ago
Samy Al Bahra
5fd2de18bf
regressions: Additional changes for 32-bit targets.
14 years ago
Samy Al Bahra
69e5c56acb
Merge branch 'master' of git.concurrencykit.org:ck
14 years ago
Samy Al Bahra
f6a2cb1b39
ck_pr/x86_32: Drop 64-bit operations. We just don't care enough about these right now.
...
The real issue is supporting PIC environments. This likely requires stand-alone
assembly blobs, something we don't want to deal with right now.
14 years ago
Samy Al Bahra
d761291ab1
ck_pr: Alphabetically order includes.
14 years ago
Samy Al Bahra
3f87223d21
ck_epoch: Collect from previous instance of epoch. Add torture test.
...
This typo lead to incorrect results. Added a read-mostly torture
test (follow on work is volatile interface for stack).
14 years ago
Samy Al Bahra
13dd1a4f82
ck_epoch: Update reader-side.
14 years ago
Samy Al Bahra
70860736f6
ck_epoch: Update epoch on read.
...
It's safe to update thread epoch on entry to a read-side section.
Without this, it will be very easy to starve writers of reclamation.
14 years ago
Samy Al Bahra
cbe38a9999
ck_epoch: Remove whitespace.
14 years ago
Samy Al Bahra
2ccb2e9ed4
regressions: Add percentage.
14 years ago
Samy Al Bahra
9f53c39600
regressions/common: Add Mac OS X implementation off aff_iterate.
14 years ago
Samy Al Bahra
e23e85b9e9
regressions/ck_barrier: Drop unnecessary flags.
14 years ago
Samy Al Bahra
20fb7a9200
ck_hp: Match epoch semantics.
...
Added improved observability and a ck_hp_purge.
The rename matches the naming used in ck_epoch.
Documentation updates to follow through soon.
14 years ago
Samy Al Bahra
a72e86e0ba
ck_epoch: Follow-up to previous commit.
...
Some changes were not checked in.
14 years ago
Samy Al Bahra
83f1436f84
ck_epoch: Redesigned and improved unit test and observability.
...
ck_epoch_reclaim is now the replacement for ck_epoch_flush.
ck_epoch_purge guarantees that all entries are reclaimed
for the provided record before exiting.
n_peak counter has been added, which provides the peak number
of items across all reclamation lists. n_reclamations provides
the number of reclamations across the lifetime of the record.
These are cleared on unregister.
ck_epoch_update has been renamed to ck_epoch_tick.
Hazardous sections which mutate shared structures are now
expected to begin with ck_epoch_write_begin and end with
ck_epoch_end.
Hazardous sections which read shared structures are now
expected to begin with ck_epoch_read_begin and end with
ck_epoch_end.
ck_hp_free is now more aggressive. It will attempt a
reclamation cycle any time the pending count is long.
I should probably add a ck_hp_retire to have a version
which allows for bulk updates to local reclamation lists.
14 years ago
Samy Al Bahra
492faed9a3
Reformatting changes for my new laptop.
14 years ago
Samy Al Bahra
739d603e22
ck_hp: Remove unnecessary header file.
14 years ago
Samy Al Bahra
ba11d1e579
ck_sequence: Match up types. Do not use current.
...
It clashes with current in the Linux kernel.
14 years ago
Samy Al Bahra
db9e07625a
ck_hp_fifo: Don't back-off when forwarding pointer.
14 years ago
Samy Al Bahra
ad4b577200
ck_hp_fifo: Store correct value in pointer.
14 years ago
Samy Al Bahra
25b50ea7e6
Don't use which, it apparently sucks on some platforms.
...
Patch submitted by: Wez Furlong <wez@messagesystems.com>.
14 years ago
Samy Al Bahra
9b20ebfdc6
Add .gitignore file.
...
Submitted by: Wez Furlong <wez@wezfurlong.org>
14 years ago
Samy Al Bahra
8c708da8e8
ck_epoch: Use volatile store when updating local epoch.
14 years ago
Samy Al Bahra
7bd5259505
ck_fifo: MPMC variant will return "garbage" pointer which user can re-use.
14 years ago
Samy Al Bahra
158e1580f5
ck_hp_fifo: Fix broken build.
14 years ago
Samy Al Bahra
5180a6fb36
ck_hp_fifo: Add more fences. Add backoff.
14 years ago
Samy Al Bahra
beafb7d78e
ck_fifo: Add back-off and remove recycle.
...
Recycle will just be a bottleneck. The MPMC interface should instead
return a junk pointer and allow the user to manage its lifetime in
a way they see fit.
14 years ago
Samy Al Bahra
d7d1dfbf50
ck_hp: Remove barrier from set and allow user to batch.
...
A user may want to batch multiple slot updates. Enforcing strong
semantics in set would not allow this.
14 years ago
Samy Al Bahra
dffbb4b48f
ck_hp: Add explicit store fence after setting slot.
14 years ago
Samy Al Bahra
ae1d575b00
regressions/ck_stack: Remove redundant flags.
14 years ago