ceph/src/dmclock
J. Eric Ivancich 18b963cf03 Revert change from commit 8c5fea68cb
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>
2018-02-02 14:56:36 -05:00
..
benchmark
cmake/modules build: Merge wip-system-includes from upstream 2017-11-04 00:03:14 -04:00
sim Revert change from commit 8c5fea68cb 2018-02-02 14:56:36 -05:00
src Merge commit 'c00eaf7446cbe456aa93bf8b05cf0a224dedca49' into wip-bring-in-dmclock 2017-12-05 10:28:49 -05:00
support
test build: Merge wip-system-includes from upstream 2017-11-04 00:03:14 -04:00
.gitignore
.travis.yml build: Merge wip-system-includes from upstream 2017-11-04 00:03:14 -04:00
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....