ceph/src/dmclock
Josh Durgin bc8c432a69 Merge pull request #15386 from ivancich/wip-add-readme-that-dmclock-is-a-subtree
doc: add README to dmclock subdir to inform developers it's a git subtree

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2017-06-06 15:48:04 -07:00
..
benchmark
sim Merge commit '5c612d7e32a07a01b3b97f9cf58f2a3cef0e2e73' 2017-06-06 15:01:03 -04:00
src Merge commit '5c612d7e32a07a01b3b97f9cf58f2a3cef0e2e73' 2017-06-06 15:01:03 -04:00
support Merge commit '5c612d7e32a07a01b3b97f9cf58f2a3cef0e2e73' 2017-06-06 15:01:03 -04:00
test Merge commit '5c612d7e32a07a01b3b97f9cf58f2a3cef0e2e73' 2017-06-06 15:01:03 -04:00
.gitignore
CMakeLists.txt Merge commit '5c612d7e32a07a01b3b97f9cf58f2a3cef0e2e73' 2017-06-06 15:01:03 -04:00
dmclock-config.cmake.in
dmclock-targets.cmake
README.before-modifying-files-here-or-below doc: add README to dmclock subdir to inform developers it's a git subtree 2017-05-31 10:31:50 -04:00
README.md

dmclock

This repository contains C++ 11 code that implements the dmclock distributed quality of service algorithm. See mClock: Handling Throughput Variability for Hypervisor IO Scheduling by Gulati, Merchant, and Varman for a description of the algorithm.

Running cmake

When running cmake, set the build type with either:

-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_BUILD_TYPE=Release

To turn on profiling, run cmake with an additional:

-DPROFILE=yes

An optimization/fix to the published algorithm has been added and is on by default. To disable this optimization/fix run cmake with:

-DDO_NOT_DELAY_TAG_CALC=yes

Running make

Building the dmclock library

The make command builds a library libdmclock.a. That plus the header files in the src directory allow one to use the implementation in their code.

Building unit tests

The make dmclock-tests command builds unit tests.

Building simulations

The make dmclock-sims command builds two simulations -- dmc_sim and ssched_sim -- which incorporate, respectively, the dmclock priority queue or a very simple scheduler for comparison. Other priority queue implementations could be added in the future.

dmclock API

To be written....