""" Uses perf_events to count cycles and instructions Defaults options: job.profilers.add('cpistat', interval=1) """ import time, os, subprocess from autotest_lib.client.bin import profiler class cpistat(profiler.profiler): version = 1 def initialize(self, interval = 1): self.interval = interval def start(self, test): cmd = os.path.join(self.bindir, 'site_cpistat') if not os.path.exists(cmd): cmd = os.path.join(self.bindir, 'cpistat') logfile = open(os.path.join(test.profdir, "cpistat"), 'w') p = subprocess.Popen(cmd, stdout=logfile, stderr=subprocess.STDOUT) self.pid = p.pid def stop(self, test): os.kill(self.pid, 15)