summaryrefslogtreecommitdiffstats
path: root/src/dmclock/README.md
blob: 8199ec5e1aa85fc86944e929aacafd0c239bdcb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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.

## Bugs and features

There is a [dmclock project](https://tracker.ceph.com/projects/dmclock) through
which bugs can be reported and features requested.

## 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

## 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....