Samy Al Bahra
f00aaa977b
build: add --disable-sse option for x86.
...
This option allows user-space to disable explicit usage of SSE+ instructions
such as sfence, lfence and mfence on x86.
7 years ago
Samy Al Bahra
5517381929
freebsd/x86: Allow and override fence instructions to match kernel environment.
...
This is mostly based off of Olivier's (cognet@) work. I was considering
importing in __mbk but realistically, doesn't warrant the refactor.
7 years ago
Samy Al Bahra
064340dd62
.gitignore: Add freebsd/ck_md.h.in.
7 years ago
Samy Al Bahra
a2d1743476
[whitespace] gcc/x86/ck_pr: closing comment for UMP ifdef block.
7 years ago
Samy Al Bahra
0d7c1e78f3
freebsd/ck_md: md implementation for FreeBSD kernel.
7 years ago
Samy Al Bahra
53ec510d18
build: Working towards release 0.7.0.
7 years ago
Samy Al Bahra
05f54c04da
configure: generate the FreeBSD header file as well.
7 years ago
Samy Al Bahra
14e51eaa91
ck_pr/sparcv9: use the more stringent #MemIssue barrier.
...
This is to match the semantics of the FreeBSD kernel.
7 years ago
Samy Al Bahra
4042fea5a8
ck_pr/x86_64: cleanup documentation around semantics.
...
A note has also been added around some ambiguity with respect to WC
memory and relaxed memory semantics (so, heavier-weight mfence semantics
for strict acquire-release interface).
All fences related to atomic operations have been removed as they were
just unnecessary, and so, confusing.
7 years ago
Samy Al Bahra
a8b9f7f411
regressions: add ck_pr_fence for basic validation of fence definitions.
7 years ago
Samy Al Bahra
a15873e006
[whitespace] ck_md.h.in: Remove space before newline.
7 years ago
Samy Al Bahra
626032ef2e
build: Add OS X as a target for Travis.
7 years ago
Samy Al Bahra
c9cb710cca
tools/travis: Set executable bit for Travis.
7 years ago
Samy Al Bahra
2d6cf81c95
build: Add simple travis script.
...
Requires extension for freestanding build.
7 years ago
Olivier Houchard
005c715387
Merge pull request #109 from akopytov/gh-108
...
Quiet implicit fallthrough compiler warnings.
7 years ago
Alexey Kopytov
17103498b8
Quiet implicit fallthrough compiler warnings.
...
Annotate fall through cases in switch statements where that behavior is
desirable to quiet compiler warnings with the -Wimplicit-fallthrough
flag. The annotation format used is supported by both GCC and Clang.
Fixes #108 .
7 years ago
Aidan Cully
5f6834b693
ck_queue: fix logic inversion in CK_STAILQ_CONCAT.
...
STAILQ_CONCAT transcription error lead to inversion of logic. It would only work for empty lists.
7 years ago
Samy Al Bahra
3b86f1a4fd
[whitespace] regressions: Fix repeated typo in license header.
7 years ago
Samy Al Bahra
3da2793b6e
Merge branch 'master' of ssh://github.com/concurrencykit/ck
7 years ago
Samy Al Bahra
c2e76002ae
[whitespace] ck_hs: Remove C++ style comment.
7 years ago
Samy Al Bahra
123bebba62
doc/ck_epoch_register: Update to include third argument.
...
Reported by Matt Macy.
7 years ago
Riley Berton
0d1e86d18e
ck_hs: add ck_hs_next_spmc
...
Memoize the map into ck_hs_iterator_t to make iteration more safe in the face of growth or shrinkage of the map. Tests for same.
Work from Riley Berton.
7 years ago
Samy Al Bahra
4a8957f727
[whitespace] ck_ring: style conformance.
8 years ago
Olivier Houchard
316e283e16
Merge pull request #102 from pkhuong/ck_ring_mp
...
ck_ring.h: make _ck_ring_enqueue_mp less failure happy
8 years ago
Paul Khuong
44a6527f33
ck_ring.h: make _ck_ring_enqueue_mp less failure happy
...
With preemption, it is possible for _ck_ring_enqueue_mp to have a
snapshot of p_head so stale with respect to the later snapshot of
c_head that a comparison modulo (small) ring size will erroneously
conclude that the ring is full.
Detect that case and retry rather than failing. We only retry when
the enqueuers have made global forward progress, so the first loop
is as lock-free as it ever was.
Bonus: the new condition should be marginally faster.
8 years ago
Olivier Houchard
b87563b7bd
configure: Fix usage with busybox.
...
expr as provided by busybox doesn't know about --, while most other
implementations require it, or it'd try to interpret --prefix=whatever as
one of its own options. To fix this, we just remove the first two characters
of the option before calling expr, rendering -- useles.
8 years ago
Samy Al Bahra
15529b2372
ck_ht_hash: fix misuse of preprocessor macro.
8 years ago
Samy Al Bahra
a6861b6add
build/ck.build.s390x: Explicitly define s390x.
...
This is sticking to the idiom in Concurrency Kit, to safe-guard against
freestanding (or non-Linux) targets with different conventions.
8 years ago
Samy Al Bahra
8b617bb728
ck_pr: add support for s390x.
...
Add s390x support. Neale Ferguson is the architecture maintainer.
8 years ago
Samy Al Bahra
8343bd4af8
spinlock/dec: backoff until lock state transition in lock_eb.
...
This fixes an issue caught by Changwoo Min (@multics69).
8 years ago
Neale Ferguson
52809f0039
Minor editorial updates and update CFLAGS for production use
8 years ago
Neale Ferguson
2c01ecec64
Add s390x support
8 years ago
Olivier Houchard
33e5698b01
configure: Add support for msys2.
...
Recognize msys2 systems, based on a patch provided in issue #96 by
ckkashyap.
8 years ago
Samy Al Bahra
6b141c0bdd
build: prepare 1.0.0 tag.
8 years ago
Samy Al Bahra
362f58e6b6
regressions: update ck_epoch usage.
8 years ago
Samy Al Bahra
db4554c686
regressions: update ck_epoch usage.
8 years ago
Samy Al Bahra
0ce7c1efef
ck_epoch: remove overzealous padding.
...
Pack shared linkage together in epoch record. Remove unnecessary
padding in epoch instance.
8 years ago
Samy Al Bahra
123c91a62f
epoch: update delref prototype.
8 years ago
Samy Al Bahra
87196ff37f
Merge pull request #93 from concurrencykit/res
...
ck_epoch: merge in res branch.
8 years ago
Samy Al Bahra
ffe9cbf9ca
ck_epoch: ck_epoch_end returns true if forward progress has been made.
8 years ago
Samy Al Bahra
6a9da5c91d
ck_epoch: add epoch_value to return current global epoch.
8 years ago
Samy Al Bahra
8391338299
regressions/ck_epoch: fix up message.
8 years ago
Samy Al Bahra
cce21287fe
ck_epoch_call: basic coverage for call_strict.
8 years ago
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
Samy Al Bahra
8c12481577
regressions/ck_epoch: n_dispatch is now unsigned int.
8 years ago
Samy Al Bahra
64ac40ab64
ck_epoch: there is no need to update record epoch for synchronize.
...
This is in preparation for upcoming work for allowing record sharing.
The write-side operations rely only on global state. Future work, we can play
tricks by caching latest call epoch while still building on the core EBR
concept.
8 years ago
Samy Al Bahra
77fc933229
regressions/epoch/torture: include synchronize latency.
8 years ago
Samy Al Bahra
f8d5022030
configure: do not rely on pathsearch if full executable path provided.
...
This issue was pointed out by Mark Callaghan. Fixes #90 .
8 years ago