ceph/src/dmclock
Jos Collin e348713003 dmclock: ‘std::function’ has not been declared
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>
2017-05-03 10:18:54 +05:30
..
benchmark
cmake/modules
sim dmclock: ‘std::function’ has not been declared 2017-05-03 10:18:54 +05:30
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....