123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env python3
- ''' This Python script validates sched domain information in dmesg
- with information in sysfs topology
- '''
- import os
- import sys
- from pm_sched_mc import *
- from optparse import OptionParser
- __author__ = "Poornima Nayak <mpnayak@linux.vnet.ibm.com>"
- class Usage(Exception):
- def __init__(self, msg):
- self.msg = msg
- def main(argv=None):
- if argv is None:
- argv = sys.argv
- usage = "-w"
- parser = OptionParser(usage)
- parser.add_option("-c", "--mc_level", dest="mc_level", default=-1,
- help="Sched mc power saving value 0/1/2")
- parser.add_option("-t", "--smt_level", dest="smt_level", default=-1,
- help="Sched smt power saving value 0/1/2")
- (options, args) = parser.parse_args()
- try:
- clear_dmesg()
- count_num_cpu()
- map_cpuid_pkgid()
- if is_hyper_threaded() and int(options.smt_level) >= 0:
- set_sched_smt_power(options.smt_level)
- if int(options.mc_level) >= 0:
- set_sched_mc_power(options.mc_level)
- if int(options.smt_level) >= 0 or int(options.mc_level) >= 0:
- status = verify_sched_domain_dmesg(options.mc_level, options.smt_level)
- reset_schedmc()
- if is_hyper_threaded():
- reset_schedsmt()
- return(status)
- else:
- print("INFO: Invalid arguments given")
- return 1
- except Exception as details:
- print("INFO: sched domain test failed: ", details)
- return(1)
- # Run test based on the command line arguments
- if __name__ == "__main__":
- sys.exit(main())
|