Samy Al Bahra
ec2d225324
ck_epoch: add barrier_wait operation.
8 years ago
Samy Al Bahra
8580ccc580
ck_epoch: introduce synchronize_wait that allows blocking synchronize operation.
8 years ago
Samy Al Bahra
a25e073a2b
ck_epoch: allow record sharing and reentrancy for write-side operations.
8 years ago
Alexey Kopytov
5f1be5dc83
AArch64 LSE support.
...
Add a new configure option, --enable-lse, which is only effective for
the AArch64 architecture. When used, most ck_pr_* atomics will use Large
System Extensions instructions as per the ARMv8.1 specification, rather
then LL/SC instruction pairs.
8 years ago
Olivier Houchard
dae84bac06
ck_pr/aarch64: style.
8 years ago
Olivier Houchard
4425c94ef7
ck_pr/aarch64: Don't forget the "cc" and "memory" clobbers.
8 years ago
Olivier Houchard
02af290b85
ck_pr: Add an option to disable any double function
8 years ago
Olivier Houchard
2868848a2f
ck_pr/ppc: Get the right prototype for ck_pr_cas_ptr_value().
8 years ago
Olivier Houchard
5ae12a19d0
gcc/ck_pr: Try to make sure the compiler isn't unhappy about constness.
8 years ago
Olivier Houchard
1c9257af77
ck_pr: missed a few occurrences of stdbool.h that should be ck_stdbool.h.
8 years ago
Olivier Houchard
2159452170
ck_pr/aarch64: Use the right asm constraints.
...
We don't have to claim we will read the value from variables when we do not,
this was only done to work around a bug on some versions of gcc for arm
a while ago, hopefully this won't be needed here.
This should fix the (harmless) warnings described in issue #83 .
8 years ago
Olivier Houchard
7c456ca778
ck_pr/aarch64: That should be CK_PR_AARCH64_H, not CK_PR_ARM_H
8 years ago
Olivier Houchard
92aabcade0
ck_pr: First cut at an aarch64 native implementation.
...
This seems to survive a "make check" on a 48 cores arm64 board.
8 years ago
Olivier Houchard
9c072391cf
ck_pr/arm : We never defined CK_PR_CAS_S, so there's no need to undef it.
8 years ago
alfredo
bc594bf809
use __restrict__ under GCC to support both C++ and C
8 years ago
铁哥
4f01918cbb
Update ck_ring.h
...
fix bug
8 years ago
Roman Lebedev
1a10ab230e
ck_queue: update doc: no tail queue, add STAILQ description
...
Singly-linked tail queue description is taken from sys/queue.h
9 years ago
Samy Al Bahra
2686ca0223
ck_epoch: Bug fixes and performance improvements.
...
- ck_epoch_begin: Disallow early load of epoch as it leads to measurable
performance degradation in some benchmarks.
- ck_epoch_synchronize: Enforce barrier semantics.
9 years ago
Samy Al Bahra
80a9b6ff9c
epoch: Fix fat-finger that breaks epoch sections.
...
And this is why tests should also be validated against
fault injection.
9 years ago
Samy Al Bahra
ff23c2d3fd
ck_bitmap: Use CK_BITMAP_OFFSET.
9 years ago
Samy Al Bahra
7646fb624b
ck_pr: fence_memory now has strict semantics on TSO.
...
The old behavior was from the world before the great fence
refactor.
9 years ago
Samy Al Bahra
9893f12bcf
ck_ht: ck_hm not making it to next release, remove warning.
9 years ago
Samy Al Bahra
2e75aefc4a
ck_epoch: Allow for forward progress in concurrent epoch sections.
...
This work is derived directly from the work of John Esmet and Paul
Khuong ({jesmet,pkhuong}@appnexus.com) and PR34.
9 years ago
Samy Al Bahra
0d6d384f3f
ck_epoch: Cache associated epoch state machine in record.
...
This ends up removing arguments (and vector for error) for several
functions on the common path of ck_epoch.
9 years ago
Paul Khuong
f1302c4920
ck_ring: explicit casts to clarify the semantics of generic (pointer) dequeuing
9 years ago
Samy Al Bahra
52f42c4392
ck_pr: Add ck_pr_fence_acqrel.
...
Provides both acquire and release semantics.
9 years ago
Olivier Houchard
27fb1bc00f
ck: Reimplement a few libc headers, to make CK build when compiling in the
...
FreeBSD kernel.
9 years ago
Samy Al Bahra
4677de8473
ck_ring: [whitespace] Add comment to PROTOTYPE family.
9 years ago
Samy Al Bahra
fee4e7187b
ck_ring: Clean-up internal implementations.
...
Break out internal implementations to _mp and _sc variants from which
public interface is built on. Do not rely on macro. Adopt CK_CC_RESTRICT
instead of using restrict directly.
9 years ago
Samy Al Bahra
414ba224ca
ck_cc: Add FORCE_INLINE attribute and remove stale comments.
9 years ago
Samy Al Bahra
cc600e7d4f
ck_ring: Add MPMC and MPSC variants.
9 years ago
Samy Al Bahra
e88c91cdbd
ck_elide: Use CK_CC_INLINE instead of inline.
9 years ago
Olivier Houchard
37d94f4f4e
ck_pr/arm : Add load, store and CAS for double.
9 years ago
Michael Haberler
118cc8eae8
configure: detect git SHA, export as string CK_GIT_SHA in ck_md.h
...
this helps correlating tests by other people
9 years ago
Michael Haberler
ce7d26aad4
ck_mg.h: provide printable version tag as CK_VERSION
9 years ago
Olivier Houchard
c0c0b19716
configure: Add --platform and --use-cc-builtins
...
--platform let you set the platform, instead of relying on uname -m
--use-cc-builtins force the usage of gcc atomic builtins, instead of using the one provided by CK.
9 years ago
Michael Haberler
abc8e871af
arm/c++: cast arguments using CK_CPP_CAST
9 years ago
Michael Haberler
9911e46c7d
x86_64/c++: cast arguments using CK_CPP_CAST
9 years ago
Michael Haberler
a9005e55f1
c++: introduce CK_CPP_CAST to static_cast arguments
9 years ago
Olivier Houchard
d2ee99b7f4
ck_pr/arm : Tell the compiler to which "1" he should jump to.
9 years ago
Olivier Houchard
576e65fc74
ck_ht: Fallback to use 32bits values when 64bits load/store isn't supported.
...
That way we can use ck_ht on i386.
9 years ago
Samy Al Bahra
f6f02e8585
Merge pull request #54 from mhaberler/limits
...
ck_limits.h: assure UINT*_MAX ff are available in-kernel
9 years ago
Samy Al Bahra
35f9ff1ede
Merge pull request #53 from mhaberler/typeof
...
CK_PR_ACCESS: use __typeof__ instead of typeof
9 years ago
Samy Al Bahra
b039de2f2f
ck_cc: Add parenthesis to make default easier.
9 years ago
Michael Haberler
383eb139ff
ck_limits.h: assure UINT*_MAX ff are available in-kernel
...
this should work back to at least 3.5 kernels
9 years ago
Michael Haberler
ac1c170b29
CK_PR_ACCESS: use __typeof__ instead of typeof
...
this makes ck_pr.h safe to include in c++ with -std=c++11
9 years ago
Olivier Houchard
1c3501a524
ck_pr/arm : Don't try to build the 64bits version of CAS for armv6 either.
9 years ago
Olivier Houchard
005c06f9e2
ck_pr/arm: There's no need to force the use of r4, r5 and r6 anymore, this should fix issue #50
9 years ago
Olivier Houchard
b002ed5f11
ck_pr/arm: Don't use ldrexd/strexd if we're building for armv6.
9 years ago
Olivier Houchard
b202a8224a
ck_pr/arm: Rename ck_pr_[load|store]_64 to ck_pr_md_[load|store]_64, as it should have been done.
9 years ago