[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: Add support for cpuinfo data on Solaris
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1236855464 0 # Node ID e261fa202e39707ebe3a4964e27fd50f286d8f09 # Parent fc24bd05571e64edd0202c2734e3c74b879a4ab2 xend: Add support for cpuinfo data on Solaris Signed-off-by: Russell Blaine <russell.blaine@xxxxxxx> --- tools/python/xen/xend/osdep.py | 47 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+) diff -r fc24bd05571e -r e261fa202e39 tools/python/xen/xend/osdep.py --- a/tools/python/xen/xend/osdep.py Thu Mar 12 10:57:19 2009 +0000 +++ b/tools/python/xen/xend/osdep.py Thu Mar 12 10:57:44 2009 +0000 @@ -18,6 +18,7 @@ # Use is subject to license terms. import os +import commands _scripts_dir = { "Linux": "/etc/xen/scripts", @@ -142,7 +143,53 @@ def _linux_get_cpuinfo(): finally: f.close() +def _solaris_get_cpuinfo(): + cpuinfo = {} + + # call kstat to extrace specific cpu_info output + cmd = "/usr/bin/kstat -p -c misc -m cpu_info" + kstatoutput = commands.getoutput (cmd) + + # walk each line + for kstatline in kstatoutput.split('\n'): + + # split the line on + # module:cpu #:module#:name value + (module, cpunum, combo, namevalue) = kstatline.split (":") + + # check to see if this cpunum is already a key. If not, + # initialize an empty hash table + if not cpuinfo.has_key (int(cpunum)): + cpuinfo[int(cpunum)] = {} + + # split the namevalue output on whitespace + data = namevalue.split() + + # the key will be data[0] + key = data[0] + + # check the length of the data list. If it's larger than + # 2, join the rest of the list together with a space. + # Otherwise, value is just data[1] + if len (data) > 2: + value = ' '.join (data[1:]) + else: + value = data[1] + + # add this key/value pair to the cpuhash + cpuinfo[int(cpunum)][key] = value + + # Translate Solaris tokens into what Xend expects + for key in cpuinfo.keys(): + cpuinfo[key]["flags"] = "" + cpuinfo[key]["model name"] = cpuinfo[key]["brand"] + cpuinfo[key]["cpu MHz"] = cpuinfo[key]["clock_MHz"] + + # return the hash table + return cpuinfo + _get_cpuinfo = { + "SunOS": _solaris_get_cpuinfo } def _get(var, default=None): _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |