Commit Graph

441 Commits (4198b517ac219607f14a73abf527fff110cffabe)

Author SHA1 Message Date
Samy Al Bahra 45f648bd33 ck_ring: Add *_size_* ck_ring enqueue operations.
12 years ago
Brendon Scheinman 646cb2cb06 ck_cohort_rw: Removed unused member variable
12 years ago
Samy Al Bahra 86884ed574 ck_fifo_mpmc: Fix NULL deference when re-using nodes.
12 years ago
Samy Al Bahra c4e50a193a ck_fifo: Style fixes.
12 years ago
Brendon Scheinman 63bfa0d353 ck_cohort_rw: Reduced line wrapping
12 years ago
Brendon Scheinman 5e1b614108 ck_cohort_rw: Initial implementation with validation test.
12 years ago
Brendon Scheinman 6441c90cfe Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Brendon Scheinman 3c8728b214 ck_cohort: Added trylock support to cohort framework
12 years ago
Samy Al Bahra 4b9badd440 ck_cohort: Remove unnecessary whitespace.
12 years ago
Brendon Scheinman 62c121f500 ck_cohort: Added example code to man page
12 years ago
Samy Al Bahra c393a97cb7 ck_pflock: Fix Copyright typo from original patch.
12 years ago
Samy Al Bahra f6a53fd9de ck_cohort: First-cut implementation of generalized cohort interface.
12 years ago
Samy Al Bahra 060b922dc2 ck_pflock: Whitespace change.
12 years ago
Samy Al Bahra aec2797d27 ck_pflock: Load acquire semantics are sufficient for read_unlock.
12 years ago
Samy Al Bahra 54845bb8e7 ck_pflock: Phase-fair read-write lock implementation.
12 years ago
Samy Al Bahra 7d3fd9d227 ck_fifo: Get rid of load_depends usage for now.
12 years ago
Samy Al Bahra b7d258b219 ck_pr/gcc: ck_pr_fence_load_depends should be heavy-weight on catch-all target.
12 years ago
Samy Al Bahra d09e48daed ck_spinlock: Only enable trylock path for TSO architectures at the moment.
12 years ago
Samy Al Bahra 27d454248d ck_spinlock: Add ticket lock with trylock operation.
12 years ago
Joao Fernandes 086ebf7126 ck_pr: moving PPC32 to RMO.
12 years ago
Samy Al Bahra 8c53de1e70 ck_rwlock: Add documentation on visibility semantics.
12 years ago
Samy Al Bahra 1ea5769fd4 ck_rwlock: Improve code legibility.
12 years ago
Samy Al Bahra 334b15e6e0 ck_bytelock: Acquire semantics on read.
12 years ago
Samy Al Bahra 038b3d816d ck_rwlock: Forgot to add acquire on operation success.
12 years ago
Samy Al Bahra 0598307186 whitespace: Various style changes.
12 years ago
Abel Mathew 25658c4f5f ck_queue: Fix CK_LIST_INSERT_HEAD.
12 years ago
Samy Al Bahra 33a9222923 legal: Update Copyright statements.
12 years ago
Samy Al Bahra d29ac5afdb ck_bytelock: Fix downgrade path from writer to reader.
12 years ago
Samy Al Bahra c4149c72b4 ck_ring: Use regular assignment in type specialized ck_ring initialization.
12 years ago
Samy Al Bahra 89cb712ffa ck_ring: Memoize mask across all operations.
12 years ago
Samy Al Bahra 8519aaf771 ck_ring: Memoize mask for SPMC operations.
12 years ago
Samy Al Bahra b54ae5c4ac ck_ring: Add a work-around for compiler bug(s) in ck_ring_dequeue_spmc.
12 years ago
Samy Al Bahra 0631e396e0 ck_backoff: Replace ck_backoff_eb with ck_backoff_gb.
12 years ago
Samy Al Bahra b37ce19976 ck_pr/x86_64: GCC will attempt immediate expansion on double.
12 years ago
Samy Al Bahra 0c56b1b8c6 ck_epoch: Remember to mark entry availability on unregister.
12 years ago
Samy Al Bahra 93684f77c1 ck_pr: Use CK_CC_INLINE instead of inline keyword for ck_pr_barrier.
12 years ago
Samy Al Bahra de0597d2aa ck_bitmap: Add comment for ck_bitmap_size.
12 years ago
Samy Al Bahra 849f938973 ck_ring: Add parameterized version of ck_ring_trydequeue.
12 years ago
Samy Al Bahra 7a99585f9e ck_ring: No need for volatile load on dequeue_spmc.
12 years ago
Samy Al Bahra 01dc51db65 ck_ring: Add trydequeue variant.
12 years ago
Samy Al Bahra ca8be0858c ck_pr: Re-include port selection logic.
12 years ago
Samy Al Bahra 1c7b8811c8 ck_pr/gcc: Remove useless assignment from volatile load.
12 years ago
Samy Al Bahra a9ed19303f ck_pr/gcc: Adopt const semantics for load/store in GCC port.
12 years ago
Samy Al Bahra 6de54d6aa5 ck_pr/x86_64: Use correct target for load_64_2.
12 years ago
Samy Al Bahra 12da4128ff ck_pr: Adopt const qualifer for load/store.
12 years ago
Samy Al Bahra 055a7fd5db ck_ring: Add wrapper functions for parameterized SPMC ring.
12 years ago
Samy Al Bahra 68b33e56d8 ck_ring: Add parameterized version of SPMC ring.
12 years ago
Samy Al Bahra 7f35cbee1b ck_ring: Use SPSC enqueue as SPMC enqueue.
12 years ago
Samy Al Bahra 5d1d850f44 ck_ring: Adopt semantics identical to spmc counter semantics.
12 years ago
Samy Al Bahra 77a3bd3126 ck_ring: Move overflow check to producer side.
12 years ago
Samy Al Bahra d595bafea7 ck_ring: Serialize producer snapshot with respect to consumer.
12 years ago
Samy Al Bahra d705e02b76 ck_ring: Replace MPMC variant with SPMC variant for starters.
12 years ago
Samy Al Bahra bb48f602ff ck_ring: Add note regarding correctness so people don't both verifying it.
12 years ago
Samy Al Bahra 68e6752e53 ck_ring: Due to popular request, add MPMC variants of enqueue/dequeue.
12 years ago
Samy Al Bahra 957e4aec5d ck_brlock: Fix typo.
12 years ago
Samy Al Bahra b631e3aa23 ck_brlock: Enable FAS serialization only on x86.
12 years ago
Samy Al Bahra 2bdc231288 ck_brlock: Serialize on atomic operation on read acquisition.
12 years ago
Samy Al Bahra cb1c72d36b ck_queue: Add CK_?LIST_MOVE operation.
12 years ago
Samy Al Bahra 5df8882840 ck_bytelock: Switch to full semantics on unlock.
12 years ago
Samy Al Bahra a06f28b77c ck_ring: Remove useless comment.
12 years ago
Samy Al Bahra f3111b006b ck_fifo: SPSC FIFO dequeue only requires load depends barrier.
12 years ago
Samy Al Bahra bf30d3439c ck_rwlock: Remove unncessary load fences, switch to full semantics on read unlock.
12 years ago
Samy Al Bahra 65ebf86799 ck_spinlock: Switch to full semantics across all implementations.
12 years ago
Samy Al Bahra e40521d1aa ck_pr/ppc64: Switch to RMO model for atomic operations.
12 years ago
Samy Al Bahra 6be03bb450 ck_bytelock: Remove unnecessary load barrier on unslotted read acquisition.
12 years ago
Samy Al Bahra 52ca64b2b7 ck_pr/sparcv9: MemIssue is overly heavyweight.
12 years ago
Samy Al Bahra 3f217c9789 ck_pr: Fallback to RMO for PSO for this release.
12 years ago
Samy Al Bahra a1dc38f20e build/ck_pr: Add configurable memory models.
12 years ago
Samy Al Bahra fedc2f6e47 ck_pr/sparcv9: Assume TSO by default.
12 years ago
Samy Al Bahra 690782aa67 ck_hs: Add hash function wrapper to maintain opacity of ck_hs_t.
12 years ago
Samy Al Bahra f2dfd828c3 Merge pull request #7 from abelmathew/master
12 years ago
Samy Al Bahra ece2895e9e ck_hs: Drop ck_hs_hash_t abstraction.
12 years ago
Abel Mathew 00d0320767 ck_bag: Fix usage of CK_MD_VMA_BITS.
12 years ago
Samy Al Bahra adaf20b31c ck_ht: Add ck_ht_stat function.
12 years ago
Samy Al Bahra 0f5e540afa ck_hs: Lock-free set loosely modeled after ck_ht.
12 years ago
Abel Mathew ec02b2f356 ck_bag: USE CK_BAG_KEY_LENGTH
12 years ago
Abel Mathew 9ff3c2d017 Merge remote-tracking branch 'upstream/master'
12 years ago
Abel Mathew 981e0a49a2 ck_bag: Use CK_MD_VMA_BITS
12 years ago
Samy Al Bahra 1d1e433dc4 ck_ht: Set unsigned key length.
12 years ago
Samy Al Bahra ec0d212c04 ck_ht: Set artificial key length limit if pointer packing is disabled.
12 years ago
Samy Al Bahra 90713046e9 ck_ht: Use CK_MD_VMA_BITS.
12 years ago
Samy Al Bahra 7a04c368ff build: Add VMA bits detection for Mac OS X and Linux on x86*.
12 years ago
Samy Al Bahra c45098b21b ck_epoch: Emit fence instructions for TSO, do not emit for recursive calls.
12 years ago
Samy Al Bahra a5fb24ab61 ck_ht: Hard-code ck_ht_entry alignment.
12 years ago
Samy Al Bahra f6a675ab00 ck_cc: Add no-op macros in case of unsupported compiler.
12 years ago
Samy Al Bahra 57104fcde7 ck_epoch: Change to epoch semantics, bump grace period to 4.
12 years ago
Samy Al Bahra 98d902b024 ck_epoch: Barrier placement for RMO.
12 years ago
Samy Al Bahra c274e8bc54 ck_epoch: Major redesign and rewrite.
12 years ago
Samy Al Bahra 955047a7d1 ck_{ring,fifo}: Add store fences while we lack load_store fences.
12 years ago
Samy Al Bahra e78bbe9ae6 ck_{rw,byte,br}lock: Serialize final loads with respect to read.
12 years ago
Samy Al Bahra 1d61147c01 ck_spinlock/mcs: Remove unnecessary fences, serialize unload.
12 years ago
Samy Al Bahra 79e336cfbc ck_spinlock: Clarify ticket spinlock code.
12 years ago
Samy Al Bahra 27ed5f78fe ck_spinlock: Remove unnecessary fence in DEC-based spinlock.
12 years ago
Samy Al Bahra a7c4b9df65 ck_spinlock: Adopt RMO for anderson spinlock.
12 years ago
Samy Al Bahra ce4cdd45c8 ck_spinlock: Adopt RMO semantics for CLH.
12 years ago
Samy Al Bahra d72ca391f6 ck_bytelock: Switch to RMO model.
12 years ago
Samy Al Bahra 180b5e0386 ck_brlock: Serialize brlock operations for RMO.
12 years ago
Samy Al Bahra 45f310893c ck_rwlock: Fix behavior for weakly-ordered systems.
12 years ago
Samy Al Bahra 8043f52130 ck_pr: Add ck_pr_barrier for compiler barrier.
12 years ago
Samy Al Bahra 1e8fe57028 ck_bitmap: Remove unnecessary whitespace.
12 years ago
Samy Al Bahra bc19dccb1f ck_cc: Add CK_CC_BARRIER for compiler barrier.
12 years ago
Samy Al Bahra b1b19c1f74 ck_ring: Memory fence is overly pedantic for parameterized enqueue.
12 years ago
Samy Al Bahra 753f95fb45 Merge branch 'master' of git.concurrencykit.org:ck
12 years ago
Samy Al Bahra 94698736c1 ck_queue: Add appropriate load fences.
12 years ago
Samy Al Bahra 7530ca21b7 ck_fifo: Do not forget about node recycling.
12 years ago
Samy Al Bahra 2d2b49a313 ck_stack: Assume weak ordering of CAS.
12 years ago
Samy Al Bahra a7f51fffca ck_hp_fifo: Serialize second CAS.
12 years ago
Samy Al Bahra ccbf28f0cb ck_fifo: Remove unused variables, serialize MPMC insertion.
12 years ago
Samy Al Bahra 78f00eeeb6 ck_fifo_spsc: Fix implementation.
12 years ago
Samy Al Bahra 80c56d115b ck_ring: Do not use volatile load for parametric ck_ring_size.
12 years ago
Samy Al Bahra ad5e143bd5 ck_ring: Various improvements to readability.
12 years ago
Samy Al Bahra fbb88a519c ck_bytelock: read_lock must serialize all load/store before checking owner field.
12 years ago
Samy Al Bahra 3afa6b2b39 ck_ht: Let users define their own empty and tombstone values.
12 years ago
Samy Al Bahra 94c26494a6 ck_ring: Size is no longer necessary.
12 years ago
Samy Al Bahra 7657df25a8 ck_sequence: Serialize read_begin, add load barrier.
12 years ago
Samy Al Bahra 031d950cc0 ck_stack: Add aliased attribute to ck_stack for GCC 4.4.
13 years ago
Samy Al Bahra 65cf506af9 ck_cc: Add CK_CC_ALIASED attribute.
13 years ago
Samy Al Bahra 7dd705c86f ck_ht: Remove ck_ht_allocator_set declaration.
13 years ago
Samy Al Bahra 59158c824b ck_ht: Do not re-hash on growth for non-PP case.
13 years ago
Samy Al Bahra ccb1fd6d86 ck_fifo: Add some load fences for SPARC/PPC.
13 years ago
Samy Al Bahra 7d6626131d ck_hp_fifo: Forgot load fence in last commit.
13 years ago
Samy Al Bahra 319872ca8c ck_hp_fifo: Fix race condition on dequeue.
13 years ago
Samy Al Bahra 72a8adb599 ck_ht: Add support for per-hash-table allocator.
13 years ago
Samy Al Bahra 314ce3ad81 ck_rwlock: Drop factor argument to trylock API.
13 years ago
Samy Al Bahra 512bbc050b ck_rwlock: Add recursive trylock operations.
13 years ago
Samy Al Bahra 380dd410c6 ck_backoff: Saturate geometric back-off.
13 years ago
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.
13 years ago
Samy Al Bahra 402c31ca9a ck_hp_fifo: Add try{enqueue,dequeue} variants.
13 years ago
Samy Al Bahra 816e11ff61 ck_fifo: Add tryenqueue/trydequeue wait-free operations.
13 years ago
Samy Al Bahra 286cc8b012 ck_hp_stack: Add trypush/trypop variants.
13 years ago
Samy Al Bahra ff6f4d94f4 ck_stack: Add wait-free trypop and trypush 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.
13 years ago
Samy Al Bahra f38cc85ac9 build: Add --enable-pointer-packing option.
13 years ago
Samy Al Bahra 2b2e44203b Merge pull request #5 from abelmathew/master
13 years ago
Abel Mathew bbc6f584fd ck_bag: Various Bug Fixes and Cleanup.
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.
13 years ago
Samy Al Bahra 099a6c7b04 ck_bitmap: Add bitmap iterator functions.
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.
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.
13 years ago
Samy Al Bahra 1d02940c83 ck_ht: Fix ck_ht_entry_key for some non-x86_64 platforms.
13 years ago
Samy Al Bahra 9d4541d703 ck_bitmap: Fix ck_bitmap_init.
13 years ago
Samy Al Bahra e88e17d27b ck_bitmap: Add ck_bitmap_buffer function.
13 years ago
Samy Al Bahra ab73676ee4 ck_bitmap: Lock-free MPMC contiguous bitset implementation.
13 years ago
Samy Al Bahra 5b4ea9cfe5 ck_bag: Update include-guard comment.
13 years ago
Abel Mathew eaa8ad1d4d ck_bag: Various bug fixes.
13 years ago
Samy Al Bahra 85c37ef251 ck_bag: Fix bug in ck_ht_iterator_init.
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.
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.
13 years ago
Samy Al Bahra 42b32c6e6a ck_ring: Apply ck_ring_size logic to ck_ring_enqueue functions.
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.
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.
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.
13 years ago
Samy Al Bahra 9f786337f7 ck_ht: Lock-free SPMC hash table, for x86_64.
13 years ago
Samy Al Bahra 4fc1717975 ck_epoch: Use full barrier on read begin and load barrier on read end.
13 years ago
Samy Al Bahra 674e69f259 ck_queue: Add BSD-derived queue.h facility.
13 years ago
Samy Al Bahra f5f5074b70 ck_pr: Cast down to void pointer for cmpxchg16b wrapper.
13 years ago
Samy Al Bahra eae4a518a8 ck_epoch: Differentiate read/write epoch endings.
13 years ago
Samy Al Bahra 17f69d6c0d ck_md: Parenthesize CK_MD_CACHELINE.
13 years ago
David Joseph 0123c454f4 ck_pr: Add support for atomic ops for doubles.
13 years ago
Samy Al Bahra 1cefea7eb6 ck_spinlock: Provide a default implementation.
13 years ago
Samy Al Bahra 50f6f6ee02 ck_rwlock: Add ck_rwlock_write_downgrade.
13 years ago
Samy Al Bahra 0231b68a8b ck_spinlock: Add ck_spinlock_*_locked.
13 years ago
Samy Al Bahra e8a96f4fb8 ck_pr: Add ck_pr_fas_double for {ppc,x86_}64 and ck_pr_cas_double{_2} for x86_64.
13 years ago
Samy Al Bahra 5e7adf5983 ck_pr: Add respective feature flags for ck_pr_load/store_double.
13 years ago
William Irwin 41ef93744a ck_pr: Add ck_pr_load_double()/ck_pr_store_double() in case volatile loads and stores of floating point values are needed.
13 years ago
Samy Al Bahra 851aaf8dd6 ck_brlock: Allow for recursive reader lock.
13 years ago
Samy Al Bahra c03dd7a45c ck_epoch: Update peak value on retire.
13 years ago
Samy Al Bahra cc4b83793f ck_epoch: Flip arguments, specify epoch_entry before destructor.
13 years ago
Samy Al Bahra 79c7e453ec ck_epoch: Specify destructor in ck_epoch_retire.
13 years ago
Samy Al Bahra 10ffb2e6f1 ck_epoch: Support per-object destructors.
13 years ago
Samy Al Bahra 0f48b6fe7a ck_proxy: Add support for recursive epoch sections.
13 years ago
Samy Al Bahra b5755888fc ck_rwlock: Add trylock variants with user-defined spin factor.
13 years ago
Samy Al Bahra 9feb93758f ck_brlock: Add trylock variants with user-defined spin factor.
13 years ago
Samy Al Bahra 8b0e83e6ab ck_brlock: No need for explicit pipeline stall if writer is active.
13 years ago
Samy Al Bahra 4e7c6ee270 Add full barrier for anderson spinlock.
13 years ago