| import os |
| from autotest_lib.client.bin import test, utils |
| |
| |
| class linus_stress(test.test): |
| version = 1 |
| |
| def setup(self): |
| os.mkdir(self.srcdir) |
| os.chdir(self.bindir) |
| utils.system('cp linus_stress.c src/') |
| os.chdir(self.srcdir) |
| utils.system(utils.get_cc() + ' linus_stress.c -D_POSIX_C_SOURCE=200112 -o linus_stress') |
| |
| |
| def initialize(self): |
| self.job.require_gcc() |
| |
| |
| def run_the_test(self, iterations): |
| utils.write_one_line('/proc/sys/vm/dirty_ratio', '4') |
| utils.write_one_line('/proc/sys/vm/dirty_background_ratio', '2') |
| |
| cmd = os.path.join(self.srcdir, 'linus_stress') |
| args = "%d" % (utils.memtotal() / 32) |
| |
| profilers = self.job.profilers |
| if profilers.present(): |
| profilers.start(self) |
| |
| for i in range(iterations): |
| utils.system(cmd + ' ' + args) |
| |
| if profilers.present(): |
| profilers.stop(self) |
| profilers.report(self) |
| |
| |
| def execute(self, iterations = 1): |
| dirty_ratio = utils.read_one_line('/proc/sys/vm/dirty_ratio') |
| dirty_background_ratio = utils.read_one_line('/proc/sys/vm/dirty_background_ratio') |
| try: |
| self.run_the_test(iterations) |
| finally: |
| utils.write_one_line('/proc/sys/vm/dirty_ratio', dirty_ratio) |
| utils.write_one_line('/proc/sys/vm/dirty_background_ratio', dirty_background_ratio) |