aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-10-19 18:00:10 +0100
committerKeir Fraser <keir@xensource.com>2007-10-19 18:00:10 +0100
commit07f557cb63359808a29d14b2359f5c9c3e2c4973 (patch)
tree80354b497066ccea8b09834658d49d9a76ff7fed /tools
parentf475a034a7560a64416f9fde0f035b74ef3ac2ea (diff)
downloadxen-07f557cb63359808a29d14b2359f5c9c3e2c4973.tar.gz
xen-07f557cb63359808a29d14b2359f5c9c3e2c4973.tar.bz2
xen-07f557cb63359808a29d14b2359f5c9c3e2c4973.zip
Replace sysctl.physinfo.sockets_per_node with more directly useful
sysctl.physinfo.nr_cpus. This also avoids miscalculation of sockets_per_node by Xen where the number of CPUs in the system is clipped. From: Elizabeth Kon <eak@us.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/python/xen/lowlevel/xc/xc.c2
-rw-r--r--tools/python/xen/xend/XendNode.py11
-rw-r--r--tools/python/xen/xm/main.py3
-rw-r--r--tools/xenmon/xenbaked.c5
-rw-r--r--tools/xenstat/libxenstat/src/xenstat.c4
-rw-r--r--tools/xentrace/xentrace.c5
-rw-r--r--tools/xm-test/lib/XmTestLib/Xm.py6
-rw-r--r--tools/xm-test/lib/XmTestReport/OSReport.py1
8 files changed, 8 insertions, 29 deletions
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 07dd574c58..5716dbf2ec 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -801,7 +801,7 @@ static PyObject *pyxc_physinfo(XcObject *self)
"max_cpu_id", info.max_cpu_id,
"threads_per_core", info.threads_per_core,
"cores_per_socket", info.cores_per_socket,
- "sockets_per_node", info.sockets_per_node,
+ "nr_cpus", info.nr_cpus,
"total_memory", pages_to_kib(info.total_pages),
"free_memory", pages_to_kib(info.free_pages),
"scrub_memory", pages_to_kib(info.scrub_pages),
diff --git a/tools/python/xen/xend/XendNode.py b/tools/python/xen/xend/XendNode.py
index 969c72dbc7..cde65142f1 100644
--- a/tools/python/xen/xend/XendNode.py
+++ b/tools/python/xen/xend/XendNode.py
@@ -475,7 +475,7 @@ class XendNode:
cpu_info = {
"nr_nodes": phys_info["nr_nodes"],
- "sockets_per_node": phys_info["sockets_per_node"],
+ "nr_cpus": phys_info["nr_cpus"],
"cores_per_socket": phys_info["cores_per_socket"],
"threads_per_core": phys_info["threads_per_core"]
}
@@ -580,17 +580,9 @@ class XendNode:
str='none\n'
return str[:-1];
- def count_cpus(self, pinfo):
- count=0
- node_to_cpu=pinfo['node_to_cpu']
- for i in range(0, pinfo['nr_nodes']):
- count+=len(node_to_cpu[i])
- return count;
-
def physinfo(self):
info = self.xc.physinfo()
- info['nr_cpus'] = self.count_cpus(info)
info['cpu_mhz'] = info['cpu_khz'] / 1000
# physinfo is in KiB, need it in MiB
@@ -600,7 +592,6 @@ class XendNode:
ITEM_ORDER = ['nr_cpus',
'nr_nodes',
- 'sockets_per_node',
'cores_per_socket',
'threads_per_core',
'cpu_mhz',
diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py
index f728b858ab..929f7c1c1e 100644
--- a/tools/python/xen/xm/main.py
+++ b/tools/python/xen/xm/main.py
@@ -1667,9 +1667,8 @@ def xm_info(args):
"release": getVal(["software_version", "release"]),
"version": getVal(["software_version", "version"]),
"machine": getVal(["software_version", "machine"]),
- "nr_cpus": len(getVal(["host_CPUs"], [])),
+ "nr_cpus": getVal(["cpu_configuration", "nr_cpus"]),
"nr_nodes": getVal(["cpu_configuration", "nr_nodes"]),
- "sockets_per_node": getVal(["cpu_configuration", "sockets_per_node"]),
"cores_per_socket": getVal(["cpu_configuration", "cores_per_socket"]),
"threads_per_core": getVal(["cpu_configuration", "threads_per_core"]),
"cpu_mhz": getCpuMhz(),
diff --git a/tools/xenmon/xenbaked.c b/tools/xenmon/xenbaked.c
index 35bc8a89e2..afca2f2168 100644
--- a/tools/xenmon/xenbaked.c
+++ b/tools/xenmon/xenbaked.c
@@ -460,10 +460,7 @@ unsigned int get_num_cpus(void)
xc_interface_close(xc_handle);
opts.cpu_freq = (double)physinfo.cpu_khz/1000.0;
- return (physinfo.threads_per_core *
- physinfo.cores_per_socket *
- physinfo.sockets_per_node *
- physinfo.nr_nodes);
+ return physinfo.nr_cpus;
}
diff --git a/tools/xenstat/libxenstat/src/xenstat.c b/tools/xenstat/libxenstat/src/xenstat.c
index 461806ec7d..559fb9bec6 100644
--- a/tools/xenstat/libxenstat/src/xenstat.c
+++ b/tools/xenstat/libxenstat/src/xenstat.c
@@ -155,9 +155,7 @@ xenstat_node *xenstat_get_node(xenstat_handle * handle, unsigned int flags)
}
node->cpu_hz = ((unsigned long long)physinfo.cpu_khz) * 1000ULL;
- node->num_cpus =
- (physinfo.threads_per_core * physinfo.cores_per_socket *
- physinfo.sockets_per_node * physinfo.nr_nodes);
+ node->num_cpus = physinfo.nr_cpus;
node->tot_mem = ((unsigned long long)physinfo.total_pages)
* handle->page_size;
node->free_mem = ((unsigned long long)physinfo.free_pages)
diff --git a/tools/xentrace/xentrace.c b/tools/xentrace/xentrace.c
index fdb5d5e57f..17df72fe9d 100644
--- a/tools/xentrace/xentrace.c
+++ b/tools/xentrace/xentrace.c
@@ -309,10 +309,7 @@ unsigned int get_num_cpus(void)
xc_interface_close(xc_handle);
- return (physinfo.threads_per_core *
- physinfo.cores_per_socket *
- physinfo.sockets_per_node *
- physinfo.nr_nodes);
+ return physinfo.nr_cpus;
}
diff --git a/tools/xm-test/lib/XmTestLib/Xm.py b/tools/xm-test/lib/XmTestLib/Xm.py
index 6f1e33c153..6eeab7bb9d 100644
--- a/tools/xm-test/lib/XmTestLib/Xm.py
+++ b/tools/xm-test/lib/XmTestLib/Xm.py
@@ -218,11 +218,9 @@ def restartXend():
return status
def smpConcurrencyLevel():
- cores = int(getInfo("cores_per_socket"))
- threads = int(getInfo("threads_per_core"))
- sockets = int(getInfo("sockets_per_node"))
+ nr_cpus = int(getInfo("nr_cpus"))
- return cores * sockets * threads
+ return nr_cpus
if __name__ == "__main__":
if isDomainRunning("0"):
diff --git a/tools/xm-test/lib/XmTestReport/OSReport.py b/tools/xm-test/lib/XmTestReport/OSReport.py
index 80bb4bed53..4eaa20cae9 100644
--- a/tools/xm-test/lib/XmTestReport/OSReport.py
+++ b/tools/xm-test/lib/XmTestReport/OSReport.py
@@ -92,7 +92,6 @@ class Machine:
xenValues = {"nr_cpus" : "Unknown",
"nr_nodes" : "Unknown",
- "sockets_per_node" : "Unknown",
"cores_per_socket" : "Unknown",
"threads_per_core" : "Unknown",
"cpu_mhz" : "Unknown",