Olivier Houchard
61bb774b56
doc: Document hclh.
...
Proactive pointy hat to: cognet
11 years ago
Samy Al Bahra
b784a846cd
build: Remove unnecessary status indicator from configure.
...
Pointy hat to Olivier.
11 years ago
Samy Al Bahra
c4849aeaae
ck_epoch: Remove redundant e + 2 observation.
...
This inefficiency was introduced in the overhaul of
the ck_epoch API.
Synchronize is executed with respect to e. At e + 1,
references can only exist to objects logically deleted
at e or e + 1. At e + 2, however, references can only exist to
objects logically deleted at e + 1 and e + 2. In the case that a
thread observes an out of date epoch value, an increment to the
global epoch would fail as the active bit is ordered with respect
to the memory barrier in synchronize. In the case that a protected
section begins after the memory barrier, then it is guaranteed
to not acquire the hazardous reference.
This does not change granularity of deferral lists, however.
There is still a requirement of 3 deferral lists on the fast path
(4 in ck_epoch for fast path purposes) as at any moment, any given
deferral list for value e can contain references to objects with
active references from both e and e - 1.
11 years ago
Olivier Houchard
b17706f967
hclh: Assert my copyright.
11 years ago
Samy Al Bahra
2f2558b21b
build: Add spinlocks to install target.
11 years ago
Samy Al Bahra
df571ad331
ck_spinlock: Migrate lock implementations to directory.
11 years ago
Samy Al Bahra
1ecb37b28f
Merge branch 'cognet' of git.concurrencykit.org:ck
11 years ago
Olivier Houchard
0050e5bb4a
configure: Add a generic way to detect VMA bits.
...
In configure, when we're not running on a system that does provide the number
of virtual bits available, for x86_64, try to compile a program that uses
cpuid to get the information.
11 years ago
Samy Al Bahra
fdc2061935
regressions/ck_ring: Always treat buffer as opaque.
11 years ago
Samy Al Bahra
f9ae05b15a
regressions/ck_ring: Drop template variants.
11 years ago
Samy Al Bahra
b6a1914085
ck_ring: Prefer treatment of ck_ring_buffer_t as an opaque type.
11 years ago
Samy Al Bahra
b6f085a62e
ck_ring: Minor style change.
11 years ago
Samy Al Bahra
e6c0ef01a5
ck_spinlock: Revert previous change, do not splice too early.
11 years ago
Olivier Houchard
2b08211d60
regressions: Mark the core variable as unused, to appease the compiler.
11 years ago
Samy Al Bahra
e8b26ec212
ck_spinlock: Minor readability changes to ck_hclh.
11 years ago
Samy Al Bahra
c219593967
ck_spinlock: First round of improvements to ck_hclh.
...
* Drop unnecessary volatile stores.
* Use more expressive ck_pr_fence_X_Y semantics.
11 years ago
Samy Al Bahra
0e5ce1aae7
ck_spinlock: Simple whitespace changes (wrap long lines).
11 years ago
Olivier Houchard
0f92cbab08
ck_spinlock: Commit the missing HCLH bits.
11 years ago
Samy Al Bahra
3e47af544d
ck_hs: Silence false positive warning from older GCC versions.
11 years ago
Samy Al Bahra
ce7533e98a
regressions/ck_ht: Use random seed for ck_ht_gc.
11 years ago
Samy Al Bahra
6818335303
regressions/ck_ht: ck_ht_gc coverage.
11 years ago
Samy Al Bahra
aa0c303554
ck_ht: Add ck_ht_gc functionality, similar to ck_hs_gc.
...
This allows for incremental reprobe to shorten over-all probe sequences
in delete heavy workloads.
11 years ago
Olivier Houchard
e5f7639962
ck_spinlock: Add a HCLH implementation.
11 years ago
Olivier Houchard
3edb523da5
ck_ring: Move the ring buffer outside of the ck_ring_t
...
Remove the ring buffer from the struct ck_ring, it is now required to
explicitely pass the ring buffer for enqueue/dequeue. That can be useful for
systems with multiple address spaces.
11 years ago
Samy Al Bahra
554f11229e
ck_ht: Drop usage of ck_ht_t.
11 years ago
Olivier Houchard
4c878ff1de
regressions: Implement aff_iterate() for FreeBSD.
11 years ago
Olivier Houchard
b553f42fae
Reduce the memory size used for testing ck_fifo_mpmc, to make it easier for
...
low-memory machines (such as your typical arm hardware).
Approved by: mux (mentor)
11 years ago
Samy Al Bahra
7b49b3babf
doc: Add ck_hs_rebuild references.
11 years ago
Samy Al Bahra
2fe939c99d
doc: Add ck_hs_rebuild manual page.
11 years ago
Samy Al Bahra
30c05c49bc
doc: Add references to ck_hs_put_unique.
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
7865d65fd3
doc: Add ck_hs_put_unique manual page.
11 years ago
Samy Al Bahra
b778a32b0e
Merge branch 'master' of git.concurrencykit.org:ck
11 years ago
Samy Al Bahra
f759f56dee
ck_hs: Style change.
11 years ago
Samy Al Bahra
566d0c68be
regressions/ck_hs: Move sliding window.
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
3c1c91bd25
regressions: Update ck_hs_gc coverage.
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
f085d75ff6
regressions/ck_hs: Performance coverage.
11 years ago
Samy Al Bahra
5f6cbabc4b
regressions/ck_hs: Serial coverage for rebuild.
11 years ago
Samy Al Bahra
f7eff4d61b
ck_hs: Add ck_hs_gc, mechanism for tombstone clean-up.
...
This is treated as an explicit garbage collection step
which will block writers.
11 years ago
Samy Al Bahra
5d4f9ae23d
ck_hs: Add ck_hs_rebuild operation.
...
This operation is short-hand notation for rebuilding
a hash table. This rebuild can occur in the presence
of concurrent readers and will require twice the amount
of memory of the existing hash table until completion.
11 years ago