xen: fill topology info for all present cpus

The topology information obtainable via XEN_SYSCTL_cputopoinfo is
filled rather weird: the size of the array is derived from the highest
online cpu number, so in case there are trailing offline cpus they
will not be included.

On a dual core system with 4 threads booted with smt=0 without this
patch xl info -n will print:

cpu_topology           :
cpu:    core    socket     node
  0:       0        0        0
  1:       0        0        0
  2:       1        0        0

while with this patch the output is:

cpu_topology           :
cpu:    core    socket     node
  0:       0        0        0
  1:       0        0        0
  2:       1        0        0
  3:       1        0        0

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
Juergen Gross authored and Wei Liu committed 2018-09-05 11:21:26 +01:00
1 parent 2ec5339ec9
commit 780e2d3098
1 file changed
+1 -1
+1 -1
View File
@@ -349,7 +349,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
unsigned int i, num_cpus;
struct xen_sysctl_cputopoinfo *ti = &op->u.cputopoinfo;
num_cpus = cpumask_last(&cpu_online_map) + 1;
num_cpus = cpumask_last(&cpu_present_map) + 1;
if ( !guest_handle_is_null(ti->cputopo) )
{
struct xen_sysctl_cputopo cputopo = { };
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.