Commit Graph

531 Commits (b1acbf1b0a56e45dfa5c6ee93fc237e0eebbcb86)

Author SHA1 Message Date
Samy Al Bahra ce142f17f8 ck_spinlock: Add ck_spinlock_mcs_init operation.
12 years ago
Samy Al Bahra 6bc9f7a485 ck_spinlock: Get rid of MCS context initializers.
12 years ago
Samy Al Bahra ec58f5dcf7 ck_spinlock: Add ck_spinlock_dec_init operation.
12 years ago
Samy Al Bahra 2f52ace54c ck_spinlock: Fix strict aliasing issue in unlock (no-op).
12 years ago
Samy Al Bahra 29a84b47b3 ck_hs: Add ck_hs_move operation.
12 years ago
Samy Al Bahra 5cf28b2152 ck_rwcohort: Missing fences on fast path.
12 years ago
Samy Al Bahra 73a1e42baf ck_rwcohort: Style fixes.
12 years ago
Samy Al Bahra b36e35ec76 Merge branch 'master' of https://github.com/bscheinman/ck
12 years ago
Samy Al Bahra ce2ef37ce3 ck_elide: Style fixes.
12 years ago
Samy Al Bahra cc231e4ab0 ck_elide: No need to expose ck_elide_stat.
12 years ago
Samy Al Bahra 906eaf1881 ck_elide: Fold CK_ELIDE_ADAPTIVE_PROTOTYPE into PROTOTYPE.
12 years ago
Samy Al Bahra b67e91c858 ck_rwlock: Fold CK_ELIDE_ADAPTIVE_PROTOTYPE into PROTOTYPE.
12 years ago
Samy Al Bahra 768b5b3597 ck_rwlock: Add adaptive elision and unit tests.
12 years ago
Samy Al Bahra fe8deba87d ck_elide: Adaptive elision semantics.
12 years ago
Samy Al Bahra 43f7a7692a ck_cc: Expand LIKELY/UNLIKELY on unsupport compilers.
12 years ago
Samy Al Bahra f214d9419e ck_spinlock: Move elision prototype to end of file.
12 years ago
Samy Al Bahra c76441fff3 ck_stack: Style changes.
12 years ago
Samy Al Bahra fc0bfae1da ck_elide: Commentary on ck_elide interface.
12 years ago
Samy Al Bahra 59a1b53e86 ck_spinlock: Migrate to ck_elide.h.
12 years ago
Samy Al Bahra 671f82d7a8 ck_rwlock: Migrate to ck_elide.h.
12 years ago
Samy Al Bahra 68a614328a ck_elide: General lock elision framework.
12 years ago
Samy Al Bahra 0517a51b06 ck_spinlock: Weaken volatile store in clh_lock.
12 years ago
Samy Al Bahra 64b1201dcc ck_spinlock: Acquire semantics for old locked operations.
12 years ago
Samy Al Bahra a51c8c7aa6 ck_spinlock: Add ck_spinlock_clh_locked.
12 years ago
Samy Al Bahra 46d61ccd46 ck_spinlock: Add ck_spinlock_ticket_locked.
12 years ago
Samy Al Bahra f149dd09fe ck_pr: Add ck_pr_fence_strict_atomic for x86-64.
12 years ago
Samy Al Bahra 55decd0b38 ck_spinlock: Add ck_spinlock_anderson_locked.
12 years ago
Samy Al Bahra a03d58fff2 ck_rwlock: Use heavier-weight barrier on write path.
12 years ago
Samy Al Bahra a694e871ca ck_rwlock: Relax write_trylock_rtm semantics.
12 years ago
Samy Al Bahra 3fbefc5042 ck_rwlock: Add read_trylock_rtm.
12 years ago
Samy Al Bahra 4d2ccfe497 ck_rwlock: Add basic RTM interface to rwlock.
12 years ago
Samy Al Bahra 2ed965bfc2 ck_pr_rtm: Fix xtest output clobber identifier.
12 years ago
Samy Al Bahra 43a6628cf1 ck_pr: Initial support for TSX.
12 years ago
Samy Al Bahra 04590839d9 ck_sequence: change retry to take unsigned int.
12 years ago
Brendon Scheinman cb0a7c8ce6 Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Samy Al Bahra a8a74b9f57 ck_spinlock: Remove erroneous mask usage for non-x86 targets.
12 years ago
Samy Al Bahra 045d0e1053 ck_spinlock: Apply modulo arithmetic to proportional back-off ticket lock.
12 years ago
Samy Al Bahra cd53e928bf ck_cc: Add branch execution hint support for GCC.
12 years ago
Samy Al Bahra 7da381bb1a ck_hs: Prototype for new ck_hs_fas operation.
12 years ago
Brendon Scheinman fc071e1ce2 Merge branch 'master' of https://github.com/bscheinman/ck
12 years ago
Brendon Scheinman f9ea659bff Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Samy Al Bahra 3ca7072c14 ck_pr: Implicit compiler barrier ck_pr_fence.
12 years ago
Samy Al Bahra a5e8d6ad45 ck_spinlock: Only enable trylock for ck_spinlock_ticket on x86*.
12 years ago
Samy Al Bahra adbdfe6633 ck_pr: Get rid of ck_pr_fence_X_X functions.
12 years ago
Samy Al Bahra e52fd0b405 ck_fifo: Migrate MPMC FIFO to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra 0d827b4c81 ck_hp_fifo: Finer-grained mapping to ck_pr_fence_X_Y.
12 years ago
Brendon Scheinman babae24a07 ck_rwcohort: Added missing return statements and changed while (true) loops to for (;;)
12 years ago
Brendon Scheinman 2b33d57148 ck_rwcohort: Removed extra whitespace
12 years ago
Brendon Scheinman cbfa095108 Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Samy Al Bahra 2ba3f59374 ck_spinlock: Migrate MCS to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra 8540821f3f ck_spinlock: Minor style changes to return statement.
12 years ago
Samy Al Bahra 08d13deaf4 ck_brlock: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra 214d7aed66 ck_pr: Implement ck_pr_fence_atomic in MD ck_pr.
12 years ago
Samy Al Bahra 8320a4a6f4 ck_pr: Comment elaboration on ck_pr_fence_atomic semantics.
12 years ago
Samy Al Bahra 3f06a4e23a ck_rwlock: Use ck_pr_fence_atomic.
12 years ago
Samy Al Bahra ffd22e57b8 ck_bytelock: Use ck_pr_fence_atomic.
12 years ago
Samy Al Bahra a4220f2377 ck_pr: Remove ck_pr_fence_load_depends from GCC port.
12 years ago
Samy Al Bahra d1dd6611ac ck_pr: Add ck_pr_fence_atomic interface.
12 years ago
Samy Al Bahra 8face51e0d ck_spinlock: Acquire semantics for anderson spinlock.
12 years ago
Samy Al Bahra f87e0caf99 ck_bytelock: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra 83bc7f9f54 ck_epoch: Migrate to ck_pr_fence_X_Y.
12 years ago
Samy Al Bahra fe7e5ac5b1 ck_hp_stack: Migrate to ck_pr_fence_X_Y functions.
12 years ago
Samy Al Bahra 01f89ee691 ck_hp_fifo: Migrate to ck_pr_fence_X_Y functions.
12 years ago
Samy Al Bahra b025722fbd ck_brlock: Migrate to ck_pr_fence_X_Y interface.
12 years ago
Samy Al Bahra 5506ad2744 ck_pr: Move ck_pr_barrier to compiler port.
12 years ago
Samy Al Bahra cc8c3fb2db ck_pr/gcc: Fix style issue.
12 years ago
Samy Al Bahra 8311e9fcb4 ck_pr: Update GCC port and change ck_pr dependency path.
12 years ago
Samy Al Bahra 44b769963f ck_pr: ck_pr_fence_X_Y interface has been added.
12 years ago
Brendon Scheinman dcdc6dd100 ck_rwcohort: Fixed indentation and looping logic and added initial documentation
12 years ago
Brendon Scheinman 444df7dfe5 Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Samy Al Bahra 855a1472a8 ck_ht: Add ck_ht_reset_size_spmc operation.
12 years ago
Samy Al Bahra 73531e9e48 ck_hs: Add ck_hs_reset_size operation.
12 years ago
Samy Al Bahra 4132ec4998 ck_epoch: Add ck_epoch_reclaim function.
12 years ago
Brendon Scheinman cc4b248bcb ck_rwcohort: Renamed ck_rwcohort namespace
12 years ago
Brendon Scheinman e0f46e6045 merged from upstream repo
12 years ago
Brendon Scheinman 0d20391563 ck_rw_cohort: Added benchmark tests for reader-writer cohort locks
12 years ago
Brendon Scheinman f693a16253 ck_rw_cohort: Added neutral reader-writer lock
12 years ago
Brendon Scheinman 21750b9321 ck_rw_cohort: Added read-preference logic and updated validation test to use it
12 years ago
Samy Al Bahra 1201e09577 ck_ring: Remove stale comment.
12 years ago
Brendon Scheinman f93369c4fc ck_rw_cohort: Removed backwards jump
12 years ago
Brendon Scheinman a352b46d0b ck_rw_cohort: renamed ck_rw_cohort namespace
12 years ago
Samy Al Bahra 011a9751a6 ck_queue: Add traversal-safe SPMC STAILQ.
12 years ago
Samy Al Bahra 5a13fddf70 ck_hp_fifo: Style fixes.
12 years ago
Samy Al Bahra 7980489eaf ck_hp_stack: Style fixes.
12 years ago
Samy Al Bahra 5c483e3b1c ck_hp: hp_acquire patterns require strict fences under TSO.
12 years ago
Samy Al Bahra e827557ee9 ck_hs: Whitespace change.
12 years ago
Samy Al Bahra d6fefccd6e ck_pflock: Update comment, implementation is not so naive now.
12 years ago
Samy Al Bahra 676f8fed88 Merge branch 'cohort_trylock' of git://github.com/bscheinman/ck
12 years ago
Samy Al Bahra 878b8e6321 ck_ring: Correct CK_RING_SPMC_ENQUEUE_SIZE typo.
12 years ago
Samy Al Bahra 67381af3c5 ck_ring: Expose *_size variants to type-specialized ck_ring.
12 years ago
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