Michael Haberler
2d88ab5f56
documentation bug: ck_pr_cas* update to new_value, not original_value
9 years ago
Olivier Houchard
37d94f4f4e
ck_pr/arm : Add load, store and CAS for double.
9 years ago
cognet
7d35185fdd
Merge pull request #57 from mhaberler/master
...
build/ck.pc.in: fix expansion of PC_CFLAGS
9 years ago
Michael Haberler
42a581220a
build/ck.pc.in: fix expansion of PC_CFLAGS
9 years ago
Samy Al Bahra
3719347d3f
Merge pull request #56 from mhaberler/master
...
touchups: make ck_cohort pass with CORES=1, add CK_VERSION - printable version string
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
ac2a3ea3e7
configure: fix typo in PC_FLAGS pattern
9 years ago
Michael Haberler
ce7d26aad4
ck_mg.h: provide printable version tag as CK_VERSION
9 years ago
Michael Haberler
7d1e3a6723
regressions/ck_cohort: make it pass with CORES=1
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
cognet
a7cf4a4dab
Merge pull request #55 from mhaberler/machinekit
...
c++: introduce CK_CPP_CAST, apply to x86_64, arm
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
Samy Al Bahra
dfd8b2fb96
Merge branch 'master' of github.com:concurrencykit/ck
9 years ago
Samy Al Bahra
da4b956499
regressions/ck_ht: Remove dependency on ck_pr_add_64.
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
965cda8a21
configure: explicitely set -march for armv6 and armv7
9 years ago
Olivier Houchard
b002ed5f11
ck_pr/arm: Don't use ldrexd/strexd if we're building for armv6.
9 years ago
cognet
881e427d20
Merge pull request #48 from mhaberler/machinekit
...
unbreak configure --profile=.. , gitignore generated docs
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
Michael Haberler
73416888d1
configure: reorder custom profile handling until variables known
...
otherwise configure doesnt finish properly.
example:
CC=gcc ./configure --profile=arm
make
...
gzip: /doc/CK_ARRAY_FOREACH: No such file or directory
gzip: /doc/ck_array_buffer: No such file or directory
Makefile:161: recipe for target 'all' failed
make[1]: *** [all] Interrupt
Makefile:23: recipe for target 'doc' failed
9 years ago
Michael Haberler
c55f41893c
gitignore generated doc files
9 years ago
Samy Al Bahra
5f7cfaac9d
Merge pull request #41 from cota/for_samy2
...
ck_sequence: relax sequence increment from atomic to regular store
10 years ago
Emilio G. Cota
3f48bc39fb
ck_sequence: relax sequence increment from atomic to regular store
...
The atomicity of the sequence number's increment is unnecessary, since
there should be only one writer at any given time. Fix it by changing
it for a regular increment + store.
Signed-off-by: Emilio G. Cota <cota@braap.org>
10 years ago
Samy Al Bahra
3971541783
ppc: lwsync is the right thing for WB-memory.
...
We will expose a flag to enable isync.
10 years ago
Samy Al Bahra
360bee1013
regressions/ck_pr/fp: Remove redundant load.
10 years ago
Samy Al Bahra
41c1080f43
ck_bytelock: Fall-back to store_8 if FAS is unavailable.
10 years ago
Samy Al Bahra
c2ce635080
spinlock/ticket: Remove dead variable.
10 years ago
Samy Al Bahra
a5b4ca9ffc
ck_pr/ppc64: Use unsafe for ugly aliasing hack.
...
Once we migrate to using the wrappers, this ugliness won't be
necessary. Last argument can be macro-expanded instead.
10 years ago
Samy Al Bahra
93c3d452a2
regressions/ck_pr: Add fence_lock coverage to fast-path test.
10 years ago
Samy Al Bahra
b46703ec5c
regressions: Add stupid fast-path benchmark for fences.
...
This is far from comprehensive but needed for some upcoming
tests.
10 years ago
Samy Al Bahra
e693cb9afe
ck_*lock: Migrate all locking primitives to lock / unlock.
...
This only affects RMO. This adds stricter semantics for critical section
serialization. In addition to this, asymmetric synchronization primitives will
now provide load ordering with respect to readers.
This also modifies locked operations to have acquire semantics
(they're there for elision predicates, and this doesn't impact them
in any way). There are several performance improvements included in this
as well (redundant fence was removed from days of wanting to support
Alpha).
10 years ago
Samy Al Bahra
1537c8091d
ck_pr: Introduce ck_pr_fence_lock and fence_unlock.
...
These primitives are meant to be used in lock implementations
where control dependency ordering is sufficient to enforce
ordering of critical section. At the moment, this only affects
PPC. Currently, we rely on lwsync for entry into critical sections
which is insufficient. sync is rather heavy-weight, and assuming
we aren't falling victim into compiler re-ordering, isync should
be sufficient.
There is follow-up work to be done in ARM, as we may have cheaper
(but target-specialized) ISB-tricks for load-load ordering.
10 years ago
Samy Al Bahra
787cffe9c9
ck_pr/arm: store_load requires DMB.
...
Emit full synchronize for store_load.
10 years ago
Samy Al Bahra
b2407aa3f0
whitespace/mcs: Wrap to 80 columns.
10 years ago
Samy Al Bahra
7ffe069973
regressions/spinlock: Do not rely on RMW for counter update.
...
This makes it more likely to trigger load-store/store-load re-ordering
across critical sections.
10 years ago
Samy Al Bahra
060ef37e5e
whitespace/ck_bitmap: Fix minor typo in comments.
...
Urban Dictionary reveals a particular interpretation of exclusing.
10 years ago
Samy Al Bahra
d3867c2462
ck_barrier_dissemination: Fix incorrect assignment.
10 years ago
Samy Al Bahra
fd76f81b95
ck_barrier_dissemination: Acquire semantics are sufficient.
10 years ago
Samy Al Bahra
cc0fa78b8b
ck_barrier_centralized: Acquire semantics sufficient.
10 years ago
Samy Al Bahra
1d5beccd92
whitespace/ck_epoch: Additional column wrap.
10 years ago