18b963cf03
that introduced a compilation error that was not noticed since the dmclock support/testing simulators are not built by ceph. Also, changes below the src/dmclock tree should be made in the dmclock library and then pulled into ceph. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com> |
||
---|---|---|
.. | ||
benchmark | ||
cmake/modules | ||
sim | ||
src | ||
support | ||
test | ||
.gitignore | ||
.travis.yml | ||
CMakeLists.txt | ||
README.before-modifying-files-here-or-below | ||
README.md | ||
dmclock-config.cmake.in | ||
dmclock-targets.cmake |
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....