xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] numa: fix problems with memory-less nodes
@ 2010-01-12 16:30 Andre Przywara
  2010-01-13  8:26 ` Keir Fraser
  0 siblings, 1 reply; 5+ messages in thread
From: Andre Przywara @ 2010-01-12 16:30 UTC (permalink / raw)
  To: Keir Fraser; +Cc: xen-devel@lists.xensource.com

[-- Attachment #1: Type: text/plain, Size: 957 bytes --]

Hi,

If we decided to not report memory-less nodes in physinfo we should also 
skip them in the node_to_{cpu,memory,dma32_mem} Python lists. Currently 
Xen will not start guests on machines with memory-less nodes which are 
not the last ones. On an 8-node machine with empty nodes 4 and 5 "xm 
info" was reporting wrongly, also the node assignment algorithm crashed 
with a division by zero error.
The attached patch fixes this by skipping empty nodes in the enumeration 
of resources.

Regards,
Andre.


Signed-off-by: Andre Przywara <andre.przywara@amd.com>

-- 
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 448 3567 12
----to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Andrew Bowd; Thomas M. McCoy; Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

[-- Attachment #2: physinfo_empty_numa_nodes.patch --]
[-- Type: text/x-patch, Size: 1134 bytes --]

diff -r 0e3910f1de64 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c	Tue Jan 12 07:17:40 2010 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c	Tue Jan 12 17:28:55 2010 +0100
@@ -1129,20 +1129,23 @@
             Py_DECREF(pyint);
             node_exists = 1;
         }
-        PyList_Append(node_to_cpu_obj, cpus); 
+        if (node_exists)
+            PyList_Append(node_to_cpu_obj, cpus); 
         Py_DECREF(cpus);
 
         /* Memory. */
         xc_availheap(self->xc_handle, 0, 0, i, &free_heap);
         node_exists = node_exists || (free_heap != 0);
         pyint = PyInt_FromLong(free_heap / 1024);
-        PyList_Append(node_to_memory_obj, pyint);
+        if (node_exists)
+            PyList_Append(node_to_memory_obj, pyint);
         Py_DECREF(pyint);
 
         /* DMA memory. */
         xc_availheap(self->xc_handle, 0, 32, i, &free_heap);
         pyint = PyInt_FromLong(free_heap / 1024);
-        PyList_Append(node_to_dma32_mem_obj, pyint);
+        if (node_exists)
+            PyList_Append(node_to_dma32_mem_obj, pyint);
         Py_DECREF(pyint);
 
         if ( node_exists )

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-01-13 10:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-12 16:30 [PATCH] numa: fix problems with memory-less nodes Andre Przywara
2010-01-13  8:26 ` Keir Fraser
2010-01-13  9:42   ` Andre Przywara
2010-01-13  9:55     ` Keir Fraser
2010-01-13 10:02     ` Keir Fraser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).