On 06/01/15 02:18, Boris Ostrovsky wrote: > Instead of copying data for each field in xen_sysctl_topologyinfo separately > put cpu/socket/node into a single structure and do a single copy for each > processor. > > There is also no need to copy whole op to user at the end, max_cpu_index is > sufficient > > Rename xen_sysctl_topologyinfo and XEN_SYSCTL_topologyinfo to reflect the fact > that these are used for CPU topology. Subsequent patch will add support for > PCI topology sysctl. > > Signed-off-by: Boris Ostrovsky <boris.ostrov...@oracle.com>
If we are going to change the hypercall, then can we see about making it a stable interface (i.e. not a sysctl/domctl)? There are non-toolstack components which might want/need access to this information. (i.e. I am still looking for a reasonable way to get this information from Xen in hwloc) > <snip> > > + if ( cpu_online(i) ) > { > - uint32_t socket = cpu_online(i) ? cpu_to_socket(i) : ~0u; > - if ( copy_to_guest_offset(ti->cpu_to_socket, i, &socket, 1) ) > - break; > + cputopo.core = cpu_to_core(i); > + cputopo.socket = cpu_to_socket(i); > + cputopo.node = cpu_to_node(i); > } > - if ( !guest_handle_is_null(ti->cpu_to_node) ) > + else > + cputopo.core = cputopo.socket = > + cputopo.node = INVALID_TOPOLOGY_ID; > + In particular, can we fix this broken behaviour. The cpu being online or not has no bearing on whether Xen has topology information, and a side effect is that when the cpu governer powers down a cpu, it disappears from the reported topology. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel