Commit Graph

276 Commits (dca8e95f519ed599b72fea4e223dcd0b59dfb2d1)

Author SHA1 Message Date
Samy Al Bahra 822b842d1e ck_ht: Fix bug in ck_ht_gc and backport garbage collector improvements from ck_hs.
11 years ago
Samy Al Bahra e8969ad66f ck_hs: More aggressive clean-up in ck_hs_gc.
11 years ago
Samy Al Bahra eb59f6ead5 ck_ht: Add CK_HT_WORKLOAD_DELETE flag.
11 years ago
Samy Al Bahra c4849aeaae ck_epoch: Remove redundant e + 2 observation.
11 years ago
Samy Al Bahra 3e47af544d ck_hs: Silence false positive warning from older GCC versions.
11 years ago
Samy Al Bahra aa0c303554 ck_ht: Add ck_ht_gc functionality, similar to ck_hs_gc.
11 years ago
Samy Al Bahra 554f11229e ck_ht: Drop usage of ck_ht_t.
11 years ago
Samy Al Bahra 8d6de575cc ck_ht: Style changes.
11 years ago
Samy Al Bahra 4954816d61 ck_ht: Predict empty slot to be likely on grow.
11 years ago
Samy Al Bahra d204976c7a ck_ht: Backport probe sequence from ck_hs.
11 years ago
Samy Al Bahra ab1bd7688b ck_internal: Use bsf for bsf_64 if available as a built-in.
11 years ago
Samy Al Bahra f759f56dee ck_hs: Style change.
11 years ago
Samy Al Bahra 6d0b9fc4b7 ck_hs: Explicitly disallow tables of size smaller than L1 probe length.
11 years ago
Samy Al Bahra abd504823d ck_hs: Minor change for sake of readers.
11 years ago
Samy Al Bahra 0d6a0508cc ck_hs: Allow for amortization and partial rebuild in ck_hs_gc.
11 years ago
Samy Al Bahra 69a3047012 ck_hs: Enable ck_hs_gc for resequencing in absence of DELETE workload.
11 years ago
Samy Al Bahra 956904c2ef ck_hs: Enable necessary probe sequence optimization in ck_hs_gc.
11 years ago
Samy Al Bahra 895208d56f ck_hs: Re-detect global maximum in GC and fix typo in remove.
11 years ago
Samy Al Bahra cc6a7bf7bd ck_hs: Remove useless mask in ck_hs_gc.
11 years ago
Samy Al Bahra f7eff4d61b ck_hs: Add ck_hs_gc, mechanism for tombstone clean-up.
11 years ago
Samy Al Bahra 5d4f9ae23d ck_hs: Add ck_hs_rebuild operation.
11 years ago
Samy Al Bahra 25873e2641 Merge branch 'master' of git.concurrencykit.org:ck
11 years ago
Samy Al Bahra e87a4b78c9 ck_hs: Bound delete to local maxim.
11 years ago
Samy Al Bahra 2ad920cd85 ck_hs: Add improved support for delete-heavy workloads.
11 years ago
Samy Al Bahra 84943b5787 ck_ht: Remove remnants of MPMC implementation from write-side probe.
11 years ago
Samy Al Bahra fa9f3540fe ck_hs: Various fixes for pointer comparison.
11 years ago
Samy Al Bahra 7355d0ea49 ck_internal: Fix bsf behavior.
11 years ago
Samy Al Bahra f74c0eca62 ck_hs: Saturate to quadratic probe from double hashing.
11 years ago
Samy Al Bahra a3532d52ce ck_hs: Add ck_hs_put_unique function for fast-path unique inserts.
11 years ago
Samy Al Bahra 2dacc08443 ck_hs: Bump back to default linear probe length.
11 years ago
Samy Al Bahra 6e7ac5bee6 ck_hs: Increase linear probe factor to twice what it was.
11 years ago
Samy Al Bahra 0610a0d0a8 ck_bag: Drop support for this data structure.
11 years ago
Samy Al Bahra cfd8fd8d4b ck_ht: Fix alignment issues in MurmurHash.
11 years ago
Samy Al Bahra de9220ce16 ck_array: Change semantics of put_unique return values.
11 years ago
Samy Al Bahra 61120e05e1 ck_array: Add AppNexus to Copyright.
11 years ago
Samy Al Bahra 493360636b ck_array: Additional regressions coverage and code clean-up.
11 years ago
Samy Al Bahra 7a49725b7f ck_array: Fix use-after-free on transactional put.
11 years ago
Samy Al Bahra 42aa90de33 ck_array: Reallocation on producer-path requires deferral.
11 years ago
Samy Al Bahra a7cb0f9bbb ck_array: Add ck_array_initialized functionality.
11 years ago
Samy Al Bahra 2db9de633f ck_array: Simple eliminating SPMC dense array for fast iteration.
11 years ago
Samy Al Bahra 6c4074aaf3 ck_ht: Fix ck_ht_hash inline behavior.
12 years ago
Samy Al Bahra 29a84b47b3 ck_hs: Add ck_hs_move operation.
12 years ago
Samy Al Bahra 68ec467ca8 ck_hs: Branch simplification on fast path.
12 years ago
Samy Al Bahra 6587bfa51d ck_hs: Universally use slot as unit for probe limit optimization.
12 years ago
Samy Al Bahra 1cdbb7b7bf ck_hs: Remove unused return value from ck_hs_fas.
12 years ago
Samy Al Bahra 693ad68b86 ck_hs: Existence requires generation check.
12 years ago
Samy Al Bahra 86619b3c38 ck_hs: Add atomic swap operation (requires existence).
12 years ago
Samy Al Bahra 6c7781d8c3 ck_hs: Simplify marshal path for inserted pointer.
12 years ago
Samy Al Bahra 58af5c3072 ck_epoch: Elaborate on ck_epoch_register load fence.
12 years ago
Samy Al Bahra 4492325ccc ck_hs: Migrate to ck_pr_fence_X_Y.
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
Samy Al Bahra c6ff128510 ck_hs: Move replacement comment to ck_hs_set.
12 years ago
Samy Al Bahra 8bad50240d ck_hs: Eliminate pointless legacy branch.
12 years ago
Samy Al Bahra bdadd7bf6b whitespace: More style fixes.
12 years ago
Samy Al Bahra b4e9045c9b ck_barrier_tournament: Remove old/stale comments.
12 years ago
Samy Al Bahra 7c56d73433 ck_barrier_mcs: Style clean-up.
12 years ago
Samy Al Bahra 3587d8e51b build: Remove debug left-over.
12 years ago
Samy Al Bahra e6e97f3ae5 build: Out-of-source builds for primary CK distribution.
12 years ago
Samy Al Bahra 1a0b4122ec ck_hs: Re-use tombstones near load factor.
12 years ago
Samy Al Bahra 2116dfee3c ck_ht: Increment n_entries on empty and tombstone insertions.
12 years ago
Samy Al Bahra 9a0d97c6ef ck_ht: Set previous entry to empty on tombstone insert.
12 years ago
Samy Al Bahra 452cab1ef6 ck_ht: Return snapshot of object IFF we are not at end of probe sequence.
12 years ago
Samy Al Bahra 5a4dc765d8 ck_ht: Remember to set cursor to NULL on probe end.
12 years ago
Samy Al Bahra 1631f2ff84 ck_ht: Enable aggressive re-use of tombstones.
12 years ago
Samy Al Bahra 33a9222923 legal: Update Copyright statements.
12 years ago
Samy Al Bahra 0631e396e0 ck_backoff: Replace ck_backoff_eb with ck_backoff_gb.
12 years ago
Samy Al Bahra 3cc43c4229 ck_epoch: Skip current record if it is marked as free.
12 years ago
Samy Al Bahra 0c56b1b8c6 ck_epoch: Remember to mark entry availability on unregister.
12 years ago
Samy Al Bahra 05f36bc476 ck_internal: Follow-up to previous commit.
12 years ago
Samy Al Bahra a7d79970e7 ck_{ht,internal}: Explicitly use unsigned for bitwise operations.
12 years ago
Samy Al Bahra 749a40159d ck_hs: Fix ck_hs_next to check key value.
13 years ago
Samy Al Bahra e5d701ca79 ck_hs: Whitespace changes.
13 years ago
Samy Al Bahra 51516312ce ck_hs: Clear bits in iterator.
13 years ago
Samy Al Bahra e9ca398123 ck_hs: Add ck_hs_destroy.
13 years ago
Samy Al Bahra 6fded0c0a1 ck_hs: Silence false positives from GCC.
13 years ago
Samy Al Bahra f2dfd828c3 Merge pull request #7 from abelmathew/master
13 years ago
Samy Al Bahra ece2895e9e ck_hs: Drop ck_hs_hash_t abstraction.
13 years ago
Abel Mathew 00d0320767 ck_bag: Fix usage of CK_MD_VMA_BITS.
13 years ago
Samy Al Bahra b4ab193944 ck_hs: Re-order map elements according to reader use.
13 years ago
Samy Al Bahra adaf20b31c ck_ht: Add ck_ht_stat function.
13 years ago
Samy Al Bahra 0f5e540afa ck_hs: Lock-free set loosely modeled after ck_ht.
13 years ago
Abel Mathew 9ff3c2d017 Merge remote-tracking branch 'upstream/master'
13 years ago
Abel Mathew 981e0a49a2 ck_bag: Use CK_MD_VMA_BITS
13 years ago
Samy Al Bahra 01cd3a0256 build: Drop ck_hs, not ready to merge.
13 years ago
Samy Al Bahra 90713046e9 ck_ht: Use CK_MD_VMA_BITS.
13 years ago
Samy Al Bahra 5fad753d6e ck_epoch: No need for the fence on synchronize for TSO.
13 years ago
Samy Al Bahra c45098b21b ck_epoch: Emit fence instructions for TSO, do not emit for recursive calls.
13 years ago
Samy Al Bahra dac91d1edd ck_epoch: Short-circuit on scan block if epoch tick is encountered.
13 years ago
Samy Al Bahra 1c4183cf44 ck_epoch: Reload epoch value on scan failure.
13 years ago
Samy Al Bahra 7821be8a60 ck_epoch: If all threads are inactive, then we are at a grace period.
13 years ago
Samy Al Bahra 5d013028d9 ck_epoch_poll: Update writer epoch snapshot on poll.
13 years ago
Samy Al Bahra 8a9f29a354 ck_epoch: Add comment to clarify short-circuit logic.
13 years ago
Samy Al Bahra 07050dc044 ck_epoch: Short-circuit scan step if epoch was changed from underneath us.
13 years ago
Samy Al Bahra eec4093cdb ck_epoch: Goal represents a full epoch generation in barrier.
13 years ago
Samy Al Bahra 81ba687e14 ck_epoch: Add additional scan step, we only need to observe e + 2.
13 years ago
Samy Al Bahra 1f89848a51 ck_epoch: Fix typo in comment.
13 years ago
Samy Al Bahra 1296a611fd ck_epoch: Only need three. Issue I found only exists in literature.
13 years ago
Samy Al Bahra 0efd4dfe21 ck_epoch: Update comment to reflect my findings.
13 years ago
Samy Al Bahra 57104fcde7 ck_epoch: Change to epoch semantics, bump grace period to 4.
13 years ago
Samy Al Bahra 98d902b024 ck_epoch: Barrier placement for RMO.
13 years ago
Samy Al Bahra c274e8bc54 ck_epoch: Major redesign and rewrite.
13 years ago
Samy Al Bahra 86411b9be8 ck_barrier_centralized: Unconditionally execute full barrier.
13 years ago
Samy Al Bahra 7dda1edecf ck_barrier: Serialize centralized and combining barriers.
13 years ago
Samy Al Bahra 9e29788dde ck_ht: Move ifdef block.
13 years ago
Samy Al Bahra e5cd9fa322 ck_ht: key_length/key are only needed if PP is enabled.
13 years ago
Samy Al Bahra ab310bfdb4 ck_hp: Linearize registration and recycling.
13 years ago
Samy Al Bahra 94475b85be ck_epoch: Remove redundant load fence.
13 years ago
Samy Al Bahra a30a89817c ck_epoch: Follow-up to previous commit
13 years ago
Samy Al Bahra acde423ce8 ck_epoch: Adopt RMO ck_pr semantics.
13 years ago
Samy Al Bahra 1a8b3db453 ck_ht: Various performance improvements.
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 72a8adb599 ck_ht: Add support for per-hash-table allocator.
13 years ago
Samy Al Bahra a832237b0a ck_ht: We do not need to reprobe for direct tables on a per-slot basis.
13 years ago
Samy Al Bahra 500d36cdb8 ck_ht: Fix race condition associated with no pointer packing variant.
13 years ago
Samy Al Bahra 18d74f55a1 ck_ht: Add support for user-specified hash functions.
13 years ago
Samy Al Bahra 46a88705c4 ck_hp: Include missing ck_backoff.h include.
13 years ago
Samy Al Bahra e074a089be ck_epoch: Include missing ck_backoff.h file.
13 years ago
Samy Al Bahra 42615a234f ck_bag: Remove trailing whitespace.
13 years ago
Samy Al Bahra ef3e6f394b ck_ht: Remove trailing whitespace.
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 2b2e44203b Merge pull request #5 from abelmathew/master
13 years ago
Abel Mathew 6a6f1d53c8 ck_bag: Validate block_size > block_overhead during ck_bag_init.
13 years ago
Abel Mathew 2e921847ab ck_bag: Free unoccupied blocks in ck_bag_destroy.
13 years ago
Abel Mathew bbc6f584fd ck_bag: Various Bug Fixes and Cleanup.
13 years ago
Samy Al Bahra 3cf265cba0 all: Strip trailing whitespaces.
13 years ago
Abel Mathew 854ede8cfe ck_bag: Fix overallocation bug.
13 years ago
Abel Mathew 3f99a7c4f4 ck_bag: rename n_entries_bag to n_cachelines, ck_bag_init. Add validation for bag->info.max on x86_64
13 years ago
Abel Mathew eaa8ad1d4d ck_bag: Various bug fixes.
13 years ago
Samy Al Bahra f1293b379b ck_bag: Insert into empty list for non-x86_64.
13 years ago
Samy Al Bahra 28eadc7b56 ck_bag: We use the next pointer.
13 years ago
Samy Al Bahra 2a3d5a691e ck_bag: Additional portability fixes.
13 years ago
Samy Al Bahra 617be15523 ck_bag: Fix build error, other non-x86_64 issues.
13 years ago
Samy Al Bahra a4463510e8 ck_bag: Fix for non-x86_64 targets.
13 years ago
Samy Al Bahra 07b41324d8 ck_bag: Add to built library.
13 years ago
Samy Al Bahra aa9ec2128c ck_bag: Add necessary ck_stdint include.
13 years ago
Samy Al Bahra efe592cafa ck_bag: Operating on pointer to NULL is undefined behavior.
13 years ago
Samy Al Bahra a80ade3eef ck_bag: Support user-defined block size (in units of cache lines).
13 years ago
Samy Al Bahra f63e2ea8fc ck_bag: Do not defer destruction in ck_bag_destroy.
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 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 fb5d9331e2 ck_ht: Add ck_ht_entry_empty function.
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().
13 years ago