Olivier Houchard
0f7827f479
ck_pr: Prettify the arm bits.
...
gcc is smart enough to use an even register for 64bits operations, and provide
a way to access the first and the second words, so use that instead of
hardcoding registers.
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
e39223da44
ck_sequence: Constify read-only operations.
10 years ago
Samy Al Bahra
d6ba2a6273
whitespace: Sweeping whitespace changes.
...
Removing trailing whitespaces and newlines.
10 years ago
Samy Al Bahra
01aa93f05a
regressions/ck_hs: Additional ck_hs_apply coverage.
10 years ago
Samy Al Bahra
40c7a1f24c
ck_bitmap: Wrap long lines (style).
10 years ago
David Joseph
1d7057eb58
ck_bitmap: add a ck_bitmap_bts function.
...
Signed-off-by: Samy Al Bahra <sbahra@backtrace.io>
10 years ago
Marcin Juszkiewicz
de0e582eba
Add ck_pr_fence_acquire/release to generic GCC version
...
Signed-off-by: Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
10 years ago
Samy Al Bahra
b45f94a611
Merge branch 'master' of github.com:sbahra/ck
11 years ago
Bruce Spang
a514e81209
Fix typo in ck_rhs.h
...
This prevented use of both ck_hs and ck_rhs in the same file.
11 years ago
Samy Al Bahra
be11635b12
ck_bitmap: Consistent Copyright.
11 years ago
Samy Al Bahra
cd17fed7dc
ck_pflock: Migrate to acquire / release fences.
11 years ago
Samy Al Bahra
6b2f5130f7
ck_swlock: Whitespace changes.
11 years ago
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