initial code repo
[stor4nfv.git] / src / ceph / src / dmclock / README.md
1 # dmclock
2
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.
7
8 ## Running cmake
9
10 When running cmake, set the build type with either:
11
12     -DCMAKE_BUILD_TYPE=Debug
13     -DCMAKE_BUILD_TYPE=Release
14
15 To turn on profiling, run cmake with an additional:
16
17     -DPROFILE=yes
18
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:
21
22     -DDO_NOT_DELAY_TAG_CALC=yes
23
24 ## Running make
25
26 ### Building the dmclock library
27
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
30 their code.
31
32 ### Building unit tests
33
34 The `make dmclock-tests` command builds unit tests.
35
36 ### Building simulations
37
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.
42
43 ## dmclock API
44
45 To be written....