e348713003
The following error appears during make: ceph/src/dmclock/test/test_test_client.cc:14:0: ceph/src/dmclock/test/../sim/src/sim_recs.h:40:12: error: ‘std::function’ has not been declared std::function<void()> code) { Signed-off-by: Jos Collin <jcollin@redhat.com> |
||
---|---|---|
.. | ||
benchmark | ||
cmake/modules | ||
sim | ||
src | ||
support | ||
test | ||
.gitignore | ||
CMakeLists.txt | ||
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....