Jaidev Sridhar
11f79b64f7
ck_swlock: cleanup
11 years ago
Jaidev Sridhar
d95c609090
Merge remote-tracking branch 'upstream/swlock' into ck_swlock
11 years ago
Jaidev Sridhar
b70a5479ca
ck_swlock: snapshot
11 years ago
Samy Al Bahra
217f7a2f32
ck_swlock: Load spin on write bit.
11 years ago
Samy Al Bahra
4d7f4fff6d
ck_swlock: Fix latch operation.
11 years ago
Samy Al Bahra
bbad068f5a
ck_swlock: Make latch operation write-biased.
11 years ago
Samy Al Bahra
e2f7df0f1d
ck_swlock: Various improvements.
...
- Remove recursive locks.
- Remove unnecessary fences.
- Add necessary fences.
- Simplify state machine.
11 years ago
Samy Al Bahra
66aee95dd1
Merge branch 'ck_swlock' of github.com:skjaidev/ck into swlock
...
Conflicts:
regressions/Makefile
11 years ago
Jaidev Sridhar
c246865ce7
ck_swlock: Removed comment
11 years ago
Jaidev Sridhar
4471ea2df8
ck_swlock: Acquire semantics
11 years ago
Jaidev Sridhar
e6feed1f89
ck_swlock: Rename lock field
11 years ago
Jaidev Sridhar
0f44d50e33
ck_swlock: Use single word for lock bits
11 years ago
Samy Al Bahra
411afc3c47
*lock: Simplify initialization semantics.
...
Compiler barrier used for backwards compatibility.
11 years ago
Samy Al Bahra
f3539396c2
*lock: Simply use compiler barrier on initialization.
11 years ago
Samy Al Bahra
b24a9af88a
ck_pflock: Migrate initializer to use compiler barrier.
11 years ago
Samy Al Bahra
722f526a0e
ck_tflock: Remove extraneous newline.
11 years ago
Samy Al Bahra
46042c7996
tflock: Task-fair reader-writer locks reference implementation.
11 years ago
Jaidev Sridhar
9ee4334e10
Merge remote-tracking branch 'upstream/master' into ck_swlock
...
Conflicts:
.gitignore
11 years ago
Jaidev Sridhar
15a0485c01
ck_swlock: make ck_swlock_recursive_write_unlatch() wait-free.
11 years ago
Samy Al Bahra
ca70ce684c
ck_swlock: Unlatch operation should be wait-free.
11 years ago
Jaidev Sridhar
27a79623a6
ck_swlock: Need to lock cache-line on write lock
11 years ago
Jaidev Sridhar
0ee31c1557
ck_swlock: Need barrier
11 years ago
Jaidev Sridhar
bf8779ab13
ck_swlock: Decrement n_readers in TATAS style loop.
11 years ago
Jaidev Sridhar
8646990847
Merge remote-tracking branch 'jsridhar-dev/ck_swlock' into ck_swlock
...
Conflicts:
include/ck_swlock.h
regressions/ck_swlock/validate/validate.c
11 years ago
Jaidev Sridhar
1f03809acb
ck_swlock: We shouldn't decrement n_readers when
...
ck_swlock_read_latchlocks observers a writer if the unlatch
operation sets n_readers to 0.
The unlatch operation now just unsets the latch bit, we can safely
decrement n_readers in ck_swlock_read_latchlocks().
+ Fixes to validation tests & ELIDE coverage.
11 years ago
Paul Khuong
f06a5c4a71
ck_bitmap: more bulk operations, less space, more tests
...
* new bulk rmw: intersection, intersection_negate (with complement),
* new bulk reads: empty, full, count, count_intersect
* ck_bitmap_iterator fixes: avoid out of bounds read on empty bitmaps,
and ck_bitmap_next is marginally faster on sparse bitmaps .
* less space: the bitmap itself is an array of unsigned int, which
eliminates alignment padding between the n_bit field and the bitmap.
* more unit tests.
11 years ago
Paul Khuong
96fdf1efbd
ck_cc: new bitwise ops
...
GCC and compatible compilers support ffs/ctz/clz/popcount. Expose that
in ck_cc and default to slow but portable software emulation.
11 years ago
Samy Al Bahra
bfc9837d4f
ck_swlock: Whitespace change.
11 years ago
Samy Al Bahra
63b79c7b1e
ck_swlock: Fix Copyright ordering.
11 years ago
Samy Al Bahra
6fe2bba224
ck_swlock: Fix-up TATAS loop.
11 years ago
Samy Al Bahra
a1daff18ea
ck_swlock: Switch to TATAS style loop for latch operations.
11 years ago
Samy Al Bahra
82f33b3fe9
ck_swlock: First round fixes for ck_swlock.
...
- Add necessary memory barriers.
- Style conformance.
11 years ago
Jaidev Sridhar
9732e2bdb3
ck_swlock: A single writer rwlock.
...
This lock is copy-safe when the latch operations are used.
Simplified write side operations lead to lower latencies than ck_rwlock
for single writer workloads.
11 years ago
Samy Al Bahra
176dfce5c3
ck_rwlock: Fix conflict.
...
ck_swlock will be a copy-safe single-writer multi-reader lock that
will meet our requirements.
11 years ago
Samy Al Bahra
e2913ab9c0
Revert "ck_rwlock: Migrate to 32-bit primitives and add a write_latch operation."
...
This reverts commit 210b724061
.
Conflicts:
include/ck_rwlock.h
11 years ago
Samy Al Bahra
6ccfb84d81
Revert "ck_rwlock: Use sub for unlatch operation."
...
This reverts commit b7c3c8a43d
.
11 years ago
Samy Al Bahra
ed476a617c
Revert "ck_rwlock: Clear reader bits on unlatch operation."
...
This reverts commit 7f945460bc
.
11 years ago
Samy Al Bahra
cdfac8213f
Revert "ck_rwlock: Re-observe latch bits if necessary."
...
This reverts commit fa28622386
.
11 years ago
Samy Al Bahra
88d323f40d
Revert "ck_rwlock: Acquire semantics for ordering on latch bits."
...
This reverts commit 2b567320de
.
11 years ago
Samy Al Bahra
9ebd19a124
Revert "ck_rwlock: Add ck_rwlock_read_latchlock operation."
...
This reverts commit bc7ebc62eb
.
11 years ago
Samy Al Bahra
cf097db790
Revert "ck_rwlock: Ignore latch bits on write lock operation."
...
This reverts commit 8173b937bf
.
11 years ago
Samy Al Bahra
e2bd885953
Revert "ck_rwlock: Re-organization of write-side operations and latch support for write_trylock."
...
This reverts commit ab22fda4e7
.
11 years ago
Samy Al Bahra
9aad0125af
Revert "ck_rwlock: Additional re-organization of write-side functions."
...
This reverts commit d9b86d2d89
.
11 years ago
Samy Al Bahra
d3a7adaf8c
Revert "ck_rwlock: Additional reorganization."
...
This reverts commit 56de32fffd
.
11 years ago
Samy Al Bahra
2a701163eb
ck_rwlock: Ditch ck_rwlock latch for ck_swlock.
11 years ago
Samy Al Bahra
56de32fffd
ck_rwlock: Additional reorganization.
11 years ago
Samy Al Bahra
d9b86d2d89
ck_rwlock: Additional re-organization of write-side functions.
11 years ago
Samy Al Bahra
ab22fda4e7
ck_rwlock: Re-organization of write-side operations and latch support for write_trylock.
11 years ago
Samy Al Bahra
8173b937bf
ck_rwlock: Ignore latch bits on write lock operation.
11 years ago
Samy Al Bahra
bc7ebc62eb
ck_rwlock: Add ck_rwlock_read_latchlock operation.
...
This avoids degradation on read_lock path for use-cases not
requiring latch semantics.
11 years ago