xend: NUMA: fix division by zero on unpopulated nodes

nodes without memory will currently be disabled by also moving the
physical cores connected to them to other nodes. This leads to nodes
without CPUs and thus to a division by zero in the node allocation
algorithm.  Attached patch fixes this by checking for 0 before the
division. This fixes domain creation on boxes with memory-less nodes.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
This commit is contained in:
Keir Fraser committed 2010-01-17 18:01:08 +00:00
1 parent 185c296921
commit c9aa64e062
1 file changed
+5 -2
+5 -2
View File
@@ -2709,9 +2709,12 @@ class XendDomainInfo:
nodeload[i] += 1
break
for i in range(0, nr_nodes):
nodeload[i] = int(nodeload[i] * 16 / len(info['node_to_cpu'][i]))
if len(info['node_to_cpu'][i]) == 0 or i not in node_list:
if len(info['node_to_cpu'][i]) == 0:
nodeload[i] += 8
else:
nodeload[i] = int(nodeload[i] * 16 / len(info['node_to_cpu'][i]))
if i not in node_list:
nodeload[i] += 8
return map(lambda x: x[0], sorted(enumerate(nodeload), key=lambda x:x[1]))
info = xc.physinfo()
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.