[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[Libvir] [PATCH] Topology fix for "no cpus"
- From: beth kon <eak us ibm com>
- To: libvir-list redhat com
- Subject: [Libvir] [PATCH] Topology fix for "no cpus"
- Date: Fri, 05 Oct 2007 15:55:14 -0400
I was able to test on a 128-way NUMA box and found a bug. My code did
not handle the case of no cpus being associated with a node. I decided
to represent (pretty straightforward decision :-) no cpus as follows in
the xml...
<cell id='2'>
<cpus num='0'>
</cpus>
</cell>
Here is the patch...
Signed-off-by: Beth Kon <eak us ibm com>
--
Elizabeth Kon (Beth)
IBM Linux Technology Center
Open Hypervisor Team
email: eak us ibm com
diff -urpN libvirt.orig/src/xend_internal.c libvirt/src/xend_internal.c
--- libvirt.orig/src/xend_internal.c 2007-10-03 19:27:25.000000000 -0700
+++ libvirt/src/xend_internal.c 2007-10-04 05:41:13.000000000 -0700
@@ -1989,6 +1989,15 @@ sexpr_to_xend_topology_xml(virConnectPtr
/* get list of cpus associated w/ single cell */
while (1) {
if ((len = getNumber(offset, &cpuNum)) < 0) {
+ if (!strncmp (offset, "no cpus", 7)){
+ *(cpuIdsPtr++) = -1;
+ break;
+ } else {
+ virXendError(conn, VIR_ERR_XEN_CALL, "topology string syntax error");
+ goto error;
+ }
+ }
+ if ((len = getNumber(offset, &cpuNum)) < 0) {
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
goto error;
}
@@ -2058,6 +2067,8 @@ sexpr_to_xend_topology_xml(virConnectPtr
if (r == -1) goto vir_buffer_failed;
for (i = 0; i < cellCpuCount; i++) {
+ if (*(iCpuIdsPtr + i) == -1)
+ break;
r = virBufferVSprintf (xml, "\
<cpu id='%d'/>\n", *(iCpuIdsPtr + i));
if (r == -1) goto vir_buffer_failed;
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]