[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Fixes for 21040:b64a8d2a80ad "support affinity for >64 CPUs"



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1268898261 0
# Node ID 84c563da39c81ba0fe32aab37835c2ba54811319
# Parent  04cb0829d138a0794eb2646ae40790badf2bd3a7
Fixes for 21040:b64a8d2a80ad "support affinity for >64 CPUs"

Signed-off-by: James (Song Wei) <jsong@xxxxxxxxxx>
---
 tools/libxc/xc_domain.c           |    3 +--
 tools/python/xen/lowlevel/xc/xc.c |   14 +++++---------
 2 files changed, 6 insertions(+), 11 deletions(-)

diff -r 04cb0829d138 -r 84c563da39c8 tools/libxc/xc_domain.c
--- a/tools/libxc/xc_domain.c   Wed Mar 17 14:10:43 2010 +0000
+++ b/tools/libxc/xc_domain.c   Thu Mar 18 07:44:21 2010 +0000
@@ -138,8 +138,7 @@ int xc_vcpu_getaffinity(int xc_handle,
 int xc_vcpu_getaffinity(int xc_handle,
                         uint32_t domid,
                         int vcpu,
-                        uint64_t *cpumap,
-                        int cpusize)
+                        uint64_t *cpumap, int cpusize)
 {
     DECLARE_DOMCTL;
     int ret = -1;
diff -r 04cb0829d138 -r 84c563da39c8 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Wed Mar 17 14:10:43 2010 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c Thu Mar 18 07:44:21 2010 +0000
@@ -220,10 +220,9 @@ static PyObject *pyxc_vcpu_setaffinity(X
     int nr_cpus, size;
     xc_physinfo_t info; 
     xc_cpu_to_node_t map[1];
-    uint64_t cpumap_size = sizeof(cpumap); 
+    uint64_t cpumap_size = sizeof(*cpumap); 
 
     static char *kwd_list[] = { "domid", "vcpu", "cpumap", NULL };
-    
 
     if ( !PyArg_ParseTupleAndKeywords(args, kwds, "i|iO", kwd_list, 
                                       &dom, &vcpu, &cpulist) )
@@ -240,7 +239,6 @@ static PyObject *pyxc_vcpu_setaffinity(X
     cpumap = malloc(cpumap_size * size);
     if(cpumap == NULL)
         return pyxc_error_to_exception();
-    
 
     if ( (cpulist != NULL) && PyList_Check(cpulist) )
     {
@@ -251,7 +249,7 @@ static PyObject *pyxc_vcpu_setaffinity(X
         for ( i = 0; i < PyList_Size(cpulist); i++ ) 
         {
             long cpu = PyInt_AsLong(PyList_GetItem(cpulist, i));
-            *(cpumap + cpu / (cpumap_size * 8)) |= (uint64_t)1 << (cpu % 
(cpumap_size * 8));
+            cpumap[cpu / (cpumap_size * 8)] |= (uint64_t)1 << (cpu % 
(cpumap_size * 8));
         }
     }
   
@@ -260,7 +258,6 @@ static PyObject *pyxc_vcpu_setaffinity(X
         free(cpumap);
         return pyxc_error_to_exception();
     }
-
     Py_INCREF(zero);
     free(cpumap); 
     return zero;
@@ -385,7 +382,7 @@ static PyObject *pyxc_vcpu_getinfo(XcObj
     int nr_cpus, size;
     xc_physinfo_t pinfo = { 0 };
     xc_cpu_to_node_t map[1];
-    uint64_t cpumap_size = sizeof(cpumap);
+    uint64_t cpumap_size = sizeof(*cpumap);
 
     static char *kwd_list[] = { "domid", "vcpu", NULL };
     
@@ -419,16 +416,15 @@ static PyObject *pyxc_vcpu_getinfo(XcObj
                               "running",  info.running,
                               "cpu_time", info.cpu_time,
                               "cpu",      info.cpu);
-
     cpulist = PyList_New(0);
-    for ( i = 0; i < size * cpumap_size * 8; i++ )
+    for ( i = 0; i < nr_cpus; i++ )
     {
         if (*(cpumap + i / (cpumap_size * 8)) & 1 ) {
             PyObject *pyint = PyInt_FromLong(i);
             PyList_Append(cpulist, pyint);
             Py_DECREF(pyint);
         }
-        *(cpumap + i / (cpumap_size * 8)) >>= 1;
+        cpumap[i / (cpumap_size * 8)] >>= 1;
     }
     PyDict_SetItemString(info_dict, "cpumap", cpulist);
     Py_DECREF(cpulist);

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.