Commit Graph

327 Commits (d0745f51ee9b347f55660277704669466afd2b03)

Author SHA1 Message Date
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.
14 years ago
Samy Al Bahra 5889498c16 ck_ring: Add modulo logic to ck_ring_size and CK_RING_SIZE.
14 years ago
Samy Al Bahra d3f0a634ab ck_fifo: Add a mechanism to extract the spare node from the SPSC FIFO.
14 years ago
Samy Al Bahra 6b627d9aad ck_fifo: Add trylock interface to dequeue.
14 years ago
Samy Al Bahra 5b37b97f7e ck_fifo: Add fifo trylock variant.
14 years ago
Samy Al Bahra 76411d5d63 ck_fifo: Add volatile variation of ISEMPTY, isempty.
14 years ago
Samy Al Bahra c7a12c7ac2 ck_fifo: Add a simple spinlock interface for ck_fifo_spsc.
14 years ago
Samy Al Bahra 16c86b98e5 ck_rwlock: Add publish semantics for rwlock.
14 years ago
Samy Al Bahra 88ee328b78 ck_ring: Add CK_RING_SIZE/CAPACITY and ck_ring_size/capacity.
14 years ago
Samy Al Bahra 006f58edcb ck_rwlock: Add a naive rw spinlock after many requests.
14 years ago
Samy Al Bahra 786efb9594 ck_brlock: Add big reader spinlocks.
14 years ago
Samy Al Bahra 631d5f93f4 ck_pr/sparcv9: Recent SPARCs actually implement RSO.
14 years ago
sbahra 49a2820000 Added support for Sun Studio 12 C compiler.
14 years ago
Samy Al Bahra 38c614222a ck_spinlock: Avoid modulus on unlock for power of 2 count.
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.
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.
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.
14 years ago
Samy Al Bahra cbe38a9999 ck_epoch: Remove whitespace.
14 years ago
Samy Al Bahra 20fb7a9200 ck_hp: Match epoch semantics.
14 years ago
Samy Al Bahra a72e86e0ba ck_epoch: Follow-up to previous commit.
14 years ago
Samy Al Bahra 83f1436f84 ck_epoch: Redesigned and improved unit test and observability.
14 years ago
Samy Al Bahra 492faed9a3 Reformatting changes for my new laptop.
14 years ago
Samy Al Bahra ba11d1e579 ck_sequence: Match up types. Do not use current.
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 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.
14 years ago
Samy Al Bahra d7d1dfbf50 ck_hp: Remove barrier from set and allow user to batch.
14 years ago
Samy Al Bahra dffbb4b48f ck_hp: Add explicit store fence after setting slot.
14 years ago
Samy Al Bahra 2302155613 ck_epoch: Reference Fraser's thesis.
14 years ago
Samy Al Bahra f22bddddd5 ck_epoch: Place epoch on a separate cache line.
14 years ago
Samy Al Bahra 826d9996ac ck_epoch: Remove unnecessary header file.
14 years ago
Samy Al Bahra 7b8dfe44be ck_hp: Rename *subscribe to *register.
14 years ago
Samy Al Bahra b123ec2313 ck_epoch: Whitespace changes. Add ck_epoch_recycle.
14 years ago
Samy Al Bahra 875d070814 ck_epoch: Remove debug output, update comments.
14 years ago
Samy Al Bahra 386f3647cb x86_64: Remove workaround for Opteron errata, other minor clean-up.
14 years ago
Samy Al Bahra b882517d5e PPC64: Complete port, add binary write-only operations.
14 years ago
Samy Al Bahra fb25458121 ck_barrier: Clean up tournament barriers.
14 years ago
Samy Al Bahra 8b4f72057c ck_barrier: First round audit, tournament barriers next.
14 years ago
Samy Al Bahra 25f1fde7fa PPC64: Add fetch-and-add.
14 years ago
Samy Al Bahra f48a0c2480 PPC64: Add unary operations.
14 years ago
Samy Al Bahra cf4ee8c7a4 Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
Samy Al Bahra 5f2f69eebb Work-around strict aliasing issue.
14 years ago
David Joseph dff69e639d Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
David Joseph 64f6702a4c Implemented tournament and mcs barriers.
14 years ago
Samy Al Bahra 24abb2a3ac Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
Samy Al Bahra 90fee0d839 PPC64: Import minimal PPC64 port.
14 years ago
Samy Al Bahra a29a1c2a8c sparcv9: Whitespace change.
14 years ago
Samy Al Bahra 133e936744 sparcv9: Make use of CK_PR_FENCE macro.
14 years ago
Samy Al Bahra e1d33c467b ck_pr: Fix some strict aliasing issues and fix char neg.
14 years ago
David Joseph 480db1321c Implemented dissemination barriers.
14 years ago
Devon H. O'Dell e5a5d0e2b9 x86: Remove invalid comment about fixed bug.
14 years ago
Devon H. O'Dell ace2b787f5 x86: Implement ck_pr_load_32_2 in terms of movq
14 years ago
Samy Al Bahra ad85634188 Enable x86_32 port.
14 years ago
Devon H. O'Dell ccf002223c x86: fix btX functions
14 years ago
Devon H. O'Dell 0c8c054c0a x86: More PIC happiness
14 years ago
Samy Al Bahra 7c8ab13343 Some fixes for strict aliasing. Silence some warnings from clang.
14 years ago
Devon H. O'Dell 114e9c8ed5 x86: Fix typo missed in last merge somehow
14 years ago
Samy Al Bahra 5900adb424 Move ck_barrier.h into shared/static object. Add CK_CC_CACHELINE.
14 years ago
David Joseph 9ab7b7ae42 Fixed a bug with ck_barrier_combining_aux.
14 years ago
David Joseph 615e3ca47f Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
David Joseph 5e7073b9b7 Software tree combining barrier now supports an arbitrary number of threads per group.
14 years ago
Samy Al Bahra a462c89787 ck_sequence: Remove unnecessary load fence from seqlock.
14 years ago
Samy Al Bahra 3b63432d03 Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
Samy Al Bahra 09bfb13762 ck_barrier: Minor changes, reorganization.
14 years ago
Devon H. O'Dell 22142de58f Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
Devon H. O'Dell 18e1c646fa x86: Fix buglets
14 years ago
David Joseph ba3c908fc5 Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
David Joseph 8c24a60866 Implemented ck_barrier_combining.
14 years ago
Devon H. O'Dell 000eb80099 x86: Make things friendlier for PIC and non-PIC builds
14 years ago
Devon H. O'Dell 8818191ec0 x86: additional changes for support on 32-bit archs
14 years ago
Samy Al Bahra 66ebe1a874 Drop usage of CK_CC_PACKED, prefer natural alignment.
14 years ago
Samy Al Bahra b5680c42d8 Add sense-reversing centralized barrier.
14 years ago
Samy Al Bahra d3a033237a Avoid modulus for wrap-around calculation in ck_anderson.
14 years ago
David Joseph 2ff74dd51b Slight modification to ck_pr.h.
14 years ago
Samy Al Bahra 3c5b10722e Alphabetically order includes due to OCD.
14 years ago
David Joseph 041c5c8265 Added support for fixed width uints for all primitives in ck_pr.h. Added NEG_ZERO to ck_pr.h.
14 years ago
Samy Al Bahra b0f812296e Add feature flag for ck_pr_cas_32_value on SPARCv9.
14 years ago
Samy Al Bahra a915d3f9ad Add SLOT constants for ck_hp_stack.h.
14 years ago
Samy Al Bahra 809089d623 Revert "Commit additional x86 changes to make things work."
14 years ago
Devon H. O'Dell e7fd074b70 Merge branch 'master' of ssh://git.repnop.org/public/ck
14 years ago
Devon H. O'Dell 0e548375f5 Commit additional x86 changes to make things work.
14 years ago
Samy Al Bahra aa9f9b0892 Use ck_stdint.h rather than stdint.h, always.
14 years ago
Devon H. O'Dell d4c9641c83 API: add atomics for 32-bit x86 architectures
14 years ago
Samy Al Bahra bcaadcf094 Factor out some common utility functions.
14 years ago
Samy Al Bahra cbd30b2206 Initial import.
14 years ago