You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
"""
|
|
What's eating the battery life of my laptop? Why isn't it many more
|
|
hours? Which software component causes the most power to be burned?
|
|
These are important questions without a good answer... until now.
|
|
"""
|
|
import time, os
|
|
from autotest_lib.client.bin import utils, profiler
|
|
|
|
class powertop(profiler.profiler):
|
|
version = 1
|
|
preserve_srcdir = True
|
|
|
|
# filenames: list of filenames to cat
|
|
def setup(self, *args, **dargs):
|
|
os.chdir(self.srcdir)
|
|
utils.make()
|
|
|
|
|
|
def start(self, test):
|
|
self.child_pid = os.fork()
|
|
if self.child_pid: # parent
|
|
return None
|
|
else: # child
|
|
powertop = os.path.join(self.srcdir, 'powertop') + ' -d'
|
|
outputfile = os.path.join(test.profdir, 'powertop')
|
|
while True:
|
|
output = open(outputfile, 'a')
|
|
output.write(time.asctime() + '\n')
|
|
data = utils.system_output('%s >> %s' % (powertop, outputfile))
|
|
output.write(data)
|
|
output.write('\n=========================\n')
|
|
output.close()
|
|
|
|
|
|
def stop(self, test):
|
|
os.kill(self.child_pid, 15)
|
|
|
|
|
|
def report(self, test):
|
|
return None
|