""" turbostat prints out CPU stats """ import os, subprocess, signal import logging from autotest_lib.client.bin import profiler, os_dep class turbostat(profiler.profiler): """ turbostat reports processor topology, frequency, idle power-state statistics, etc. """ version = 1 def initialize(self): self.bin = os_dep.command('turbostat') def start(self, test): self._output = open(os.path.join(test.profdir, "turbostat"), "wt") cmd = [self.bin] logging.debug("Starting turbostat: %s", cmd) # Log the start time so a complete datetime can be computed later subprocess.call(['date', '-Iseconds'], stdout=self._output) self._process = subprocess.Popen( cmd, stdout=self._output, stderr=subprocess.STDOUT, close_fds=True) def stop(self, test): logging.debug("Stopping turbostat") os.kill(self._process.pid, signal.SIGTERM) self._process.wait() logging.debug("Stopped turbostat") self._output.close() def report(self, test): pass