def testResetAffinityByDefault(self): try: proc = utils.execCmd((EXT_SLEEP, '30s'), sync=False) self.assertEquals(taskset.get(proc.pid), taskset.get(os.getpid())) finally: proc.kill()
def testResetAffinityByDefault(self): proc = commands.start((EXT_SLEEP, '30s')) try: self.assertEqual(taskset.get(proc.pid), taskset.get(os.getpid())) finally: proc.kill()
def testResetAffinityByDefault(self): try: proc = commands.execCmd((EXT_SLEEP, '30s'), sync=False) self.assertEquals(taskset.get(proc.pid), taskset.get(os.getpid())) finally: proc.kill()
def test_get(self): self.proc = multiprocessing.Process(target=self._run_child) self.proc.start() if not self.running.wait(0.5): raise RuntimeError("helper child process not running!") self.assertEqual(taskset.get(self.proc.pid), taskset.get(os.getpid()))
def testKeepAffinity(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEqual(taskset.get(os.getpid()), self.CPU_SET) proc = commands.start((EXT_SLEEP, '30s'), reset_cpu_affinity=False) try: self.assertEqual(taskset.get(proc.pid), self.CPU_SET) finally: proc.kill()
def testResetAffinityWhenConfigured(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEqual(taskset.get(os.getpid()), self.CPU_SET) proc = commands.start((EXT_SLEEP, '30s')) try: self.assertEqual(taskset.get(proc.pid), online_cpus()) finally: proc.kill()
def testResetAffinityWhenConfigured(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEquals(taskset.get(os.getpid()), self.CPU_SET) try: proc = commands.execCmd((EXT_SLEEP, '30s'), sync=False) self.assertEquals(taskset.get(proc.pid), online_cpus()) finally: proc.kill()
def testResetAffinityWhenConfigured(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEquals(taskset.get(os.getpid()), self.CPU_SET) try: proc = utils.execCmd((EXT_SLEEP, '30s'), sync=False) self.assertEquals(taskset.get(proc.pid), online_cpus()) finally: proc.kill()
def testKeepAffinity(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEquals(taskset.get(os.getpid()), self.CPU_SET) try: proc = commands.execCmd((EXT_SLEEP, '30s'), sync=False, resetCpuAffinity=False) self.assertEquals(taskset.get(proc.pid), self.CPU_SET) finally: proc.kill()
def testKeepAffinity(self): taskset.set(os.getpid(), self.CPU_SET) self.assertEquals(taskset.get(os.getpid()), self.CPU_SET) try: proc = utils.execCmd((EXT_SLEEP, '30s'), sync=False, resetCpuAffinity=False) self.assertEquals(taskset.get(proc.pid), self.CPU_SET) finally: proc.kill()
def test_set_from_child(self, cpu_set): validate_running_with_enough_cpus(cpu_set) self.proc = multiprocessing.Process(target=self._run_child, args=(cpu_set,)) self.proc.start() if not self.running.wait(0.5): raise RuntimeError("helper child process not running!") self.assertEqual(taskset.get(self.proc.pid), cpu_set)
def get(): numa.update() caps = {} cpu_topology = numa.cpu_topology() caps['kvmEnabled'] = str(os.path.exists('/dev/kvm')).lower() if config.getboolean('vars', 'report_host_threads_as_cores'): caps['cpuCores'] = str(cpu_topology.threads) else: caps['cpuCores'] = str(cpu_topology.cores) caps['cpuThreads'] = str(cpu_topology.threads) caps['cpuSockets'] = str(cpu_topology.sockets) caps['onlineCpus'] = ','.join( [str(cpu_id) for cpu_id in cpu_topology.online_cpus]) caps['cpuTopology'] = [{ 'cpu_id': cpu.cpu_id, 'numa_cell_id': cpu.numa_cell_id, 'socket_id': cpu.socket_id, 'die_id': cpu.die_id, 'core_id': cpu.core_id, } for cpu in numa.cpu_info()] caps['cpuSpeed'] = cpuinfo.frequency() caps['cpuModel'] = cpuinfo.model() caps['cpuFlags'] = ','.join(_getFlagsAndFeatures()) caps['vdsmToCpusAffinity'] = list(taskset.get(os.getpid())) caps.update(dsaversion.version_info()) proxy = supervdsm.getProxy() net_caps = proxy.network_caps() caps.update(net_caps) caps['ovnConfigured'] = proxy.is_ovn_configured() try: caps['hooks'] = hooks.installed() except: logging.debug('not reporting hooks', exc_info=True) caps['operatingSystem'] = osinfo.version() caps['uuid'] = host.uuid() caps['packages2'] = osinfo.package_versions() caps['realtimeKernel'] = osinfo.runtime_kernel_flags().realtime caps['kernelArgs'] = osinfo.kernel_args() caps['nestedVirtualization'] = osinfo.nested_virtualization().enabled caps['emulatedMachines'] = machinetype.emulated_machines( cpuarch.effective()) caps['ISCSIInitiatorName'] = _getIscsiIniName() caps['HBAInventory'] = hba.HBAInventory() caps['vmTypes'] = ['kvm'] caps['memSize'] = str(utils.readMemInfo()['MemTotal'] // 1024) caps['reservedMem'] = str( config.getint('vars', 'host_mem_reserve') + config.getint('vars', 'extra_mem_reserve')) caps['guestOverhead'] = config.get('vars', 'guest_ram_overhead') caps['rngSources'] = rngsources.list_available() caps['numaNodes'] = dict(numa.topology()) caps['numaNodeDistance'] = dict(numa.distances()) caps['autoNumaBalancing'] = numa.autonuma_status() caps['selinux'] = osinfo.selinux_status() caps['liveSnapshot'] = 'true' caps['liveMerge'] = 'true' caps['kdumpStatus'] = osinfo.kdump_status() caps["deferred_preallocation"] = True caps['hostdevPassthrough'] = str(hostdev.is_supported()).lower() # TODO This needs to be removed after adding engine side support # and adding gdeploy support to enable libgfapi on RHHI by default caps['additionalFeatures'] = ['libgfapi_supported'] if osinfo.glusterEnabled: from vdsm.gluster.api import glusterAdditionalFeatures caps['additionalFeatures'].extend(glusterAdditionalFeatures()) caps['hostedEngineDeployed'] = _isHostedEngineDeployed() caps['hugepages'] = hugepages.supported() caps['kernelFeatures'] = osinfo.kernel_features() caps['vncEncrypted'] = _isVncEncrypted() caps['backupEnabled'] = True caps['coldBackupEnabled'] = True caps['clearBitmapsEnabled'] = True caps['fipsEnabled'] = _getFipsEnabled() try: caps['boot_uuid'] = osinfo.boot_uuid() except Exception: logging.exception("Can not find boot uuid") caps['tscFrequency'] = _getTscFrequency() caps['tscScaling'] = _getTscScaling() try: caps["connector_info"] = managedvolume.connector_info() except se.ManagedVolumeNotSupported as e: logging.info("managedvolume not supported: %s", e) except se.ManagedVolumeHelperFailed as e: logging.exception("Error getting managedvolume connector info: %s", e) # Which domain versions are supported by this host. caps["domain_versions"] = sc.DOMAIN_VERSIONS caps["supported_block_size"] = backends.supported_block_size() caps["cd_change_pdiv"] = True caps["refresh_disk_supported"] = True return caps