""" Loads KVM virtualization kernel module before a test cycle and unloads it after. Intended to help in qualifying KVM in the kernel by comparing runs of kernel tests with and without this "profiler". author: jsmiller@google.com """ import os, subprocess from autotest_lib.client.bin import kvm_control, profiler, utils class kvm_modload(profiler.profiler): version = 4 def initialize(self, interval=None, options=None): pass def log_lsmod(self, log): log.write("lsmod: \n") cmd_status = utils.run("lsmod") if cmd_status.stdout: log.write(cmd_status.stdout) log.write("\n") if cmd_status.stderr: log.write(cmd_status.stderr) log.write("\n") def start(self, test): load_status = kvm_control.load_kvm() self.logfile = open(os.path.join(test.profdir, "kvm_modload"), 'w') self.logfile.write("Loaded KVM module with status %s.\n" % repr(load_status)) self.log_lsmod(self.logfile) def stop(self, test): unload_status = kvm_control.unload_kvm() self.logfile.write("Unloaded KVM module with status %s.\n" % repr(unload_status)) self.log_lsmod(self.logfile) self.logfile.close() def report(self, test): output = os.path.join(test.profdir, "kvm_modload")