Samy Al Bahra
c4e50a193a
ck_fifo: Style fixes.
12 years ago
Brendon Scheinman
63bfa0d353
ck_cohort_rw: Reduced line wrapping
12 years ago
Brendon Scheinman
695e29fd7b
ck_cohort: Updated documentation to reflect ck_cohort_rw changes
12 years ago
Brendon Scheinman
3fefa3b5a3
ck_cohort: Fixed regression tests based on ck_cohort_rw changes
12 years ago
Brendon Scheinman
77ff96b15a
ck_cohort_rw: Added latency and throughput benchmark regression tests
12 years ago
Brendon Scheinman
114c916fea
ck_cohort_rw: Cleaned up regression files from last commit
12 years ago
Brendon Scheinman
5e1b614108
ck_cohort_rw: Initial implementation with validation test.
...
I still need to implement benchmark tests and write documentation. The reader-writer cohort locks also required that I add a method to the existing ck_cohort framework to determine whether or not a cohort lock is currently in a locked state.
12 years ago
Brendon Scheinman
91ef0220c7
ck_cohort: Cleaned up documentation changes
12 years ago
Brendon Scheinman
6298e6f7b2
ck_cohort: Updated documentation to reflect trylock support
12 years ago
Brendon Scheinman
6441c90cfe
Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
Brendon Scheinman
3c8728b214
ck_cohort: Added trylock support to cohort framework
12 years ago
Samy Al Bahra
4b9badd440
ck_cohort: Remove unnecessary whitespace.
12 years ago
Brendon Scheinman
78fbe93caa
ck_cohort: fixed regression tests to match new CK_COHORT_PROTOTYPE signature
12 years ago
Brendon Scheinman
aa37eed71c
ck_cohort: removed extraneous sentence from documentation
12 years ago
Brendon Scheinman
62c121f500
ck_cohort: Added example code to man page
12 years ago
Brendon Scheinman
d9dd6138ca
ck_cohort: added documentation to Makefile
12 years ago
Brendon Scheinman
ed5292546f
merged changes from main ck repo
12 years ago
Brendon Scheinman
d17805e39a
ck_cohort: added initial documentation
12 years ago
David Joseph
60873b9af5
Merge branch 'master' of https://github.com/sbahra/ck
12 years ago
David Joseph
9640eabba8
regressions: Fix for common alarm init.
12 years ago
David Joseph
aaebc6b31b
regressions: Fix for common alarm prefixes.
12 years ago
David Joseph
da23134615
regressions: Fix for alarm interface.
12 years ago
David Joseph
d7c528694d
build: Fix MINGW64 check.
12 years ago
David Joseph
0784be7ff0
regressions: Fix tests that use common alarm.
12 years ago
David Joseph
c1cf0a7a53
build: Add support for MinGW-w64.
12 years ago
David Joseph
339a1bd639
regressions: Add prefix to common alarm interface.
12 years ago
Samy Al Bahra
c393a97cb7
ck_pflock: Fix Copyright typo from original patch.
12 years ago
Samy Al Bahra
7e9a020abd
regressions: Add ck_pflock clean target.
12 years ago
Samy Al Bahra
f6a53fd9de
ck_cohort: First-cut implementation of generalized cohort interface.
...
This work was contributed by Brendon Scheinman. This work is based
off "Lock Cohorting: A General Technique for Designing NUMA Locks".
12 years ago
Brendon Scheinman
5914bbe2c2
ck_cohort: Moved locks to separate cachelines in throughput test
12 years ago
Brendon Scheinman
c4e3edfeac
Merge branch 'master' of https://github.com/sbahra/ck into cohort
12 years ago
Brendon Scheinman
caef3b4ac2
review: Final ck_cohort review changes
...
I changed the release state to use an enum instead of an unsigned int with #defines in order to make debugging easier. I also removed unnecessary atomic operations in the initializer function, and made some formatting fixes.
12 years ago
Brendon Scheinman
81a90e41a2
review: A couple more changes based on ck_cohort review
...
I added an extra argument to the CK_COHORT_INIT macro to allow users to specify custom pass limits
when using it. I also added a reference to the paper on which the cohort implementation was based.
12 years ago
Brendon Scheinman
0fdac3d1d4
whitespace: fixed alignment of macro in ck_cohort for 8-space tabs
12 years ago
Brendon Scheinman
803073b024
interface: Made ck_cohort interface more flexible for custom types
12 years ago
Brendon Scheinman
27d841d300
cleanup: Updated .gitignore to include ck_cohort benchmark binaries
12 years ago
Brendon Scheinman
44ea3a4688
review: First round of review changes
...
The constants and macros in ck_cohort.h didn't conform to CK naming conventions. Additionally, I was able to remove a lot of unnecessary atomic operations and memory fences, which reduced latency by 10-20% and increased throughput using ticket locks by nearly an order of magnitude.
12 years ago
Samy Al Bahra
060b922dc2
ck_pflock: Whitespace change.
...
Move acquire semantics comment block on read_unlock beneath
exit label.
12 years ago
Samy Al Bahra
aec2797d27
ck_pflock: Load acquire semantics are sufficient for read_unlock.
...
Also, make sure to implement acquire semantics if there are no
contending writers.
12 years ago
Samy Al Bahra
7ce276f5eb
regressions: Add ck_pflock to make check target.
12 years ago
Samy Al Bahra
54845bb8e7
ck_pflock: Phase-fair read-write lock implementation.
...
John Wittrock has contributed a phase-fair reader-writer
lock implementation. These locks allow phase fairness
guarantees between readers and writers. This work includes
additional changes and clean-up.
Follow-up work is expected.
Thanks to John Wittrock for patches and Professor Gabriel
Parmer (http://www.seas.gwu.edu/~gparmer/ ) for advising.
12 years ago
Brendon Scheinman
e06b4a26ff
cleanup: Removed unnecessary code copied from ck_spinlock's throughput test
12 years ago
Brendon Scheinman
2492f16ec9
whitespace: Added missing space to usage message
12 years ago
Brendon Scheinman
c6cd9e5be8
testing: Added throughput test for ck_cohort
12 years ago
Brendon Scheinman
2cb79b0658
testing: Added latency test for ck_cohort
12 years ago
Samy Al Bahra
7d3fd9d227
ck_fifo: Get rid of load_depends usage for now.
...
Until a target pops up with a requirement for load_depends(),
the cost is not worth it for now.
12 years ago
Samy Al Bahra
b7d258b219
ck_pr/gcc: ck_pr_fence_load_depends should be heavy-weight on catch-all target.
12 years ago
Samy Al Bahra
d09e48daed
ck_spinlock: Only enable trylock path for TSO architectures at the moment.
12 years ago
Samy Al Bahra
27d454248d
ck_spinlock: Add ticket lock with trylock operation.
...
Upon popular request, added a variant of the ticket spinlock
with trylock support. This is pending additional verification
on other architectures besides x86*. It is still unclear whether
this implementation will be the default as it is has slower
fast path.
Add trylock support to the ck_spinlock validation tests.
It currently only tests ck_spinlock_ticket_t trylock
functionality if available.
12 years ago
Brendon Scheinman
59cc30b671
testing: ck_cohort validation
...
The ck_cohort validation test had an error that would cause an uneven distribution of threads among cohorts when the affinity delta was set above 1.
12 years ago