Home | History | Annotate | Download | only in cpu_hotplug
      1 import time, os
      2 from autotest_lib.client.bin import test, utils
      3 from autotest_lib.client.common_lib import error
      4 
      5 class cpu_hotplug(test.test):
      6     version = 2
      7 
      8     # http://developer.osdl.org/dev/hotplug/tests/lhcs_regression-1.6.tgz
      9     def setup(self, tarball = 'lhcs_regression-1.6.tgz'):
     10         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
     11         utils.extract_tarball_to_dir(tarball, self.srcdir)
     12 
     13 
     14     def initialize(self):
     15         # Check if the kernel supports cpu hotplug
     16         if utils.running_config():
     17             utils.check_for_kernel_feature('HOTPLUG_CPU')
     18 
     19         # Check cpu nums, if equals 1, quit.
     20         if utils.count_cpus() == 1:
     21             e_msg = 'Single CPU online detected, test not supported.'
     22             raise error.TestNAError(e_msg)
     23 
     24         # Have a simple and quick check first, FIX me please.
     25         utils.system('dmesg -c > /dev/null')
     26         for cpu in utils.cpu_online_map():
     27             if os.path.isfile('/sys/devices/system/cpu/cpu%s/online' % cpu):
     28                 utils.system('echo 0 > /sys/devices/system/cpu/cpu%s/online' % cpu, 1)
     29                 utils.system('dmesg -c')
     30                 time.sleep(3)
     31                 utils.system('echo 1 > /sys/devices/system/cpu/cpu%s/online' % cpu, 1)
     32                 utils.system('dmesg -c')
     33                 time.sleep(3)
     34 
     35 
     36     def run_once(self):
     37         # Begin this cpu hotplug test big guru.
     38         os.chdir(self.srcdir)
     39         utils.system('./runtests.sh')
     40