123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env python3
- ''' This Python script interprets interrupt values.
- Validates Ideal load balancer runs in same package where workload is running
- '''
- import os
- import sys
- from optparse import OptionParser
- from pm_sched_mc import *
- __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=0, help="Sched mc power saving value 0/1/2")
- parser.add_option("-t", "--smt_level", dest="smt_level",
- default=0, help="Sched smt power saving value 0/1/2")
- parser.add_option("-w", "--workload", dest="work_ld",
- default="ebizzy", help="Workload can be ebizzy/kernbench")
- (options, args) = parser.parse_args()
- try:
- count_num_cpu()
- count_num_sockets()
- if is_multi_socket():
- set_sched_mc_power(options.mc_level)
- if is_hyper_threaded():
- set_sched_smt_power(options.smt_level)
- map_cpuid_pkgid()
- print("INFO: Created table mapping cpu to package")
- background="no"
- duration=120
- pinned="yes"
- trigger_workld(options.smt_level,options.work_ld, "single_job", duration, background, pinned, "no")
- generate_loc_intr_report()
- status = validate_ilb(options.mc_level, options.smt_level)
- reset_schedmc()
- if is_hyper_threaded():
- reset_schedsmt()
- return(status)
- except Exception as details:
- print("INFO: Idle Load Balancer test failed", details)
- return(1)
- if __name__ == "__main__":
- sys.exit(main())
|