Esempio n. 1
0
 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
Esempio n. 2
0
    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()
Esempio n. 3
0
 def __init__(self, **kargs):
     # self.conn = kargs['conn']
     self.objstore = kargs['objstore']
     self.task = TaskModel(**kargs)
     self.lscpu = LsCpu()