diff --git a/nrm/controller.py b/nrm/controller.py index 4acb2170df85fad9354e08a6a7f14539d0562d1b..ecfc7fdd89dbeb13323d3cdcd2f8f886b9bc3a92 100644 --- a/nrm/controller.py +++ b/nrm/controller.py @@ -63,12 +63,18 @@ class PowerActuator(object): actions = [] pl = self.sensor_manager.get_powerlimits() logger.info("power limits: %r:", pl) - for k in pl: - r = range(int(pl[k]['curW']), int(pl[k]['maxW'])) - actions.extend([Action(k, s, s - r[0]) for s in r]) + if target == 'i': + for k in pl: + r = range(int(pl[k]['curW']), int(pl[k]['maxW'])) + actions.extend([Action(k, s, s - r[0]) for s in r]) + elif target == 'd': + for k in pl: + r = range(0, int(pl[k]['curW'])) + actions.extend([Action(k, s, s - r[-1]) for s in r]) return actions def execute(self, action): + logger.info("changing power limit: %r", action) self.sensor_manager.set_powerlimit(action.target, action.command) def update(self, action): diff --git a/nrm/sensor.py b/nrm/sensor.py index c775559cbe4068916005c56b3c648700c59150a1..5177f78a99f0abab4ea94da1752449fcfc29eb9e 100644 --- a/nrm/sensor.py +++ b/nrm/sensor.py @@ -40,5 +40,5 @@ class SensorManager: # only return enabled domains return {k: pl[k] for k in pl if pl[k]['enabled']} - def set_powerlimits(self, domain, value): + def set_powerlimit(self, domain, value): self.rapl.set_powerlimit(value, domain)