def get_current_settings_s390x(self): """ Method to return current SMT settings ('/proc/cmdline') for s390x architecture. Returns: current_smt_settings: dictionary {status, value} """ command = ['cat', '/proc/cmdline'] threads_per_core = LsCpu().get_threads_per_core() output, error, retcode = run_command(command) if retcode != 0: raise OperationFailed('GINSMT003E', {'error': error}) elif (SMT_TWO in output or SMT not in output): status = 'enabled' value = threads_per_core elif SMT_ONE in output and threads_per_core < 2: status = 'enabled' value = 1 elif NOSMT in output and threads_per_core < 2: status = 'disabled' value = NOSMT else: raise InvalidOperation('GINSMT0001E') current_smt_settings = {'status': status, 'smt': value} return current_smt_settings
def __init__(self, **kargs): self.guest_threads_enabled = False self.sockets = 0 self.cores_present = 0 self.cores_available = 0 self.cores_per_socket = 0 self.threads_per_core = 0 self.max_threads = 0 self.lscpu = LsCpu() if ARCH == 'power': # IBM PowerPC self.guest_threads_enabled = True out, error, rc = run_command(['ppc64_cpu', '--smt']) if rc or 'on' in out: # SMT has to be disabled for guest to use threads as CPUs. # rc is always zero, whether SMT is off or on. self.guest_threads_enabled = False out, error, rc = run_command(['ppc64_cpu', '--cores-present']) if not rc: self.cores_present = int(out.split()[-1]) out, error, rc = run_command(['ppc64_cpu', '--cores-on']) if not rc: self.cores_available = int(out.split()[-1]) out, error, rc = run_command(['ppc64_cpu', '--threads-per-core']) if not rc: self.threads_per_core = int(out.split()[-1]) self.sockets = self.cores_present / self.threads_per_core if self.sockets == 0: self.sockets = 1 self.cores_per_socket = self.cores_present / self.sockets else: # Intel or AMD self.guest_threads_enabled = True self.sockets = int(self.lscpu.get_sockets()) self.cores_per_socket = int(self.lscpu.get_cores_per_socket()) self.cores_present = self.cores_per_socket * self.sockets self.cores_available = self.cores_present self.threads_per_core = self.lscpu.get_threads_per_core()
def __init__(self, **kargs): # self.conn = kargs['conn'] self.objstore = kargs['objstore'] self.task = TaskModel(**kargs) self.lscpu = LsCpu()