On 30/08/18 10:16, Jan Beulich wrote: >>>> On 29.08.18 at 20:23, <jgr...@suse.com> wrote: >> 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, while the data is set to "invalid" for not present >> cpus only. >> >> With smt=0 the information for parked threads is all zero, so it should >> be best to return "invalid" information for offline cpus. >> >> On a dual core system 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 > > But there's nothing wrong here. The interesting part is what would be > printed for CPU 3 (perhaps on a more than two cores system). After > all topology is valid irrespective of whether a CPU is online - it all > depends on whether the hypervisor still has the information available. > It is for a reason that cpu_smpboot_free() invalidates certain fields > only upon CPU removal: > > if ( remove ) > { > c[cpu].phys_proc_id = XEN_INVALID_SOCKET_ID; > c[cpu].cpu_core_id = XEN_INVALID_CORE_ID; > c[cpu].compute_unit_id = INVALID_CUID; > > On a 6-core system I see > > cpu: core socket node > 0: 0 0 0 > 1: 0 0 0 > 2: 1 0 0 > 3: 1 0 0 > 4: 2 0 0 > 5: 2 0 0 > 6: 8 0 0 > 7: 8 0 0 > 8: 9 0 0 > 9: 9 0 0 > 10: 10 0 0 > > which looks fine to me, apart from the missing info on CPU 11.
I can change the patch to print the information for the offline cpus (including the now missing ones), too. What is the preferred solution? Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel