def testVcpuPid(self): vcpuPids = numa.getVcpuPid('testvm') expectedVcpuPids = {0: '12266', 1: '12267', 2: '12268', 3: '12269'} self.assertEqual(vcpuPids, expectedVcpuPids)
def getVcpuNumaMemoryMapping(vmName): vmPid = getVmPid(vmName) vCpuPids = numa.getVcpuPid(vmName) vCpuIdxToNode = {} for vCpuIndex, vCpuPid in vCpuPids.iteritems(): numaMapsFile = "/proc/%s/task/%s/numa_maps" % (vmPid, vCpuPid) try: with open(numaMapsFile, 'r') as f: mappingNodes = map(int, re.findall('N(\d+)=\d+', f.read())) vCpuIdxToNode[vCpuIndex] = list(set(mappingNodes)) except IOError: continue return vCpuIdxToNode