aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/man/xm.pod.11
-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
-rw-r--r--xen/arch/ia64/xen/dom0_ops.c14
-rw-r--r--xen/arch/powerpc/sysctl.c4
-rw-r--r--xen/arch/x86/sysctl.c4
-rw-r--r--xen/include/public/sysctl.h4
13 files changed, 14 insertions, 50 deletions
diff --git a/docs/man/xm.pod.1 b/docs/man/xm.pod.1
index 602993342c..72932dee93 100644
--- a/docs/man/xm.pod.1
+++ b/docs/man/xm.pod.1
@@ -446,7 +446,6 @@ page more readable):
machine : i686
nr_cpus : 2
nr_nodes : 1
- sockets_per_node : 2
cores_per_socket : 1
threads_per_core : 1
cpu_mhz : 696
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",
diff --git a/xen/arch/ia64/xen/dom0_ops.c b/xen/arch/ia64/xen/dom0_ops.c
index 4f683561e2..b92e51ba0e 100644
--- a/xen/arch/ia64/xen/dom0_ops.c
+++ b/xen/arch/ia64/xen/dom0_ops.c
@@ -251,7 +251,7 @@ long arch_do_sysctl(xen_sysctl_t *op, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
{
case XEN_SYSCTL_physinfo:
{
- int i, node_cpus = 0;
+ int i;
uint32_t max_array_ent;
xen_sysctl_physinfo_t *pi = &op->u.physinfo;
@@ -259,18 +259,8 @@ long arch_do_sysctl(xen_sysctl_t *op, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
pi->threads_per_core = cpus_weight(cpu_sibling_map[0]);
pi->cores_per_socket =
cpus_weight(cpu_core_map[0]) / pi->threads_per_core;
+ pi->nr_cpus = (u32)num_online_cpus();
pi->nr_nodes = num_online_nodes();
-
- /*
- * Guess at a sockets_per_node value. Use the maximum number of
- * CPUs per node to avoid deconfigured CPUs breaking the average.
- */
- for_each_online_node(i)
- node_cpus = max(node_cpus, cpus_weight(node_to_cpumask(i)));
-
- pi->sockets_per_node = node_cpus /
- (pi->cores_per_socket * pi->threads_per_core);
-
pi->total_pages = total_pages;
pi->free_pages = avail_domheap_pages();
pi->scrub_pages = avail_scrub_pages();
diff --git a/xen/arch/powerpc/sysctl.c b/xen/arch/powerpc/sysctl.c
index cc1e23181a..b211d4f9f7 100644
--- a/xen/arch/powerpc/sysctl.c
+++ b/xen/arch/powerpc/sysctl.c
@@ -45,9 +45,7 @@ long arch_do_sysctl(struct xen_sysctl *sysctl,
cpus_weight(cpu_sibling_map[0]);
pi->cores_per_socket =
cpus_weight(cpu_core_map[0]) / pi->threads_per_core;
- pi->sockets_per_node = num_online_cpus() /
- (num_online_nodes() * pi->cores_per_socket * pi->threads_per_core);
-
+ pi->nr_cpus = (u32)num_online_cpus();
pi->nr_nodes = num_online_nodes();
pi->total_pages = total_pages;
pi->free_pages = avail_domheap_pages();
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index e518d4ce49..db94bfd812 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -51,10 +51,8 @@ long arch_do_sysctl(
cpus_weight(cpu_sibling_map[0]);
pi->cores_per_socket =
cpus_weight(cpu_core_map[0]) / pi->threads_per_core;
+ pi->nr_cpus = (u32)num_online_cpus();
pi->nr_nodes = num_online_nodes();
- pi->sockets_per_node = num_online_cpus() /
- (pi->nr_nodes * pi->cores_per_socket * pi->threads_per_core);
-
pi->total_pages = total_pages;
pi->free_pages = avail_domheap_pages();
pi->scrub_pages = avail_scrub_pages();
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 1088a275e0..5e4ad0b01a 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -34,7 +34,7 @@
#include "xen.h"
#include "domctl.h"
-#define XEN_SYSCTL_INTERFACE_VERSION 0x00000004
+#define XEN_SYSCTL_INTERFACE_VERSION 0x00000005
/*
* Read console content from Xen buffer ring.
@@ -79,7 +79,7 @@ struct xen_sysctl_physinfo {
/* IN variables. */
uint32_t threads_per_core;
uint32_t cores_per_socket;
- uint32_t sockets_per_node;
+ uint32_t nr_cpus;
uint32_t nr_nodes;
uint32_t cpu_khz;
uint64_aligned_t total_pages;