mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xend: Add support for cpuinfo data on Solaris
Signed-off-by: Russell Blaine <russell.blaine@sun.com>
This commit is contained in:
1 parent
1f7a575203
commit
75c9ba7911
1 file changed
+47
@@ -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):
|
||||
|
||||