ceph/src/dmclock
J. Eric Ivancich c06ff01819 Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2017-08-04 12:35:35 -04:00
..
benchmark
cmake/modules Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2 2017-08-04 12:35:35 -04:00
sim Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2 2017-08-04 12:35:35 -04:00
src Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2 2017-08-04 12:35:35 -04:00
support
test Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2 2017-08-04 12:35:35 -04:00
.gitignore
CMakeLists.txt Merge commit '4363837772a4a6ba7842cce87f0f7410ff8d4231' into wip-pull-new-dmclock-2 2017-08-04 12:35:35 -04:00
dmclock-config.cmake.in
dmclock-targets.cmake
README.before-modifying-files-here-or-below
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....