47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
|
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)
|