Samy Al Bahra
18d74f55a1
ck_ht: Add support for user-specified hash functions.
13 years ago
Samy Al Bahra
606afe0f23
ck_rwlock: Add ck_rwlock_recursive facility.
...
Allows for write-side recurion. Added upon request by
other users. Regression test has been updated.
13 years ago
Samy Al Bahra
402c31ca9a
ck_hp_fifo: Add try{enqueue,dequeue} variants.
...
Regression test has been updated and passes.
13 years ago
Samy Al Bahra
816e11ff61
ck_fifo: Add tryenqueue/trydequeue wait-free operations.
...
Pending regressions tests, taking snapshot while I move to cafe.
13 years ago
Samy Al Bahra
286cc8b012
ck_hp_stack: Add trypush/trypop variants.
...
Regressions tests pending an update (taking a snaphot, A/C is down).
13 years ago
Samy Al Bahra
ff6f4d94f4
ck_stack: Add wait-free trypop and trypush operations.
...
Regression tests have been updated to test these operations as
equivalents to regular looping push/pop operations.
13 years ago
Samy Al Bahra
9446bc3e96
ck_stack: Get rid of default back-off behavior.
13 years ago
Samy Al Bahra
1cabea8a54
ck_hp_{fifo, stack}: Get rid of backoff behavior by default.
13 years ago
Samy Al Bahra
7dd549418a
ck_bytelock: Remove backoff behavior by default.
13 years ago
Samy Al Bahra
11505f8417
ck_fifo: Remove backoff behavior by default.
13 years ago
Samy Al Bahra
f61c694656
ck_bag: Whitespace clean-up.
13 years ago
Samy Al Bahra
4fcb6a5e5f
ck_bag: Disable pointer packing by default.
13 years ago
Samy Al Bahra
8bed9627a6
ck_ht: Enable pointer packing only if explicitly enabled.
...
Pointer packing is only utilized on the x86_64 port.
13 years ago
Samy Al Bahra
f38cc85ac9
build: Add --enable-pointer-packing option.
...
Pointer packing is now disabled by default for x86_64 targets.
Jeffrey M. Birnbaum <jmbny.@...> told me that according to his
discussions with Intel engineers, Haswell will be bumping up
VMA bits to 56 bits from 48.
If you control the hardware that CK is deployed to and don't
envision a migration to 48-bits anytime soon, then you may
enable old behavior (resulting in significant memory savings
for some data structures, namely ck_ht) by passing the
--enable-pointer-packing flag to configure.
13 years ago
Samy Al Bahra
2b2e44203b
Merge pull request #5 from abelmathew/master
...
ck_bag: Merge from abelmathew/master.
13 years ago
Abel Mathew
bbc6f584fd
ck_bag: Various Bug Fixes and Cleanup.
...
Migrate available block list to CK_LIST.
New blocks are only allocated when the available list is exhausted.
Remove bag->avail_tail.
Print out number of writer iterations for unit test.
Lengthen duration of unit test.
13 years ago
Samy Al Bahra
8a3c4786a8
ck_bag: Initialize n_entries.
13 years ago
Samy Al Bahra
fdce6fcc30
ck_bitmap: Fix ck_bitmap_next for 32-bit targets.
...
The nubmer of bits in a block was previously hard-coded.
13 years ago
Samy Al Bahra
099a6c7b04
ck_bitmap: Add bitmap iterator functions.
...
These can do with some optimization. A majority of this
work is based off an earlier patch submitted by
Shreyas Prasad <sprasad@appne....>.
13 years ago
Samy Al Bahra
9bc4ede14e
ck_pr/x86: Re-order includes.
13 years ago
Samy Al Bahra
5cc3e6f1fc
ck_pr: Re-order includes.
13 years ago
Samy Al Bahra
3cf265cba0
all: Strip trailing whitespaces.
13 years ago
Samy Al Bahra
4251e6aa56
ck_pr: Update PPC32 header guard to be consistent.
13 years ago
Samy Al Bahra
70edc1f6cb
ck_pr: Merge Joao's PPC32 support with some modifications.
...
Add PPC32 build file. Add support in configure script.
13 years ago
Samy Al Bahra
334ba2463f
Merge remote-tracking branch 'remotes/jcfernandes/powerpc'
13 years ago
Samy Al Bahra
599a85f0c3
ck_bitmap: Rename CK_BITMAP_TYPE to CK_BITMAP_WORD.
13 years ago
Samy Al Bahra
d080df2e8c
ck_bitmap: Strict aliasing fixes for older versions of GCC.
13 years ago
Joao Fernandes
64b7f83417
Added support for 32-bit PowerPC CPUs. Untested!
13 years ago
Samy Al Bahra
ac9e8f942d
ck_bitmap: Inline initializer.
13 years ago
Samy Al Bahra
1ca904d5a8
ck_bitmap: Absolutely no need to memoize n_buckets.
13 years ago
Samy Al Bahra
10d86b6424
ck_bitmap: Overhaul API for improved support of static instances.
...
This changes comes at the cost of clear linearizability, which
is suitable for my use-case. Users can easily implement linereazability
through an additional level of indirection to the ck_bitmap object.
13 years ago
Samy Al Bahra
1d02940c83
ck_ht: Fix ck_ht_entry_key for some non-x86_64 platforms.
...
Previously we would clear top 16 bits of pointer, fix this behavior
to only apply this behavior on x86_64.
13 years ago
Samy Al Bahra
9d4541d703
ck_bitmap: Fix ck_bitmap_init.
...
Refs #85
13 years ago
Samy Al Bahra
e88e17d27b
ck_bitmap: Add ck_bitmap_buffer function.
...
Returns a pointer to the buffer used to initialize
the bitmap.
13 years ago
Samy Al Bahra
ab73676ee4
ck_bitmap: Lock-free MPMC contiguous bitset implementation.
...
Rather trivial data structure but driven by sufficient user-demand.
Manual pages to come.
13 years ago
Samy Al Bahra
5b4ea9cfe5
ck_bag: Update include-guard comment.
13 years ago
Abel Mathew
eaa8ad1d4d
ck_bag: Various bug fixes.
...
Add necessary load fence to iterator.
Initialize iterator appropriately for empty bags.
Improve unit test.
Fix bag linkage bug for non x86_64 targets.
Fix block accounting on removal.
13 years ago
Samy Al Bahra
85c37ef251
ck_bag: Fix bug in ck_ht_iterator_init.
...
It is possible for the bag associated with the iterator to be empty.
13 years ago
Samy Al Bahra
656b06582b
ck_bag: Explicit load fence after acquiring n_entries snapshot.
13 years ago
Samy Al Bahra
f940cc1263
ck_bag: Various stylistics changes, ck_md: Rename CK_MD_PAGE_SIZE to CK_MD_PAGESIZE.
13 years ago
Abel Mathew
8e83963d63
ck_bag: Add support for non x86_64 architectures. Memoize n_entries lookup when iterating over a bag.
...
Signed-off-by: Samy Al Bahra <sbahra@repnop.org>
13 years ago
Abel Mathew
431c24a90a
ck_bag: Lock-Free SPMC bag/collection for x86_64. A bag is a linked list of blocks, with each block containing an array. Insertions are on the order of O(1) and deletions are on the order of O(N). This data structure is meant to act as a lock-free vector implementation.
...
Signed-off-by: Samy Al Bahra <sbahra@repnop.org>
13 years ago
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
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
a7031bf938
ck_malloc: Add stdbool.h include.
13 years ago