1""" 2turbostat prints out CPU stats 3""" 4 5import os, subprocess, signal 6import logging 7from autotest_lib.client.bin import profiler, os_dep 8 9 10class turbostat(profiler.profiler): 11 """ 12 turbostat reports processor topology, frequency, idle power-state 13 statistics, etc. 14 """ 15 version = 1 16 17 def initialize(self): 18 self.bin = os_dep.command('turbostat') 19 20 def start(self, test): 21 self._output = open(os.path.join(test.profdir, "turbostat"), "wt") 22 23 cmd = [self.bin] 24 logging.debug("Starting turbostat: %s", cmd) 25 26 # Log the start time so a complete datetime can be computed later 27 subprocess.call(['date', '-Iseconds'], stdout=self._output) 28 29 self._process = subprocess.Popen( 30 cmd, 31 stdout=self._output, 32 stderr=subprocess.STDOUT, 33 close_fds=True) 34 35 def stop(self, test): 36 logging.debug("Stopping turbostat") 37 38 os.kill(self._process.pid, signal.SIGTERM) 39 40 self._process.wait() 41 42 logging.debug("Stopped turbostat") 43 44 self._output.close() 45 46 def report(self, test): 47 pass 48