Skip to content

Initial energy model RFC

Created by: bjackman

This class provides a model of systems with:

  • CPU capacity at different frequencies.
  • Power usage at different frequency.
  • Power usage in different idle states.

The model is aware of topologically shared resources (clusters), topological dependencies for idle states (power domains) and frequency domains.

The intended use case for this model is for testing energy-aware scheduling in a platform-agnostic way.


This is an RFC of the EnergyModel class. This doesn't include the complex stuff, just the expression of the data. A later version will introduce code to estimate energy usage for a workload both by imagining ideal kernel behaviour and examining Trappy traces. This will be used to compare traces against "ideal" behaviour for automated tests of Energy Aware Scheduling.

The first commit (energy_model: Add EnergyModel class) contains the interesting bit, the rest of the commits demonstrate some intended uses.

This leaves lots of room for refactoring around LISA, for example the TestEnv::platform attribute becomes redundant. However I'm leaving that until the design is finalised here as the way that refactoring is done will probably need quite a lot of discussion.

Merge request reports