3 This repository contains C++ 11 code that implements the dmclock
4 distributed quality of service algorithm. See __mClock: Handling
5 Throughput Variability for Hypervisor IO Scheduling__ by Gulati,
6 Merchant, and Varman for a description of the algorithm.
10 When running cmake, set the build type with either:
12 -DCMAKE_BUILD_TYPE=Debug
13 -DCMAKE_BUILD_TYPE=Release
15 To turn on profiling, run cmake with an additional:
19 An optimization/fix to the published algorithm has been added and is
20 on by default. To disable this optimization/fix run cmake with:
22 -DDO_NOT_DELAY_TAG_CALC=yes
26 ### Building the dmclock library
28 The `make` command builds a library libdmclock.a. That plus the header
29 files in the src directory allow one to use the implementation in
32 ### Building unit tests
34 The `make dmclock-tests` command builds unit tests.
36 ### Building simulations
38 The `make dmclock-sims` command builds two simulations -- *dmc_sim*
39 and *ssched_sim* -- which incorporate, respectively, the dmclock
40 priority queue or a very simple scheduler for comparison. Other
41 priority queue implementations could be added in the future.