Samy Al Bahra
42b32c6e6a
ck_ring: Apply ck_ring_size logic to ck_ring_enqueue functions.
...
This bug fix was contributed by Matt Johnson <johnso87@...>.
13 years ago
Samy Al Bahra
706fd07de7
legal: Update Copyright statements.
13 years ago
Samy Al Bahra
519a14b7f3
ck_ht: Add CK_F_HT feature flag.
13 years ago
Samy Al Bahra
3ad9f7e63d
ck_ht: Add support for other 64-bit platforms.
...
Specifically, any platform that has CK support for 64-bit
load/store operations.
Additional improvements have been made to the unit tests
to disambiguate put/get failures.
13 years ago
Samy Al Bahra
01d368b703
ck_fifo: Use ck_spinlock instead of specific spinlock implementation.
13 years ago
Samy Al Bahra
381572e13f
doc: Reference relevant ck_ht_entry functions.
13 years ago
Samy Al Bahra
516381da4c
regressions: Remove CORES definition from ck_ht ubenches.
13 years ago
Samy Al Bahra
a5403ffe3d
doc: Add additional ck_ht manual pages.
...
Minor corrections to ck_ht_entry_key_direct and
ck_ht_entry_value_direct manual pages included.
13 years ago
Samy Al Bahra
4ea160d291
doc: More ck_ht documentation.
13 years ago
Samy Al Bahra
319ae636d2
doc: Add more ck_ht manual pages. This is boring.
13 years ago
Samy Al Bahra
704d159c69
build: Move installation of documentation to doc Makefile.
13 years ago
Samy Al Bahra
3a9087c838
build: Correct default MANDIR.
13 years ago
Samy Al Bahra
6929e9372b
doc: Support systems that lack gzip.
13 years ago
Samy Al Bahra
c862b08fb7
doc: Add manual page for ck_ht_entry_empty.
13 years ago
Samy Al Bahra
9723042b67
build: Remember to use DESTDIR
13 years ago
Samy Al Bahra
ad5816b627
build: Bump version for next release.
13 years ago
Samy Al Bahra
90cffdf4fb
doc: Initial support for manual pages, pending portability concerns.
...
I must update this for Solaris.
13 years ago
Samy Al Bahra
ea6f422e5b
ck_ht: Add manual pages for a subset of ck_ht functionality.
13 years ago
Samy Al Bahra
41ec076372
ck_ht: Add ck_ht_entry_set_key_direct function.
13 years ago
Samy Al Bahra
fb5d9331e2
ck_ht: Add ck_ht_entry_empty function.
...
Function returns true if the initialized ck_ht_entry_t
pointed to by its argument does not contain a key-value pair.
13 years ago
Samy Al Bahra
cef7de2c5f
regressions: ck_ht parallel benchmark makes use of affinerator.
...
Currently, it will default to RR behavior across cores with no
delta support.
13 years ago
Samy Al Bahra
d9017b3e5b
regressions: Add multi-threaded SPMC synthetic benchmark for ck_ht.
13 years ago
Samy Al Bahra
5f653956d4
ck_ht: Update comment in ck_ht_get_spmc.
13 years ago
William Irwin
99f2454646
Manually convert tail recursion to iteration in ck_ht_grow_spmc().
...
Signed-off-by: Samy Al Bahra <sbahra@repnop.org>
13 years ago
William Irwin
90f06f358b
Manually convert tail recursion to iteration in ck_ht_get_spmc().
...
Signed-off-by: Samy Al Bahra <sbahra@repnop.org>
13 years ago
Samy Al Bahra
af34276eda
ck_ht: Fix Copyright statement. This is BSD-licensed.
13 years ago
Samy Al Bahra
13b398a11f
build: Bump version counter for silent release.
13 years ago
Samy Al Bahra
fdea287873
ck_ht: Update deletions before committing tombstone and after committing replacement value.
13 years ago
Samy Al Bahra
7a4118e964
Revert "ck_ht: Fix bug in tombstone replacement on set."
...
This reverts commit ef82078e59
.
13 years ago
Samy Al Bahra
ef82078e59
ck_ht: Fix bug in tombstone replacement on set.
...
We must force a reprobe before setting the old
slot key field to a tombstone.
13 years ago
Samy Al Bahra
a7031bf938
ck_malloc: Add stdbool.h include.
13 years ago
Samy Al Bahra
2d37b6f828
ck_malloc: Add shared structure for representing data structure-specific allocation functions.
...
This structure is due to change soon.
13 years ago
Samy Al Bahra
9f786337f7
ck_ht: Lock-free SPMC hash table, for x86_64.
...
This is a hash table that is optimized for architectures that
implement total store ordering and workloads that are read-heavy
involving a single writer and multiple readers. Unlike traditional
non-blocking multi-producer/multi-consumer hash table
implementations this version allows for immediate re-use of deleted
buckets (no need for explicit reclamation cycles) and is more
conducive to traditional safe memory reclamation schemes used in
unmanaged languages (otherwise, we would require key duplication).
It is relatively heavy-weight for MPMC workloads on architectures
which do not implement TSO in comparison to Click's MPMC hash
table. However, it still has better performance characteristics
than a blocking hash table.
The committed version currently only provides x86_64 support. This is
being committed for review by peers and for a silent release that will
allow us to test ck_ht_spmc under high production workloads.
Next public release will include additional documentation as well as
support for other architectures.
In the mean time, please see the unit tests for example usage. Included in
this commit: Dropped -Wbad-function-cast from GCC port.
13 years ago
Samy Al Bahra
dc97d69ca4
build: Bump version for next release.
13 years ago
Samy Al Bahra
722b794083
build: Use relative symbolic link.
...
Submitted by Andrew J. Schorr <aschorr@telemetry-...com>.
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
d341f67bea
build: Prepare for next release.
13 years ago
Samy Al Bahra
a746ac7121
build: Make sure to delete libck.a.
13 years ago
Samy Al Bahra
f49b21fe59
build: Remove ck.spec in distribution target.
13 years ago
Samy Al Bahra
d6e306a2e4
build: Add RPM specification, fix DESTDIR usage on install step.
...
Submitted by Andrew J. Schorr <aschorr@telemetry-...com>.
13 years ago
Samy Al Bahra
3fa28d9a95
regressions: Fix typo in ck_queue regressions, _GNU_SOURCE also needed.
13 years ago
Samy Al Bahra
02109beef7
regressions: Fix ck_queue, remove debug CFLAGS, inherit PTHREAD_CFLAGS.
...
Reported by Johan Bergstrom (http://github.com/jbergstroem ).
13 years ago
Samy Al Bahra
4fc1717975
ck_epoch: Use full barrier on read begin and load barrier on read end.
...
We shouldn't offload the responsibility of the read_begin flush
for shared data mutations to the user. read_end requires a load
barrier at the least, not a store barrier.
13 years ago
Samy Al Bahra
ab6cbec48b
build: Prepare for next tag.
13 years ago
Samy Al Bahra
674e69f259
ck_queue: Add BSD-derived queue.h facility.
...
Writer-side synchronization is still necessary. My current use-cases call for
SLIST and LIST implementations, and as such, I've only implemented support
for these. TAILQ facilities will be developed when the time comes that I require
them or if there is sufficient user-demand.
13 years ago
Samy Al Bahra
4d2f01b84d
regressions: Do not break strict aliasing rules in ck_pr validation tests.
...
Signed-off-by: Samy Al Bahra <sbahra@appnexus.com>
13 years ago
Samy Al Bahra
941bc25734
regressions: Add missing include for memset.
...
Signed-off-by: Samy Al Bahra <sbahra@appnexus.com>
13 years ago
Samy Al Bahra
544de60849
ck_pr: Add appropriate casts to ck_pr_cas unit test.
13 years ago
Samy Al Bahra
9dd525d9ee
regressions: Remove my awesome attempt at documenting ck_pr_cas.c
13 years ago