Change in vdsm[master]: numa: use defaultdict to simplify the code

fromani at redhat.com fromani at redhat.com
Wed Jan 7 21:01:34 UTC 2015


Francesco Romani has uploaded a new change for review.

Change subject: numa: use defaultdict to simplify the code
......................................................................

numa: use defaultdict to simplify the code

Leverage defaultdict(set) instead of reinventing
it locally and partially, with  no changes in logic.

Change-Id: I9c0ee4c4291f2bd5fe2fb639752ef8e46aecc6be
Signed-off-by: Francesco Romani <fromani at redhat.com>
---
M vdsm/numaUtils.py
1 file changed, 8 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/62/36662/1

diff --git a/vdsm/numaUtils.py b/vdsm/numaUtils.py
index c534209..ad2fde9 100644
--- a/vdsm/numaUtils.py
+++ b/vdsm/numaUtils.py
@@ -18,6 +18,8 @@
 # Refer to the README and COPYING files for full details of the license
 #
 
+from collections import defaultdict
+
 import xml.etree.cElementTree as ET
 
 import caps
@@ -72,22 +74,19 @@
 
     vCpuToPnode = supervdsm.getProxy().getVcpuNumaMemoryMapping(
         vm.conf['vmName'].encode('utf-8'))
+
     pCpuToPnode = _getMappingPcpuToPnode()
     vCpuToVnode = _getMappingVcpuToVnode(vm)
 
-    nodeVtoP = {}
+    nodeVtoP = defaultdict(set)
     for vCpu, pCpu in cpuVtoP.iteritems():
         vNodeIndex = str(vCpuToVnode[vCpu])
 
-        if vNodeIndex not in nodeVtoP:
-            nodeVtoP[vNodeIndex] = []
+        nodeVtoP[vNodeIndex].add(pCpuToPnode[pCpu])
+        for pNode in vCpuToPnode.get(vCpu, ()):
+            nodeVtoP[vNodeIndex].add(pNode)
 
-        nodeVtoP[vNodeIndex].append(pCpuToPnode[pCpu])
-        if vCpu in vCpuToPnode:
-            nodeVtoP[vNodeIndex].extend(
-                vCpuToPnode[vCpu])
-
-    return dict([(k, list(set(v))) for k, v in
+    return dict([(k, list(v)) for k, v in
                 nodeVtoP.iteritems()])
 
 


-- 
To view, visit http://gerrit.ovirt.org/36662
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c0ee4c4291f2bd5fe2fb639752ef8e46aecc6be
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>


More information about the vdsm-patches mailing list