Samy Al Bahra
b3f374cb55
ck_epoch: Allow for deferral from callbacks.
...
This makes things much easier in cases where deferral is mixed
with other reclamation mechanisms such as reference counters.
10 years ago
Olivier Houchard
3aa63b3912
ck_rhs: Implement ck_rhs_apply, similarly to what has been done in ck_hs.
10 years ago
Samy Al Bahra
384e8048eb
whitespace: Remove extraneous lines.
10 years ago
Samy Al Bahra
744b525528
ck_hs: Account for deletions in apply accounting.
10 years ago
Samy Al Bahra
d6ba2a6273
whitespace: Sweeping whitespace changes.
...
Removing trailing whitespaces and newlines.
10 years ago
Samy Al Bahra
29db80432f
ck_hs: Remove redundant whitespace (whitespace).
10 years ago
Samy Al Bahra
d167c417a4
ck_hs: Merge post-insertion logic into one function.
10 years ago
Samy Al Bahra
bc0618e1b4
ck_hs: Add ck_hs_apply function for in-band mutation.
...
Allows for the application of a user-specified function to avoid
re-probe for get conditional put / delete and in-band mutation
use-cases.
10 years ago
Samy Al Bahra
84cd66b2ed
build: ck_rhs was not properly included in Makefile.
10 years ago
Olivier Houchard
20f082797f
ck_rhs: Change a check from == to >=
...
wanted_probe can't ever be > to map->probe_maximum, but static analyzers can't
know this, so consider it a potential bug.
10 years ago
Samy Al Bahra
fa7ab0760d
ck_rhs: Remove inline from put_internal.
11 years ago
Wez Furlong
9c6b95c4dc
add --with(out)?-pic configure options
...
This makes configure smell more like standard configure scripts and
easier for larger build systems to control the nature of the build.
When building non-pic, don't build the shared object, as a non-pic
shared object doesn't make a huge amount of sense.
11 years ago
Samy Al Bahra
b97b0021f9
ck_barrier: Just pass-through tournament barrier with only one participating thread.
11 years ago
Samy Al Bahra
8f0b88afeb
ck_rhs: Localized style(9) clean-up.
11 years ago
Samy Al Bahra
76e43825a7
Merge remote-tracking branch 'origin/cognet'
11 years ago
Olivier Houchard
efc88a5af5
ck_rhs: style(9)
11 years ago
Olivier Houchard
8f1ea8043b
ck_rhs: Use inlined functions instead of gruesome macros.
11 years ago
Samy Al Bahra
20b98dc271
ck_rhs: Additional clean-up.
11 years ago
Samy Al Bahra
ddab0f1820
ck_rhs: Remove unnecessary parentheses.
11 years ago
Samy Al Bahra
6d26a2b4da
ck_rhs: Move probe function to right namespace.
...
Sleep deprivation...
11 years ago
Samy Al Bahra
0e0fca638f
ck_rhs: Various clean-up.
11 years ago
User Doginou
eaff3ac2b3
ck_rhs: remove debugging printfs
11 years ago
User Doginou
59cedf10c6
ck_rhs: Add a read mostly mode.
...
Add a read-mostly mode, in which entries won't share cache lines with
associated datas (probes, probe_bound, etc).
This makes write operations slower, but make get faster.
11 years ago
Olivier Houchard
0f908f1e31
ck_hrs: Update probe_bound for every slot shifted.
...
In ck_rhs_do_backward_shift_delete(), find if any entry with the same hash
is stored further, and if not, update probe_bound for every entry being
shifted, instead of just doing it for the slot being emptied.
11 years ago
Samy Al Bahra
9d40e6b52f
ck_ht: Optimize ck_ht_gc for empty tables.
11 years ago
Samy Al Bahra
3339b2eb22
ck_hs: Optimize GC for empty sets.
11 years ago
Samy Al Bahra
1fe1ed1d60
ck_ht: Fix typo in ck_ht_gc for direct mode.
11 years ago
Olivier Houchard
e47caab029
ck_rhs: Increase CK_RHS_G from 2 to 1024, since it's used a lot more.
11 years ago
Olivier Houchard
bf686c0a42
ck_rhs: Add.
...
Introduce ck_rhs, a variant of ck_hs that uses the robin hood algorithm for
insertion, and backward shift delete for deletion.
11 years ago
Samy Al Bahra
c197b37df1
legal: Update Copyright statements.
11 years ago
Samy Al Bahra
92d662fa5e
ck_hs: Simplification of probe sequence limit.
11 years ago
Samy Al Bahra
2c2d7fab90
ck_hs: Tombstone probe limit modification is absolutely unnecessary.
...
Premature commit.
11 years ago
Samy Al Bahra
355bd611b4
ck_hs: Short-circuit more aggressively in put_unique.
11 years ago
Samy Al Bahra
afe696cc2f
ck_hs: Utilize probe bounds on write operations.
11 years ago
Samy Al Bahra
ec79ea0b2d
ck_hs: Use slot bound limit for ck_hs_fas operation.
11 years ago
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.
...
* Reset maximum value when doing full scan.
* Reset per-slot bounds to 0 when possible.
11 years ago
Samy Al Bahra
eb59f6ead5
ck_ht: Add CK_HT_WORKLOAD_DELETE flag.
...
This is a port of the hash set delete workload
hint.
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
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.
...
This allows for incremental reprobe to shorten over-all probe sequences
in delete heavy workloads.
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