Skip to content
Sven Köhler edited this page Jul 9, 2023 · 16 revisions

StallGov (formerly called memutil) is a Linux CpuFreq Governor that makes dynamic voltage scaling decisions based on hardware performance counters. This will allow it to react to the memory access patterns of the current CPU processes, so that it can reduce clock frequency, should the CPU be stalled by memory.

Background & Related Work

See this page

General

It is based on hardware performance counters to determine memory-boundness of the currently active processes. Therefore it is probably best if you familiarize yourself with the different hardware performance counters we measured. The different Hardware-Performance counter measurements can be found [here for Intel](Counters Intel) and [here for AMD](Counters AMD)

The resulting heuristics in use in StallGov, as well as discarded ones are explained on the [Heuristics page](Memutil Heuristics).

StallGov's general architecture is then explained [here](Memutil Architecture).

We have evaluated StallGov on a set of workloads. The results of this evaluation can be found on the Evaluation page

Running StallGov on your machine

Our CpuFreq governor is implemented as a kernel module.

To see how to compile & use the kernel module, see the README.

StallGov will need adjustment for your specific machine for best performance. The Porting page includes instructions of how to tweak the Heuristic parameters.

Future Work

See [this page](Future work).

Clone this wiki locally