Alex Williamson
2007-Mar-05 19:42 UTC
[Xen-devel] [PATCH] more flexibility in gathering data from /proc/cpuinfo
Add ia64 mapping for cpuinfo data and make the case where #vcpu !#pcpu more
flexible (don''t rely on cpu0 existing). Thanks,
Alex
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
---
diff -r 53589c343d46 tools/python/xen/xend/XendNode.py
--- a/tools/python/xen/xend/XendNode.py Mon Mar 05 18:10:41 2007 +0000
+++ b/tools/python/xen/xend/XendNode.py Mon Mar 05 12:04:38 2007 -0700
@@ -22,7 +22,7 @@ import xen.lowlevel.xc
from xen.util import Brctl
-from xen.xend import uuid
+from xen.xend import uuid, arch
from xen.xend.XendError import *
from xen.xend.XendOptions import instance as xendoptions
from xen.xend.XendQCoWStorageRepo import XendQCoWStorageRepo
@@ -98,20 +98,37 @@ class XendNode:
log.error(self.cpus[u])
number = self.cpus[u][''number'']
# We can run off the end of the cpuinfo list if domain0 does not
- # have #vcpus == #pcpus. In that case we just replicate pcpu0 info.
+ # have #vcpus == #pcpus. In that case we just replicate one
that''s
+ # in the hash table.
if not cpuinfo.has_key(number):
- number = 0
+ number = cpuinfo.keys()[0]
log.error(number)
log.error(cpuinfo)
- self.cpus[u].update(
- { ''host'' : self.uuid,
- ''features'' : cpu_features,
- ''speed'' :
int(float(cpuinfo[number][''cpu MHz''])),
- ''vendor'' :
cpuinfo[number][''vendor_id''],
- ''modelname'':
cpuinfo[number][''model name''],
- ''stepping'' :
cpuinfo[number][''stepping''],
- ''flags'' :
cpuinfo[number][''flags''],
- })
+ if arch.type == "x86":
+ self.cpus[u].update(
+ { ''host'' : self.uuid,
+ ''features'' : cpu_features,
+ ''speed'' :
int(float(cpuinfo[number][''cpu MHz''])),
+ ''vendor'' :
cpuinfo[number][''vendor_id''],
+ ''modelname'':
cpuinfo[number][''model name''],
+ ''stepping'' :
cpuinfo[number][''stepping''],
+ ''flags'' :
cpuinfo[number][''flags''],
+ })
+ elif arch.type == "ia64":
+ self.cpus[u].update(
+ { ''host'' : self.uuid,
+ ''features'' : cpu_features,
+ ''speed'' :
int(float(cpuinfo[number][''cpu MHz''])),
+ ''vendor'' :
cpuinfo[number][''vendor''],
+ ''modelname'':
cpuinfo[number][''family''],
+ ''stepping'' :
cpuinfo[number][''model''],
+ ''flags'' :
cpuinfo[number][''features''],
+ })
+ else:
+ self.cpus[u].update(
+ { ''host'' : self.uuid,
+ ''features'' : cpu_features,
+ })
self.pifs = {}
self.pif_metrics = {}
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel