Prints basic information about vNUMA topology for vNUMA enabled domains when issuing debug-key ''u''. Signed-off-by: Elena Ufimtseva <ufimtseva@gmail.com> --- xen/arch/x86/numa.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c index b141877..8bd34d0 100644 --- a/xen/arch/x86/numa.c +++ b/xen/arch/x86/numa.c @@ -389,6 +389,25 @@ static void dump_numa(unsigned char key) for_each_online_node(i) printk(" Node %u: %u\n", i, page_num_node[i]); + + if (d->vnuma.nr_vnodes > 0) + { + printk(" Domain has %d vnodes\n", d->vnuma.nr_vnodes); + for (i = 0; i < d->vnuma.nr_vnodes; i++) { + printk(" vnode %d - pnode %d:", i, + d->vnuma.vnode_numamap[i] >= MAX_NUMNODES ? + -1 : d->vnuma.vnode_numamap[i]); + printk(" %"PRIu64" MB \n", + (d->vnuma.vmemrange[i].end - + d->vnuma.vmemrange[i].start) >> 20); + } + printk(" Domain vcpu to vnode: \n"); + for (i = 0; i < d->max_vcpus; i++) + printk("%s%d %s", i % 8 == 0 ? " " : "", + d->vnuma.vcpu_to_vnode[i], + (i + 1) % 8 == 0 ? "\n" : ""); + printk("\n"); + } } rcu_read_unlock(&domlist_read_lock); -- 1.7.10.4
>>> On 14.11.13 at 04:27, Elena Ufimtseva <ufimtseva@gmail.com> wrote: > --- a/xen/arch/x86/numa.c > +++ b/xen/arch/x86/numa.c > @@ -389,6 +389,25 @@ static void dump_numa(unsigned char key) > > for_each_online_node(i) > printk(" Node %u: %u\n", i, page_num_node[i]); > + > + if (d->vnuma.nr_vnodes > 0) > + { > + printk(" Domain has %d vnodes\n", d->vnuma.nr_vnodes); > + for (i = 0; i < d->vnuma.nr_vnodes; i++) { > + printk(" vnode %d - pnode %d:", i, > + d->vnuma.vnode_numamap[i] >= MAX_NUMNODES ? > + -1 : d->vnuma.vnode_numamap[i]); > + printk(" %"PRIu64" MB \n", > + (d->vnuma.vmemrange[i].end - > + d->vnuma.vmemrange[i].start) >> 20); > + } > + printk(" Domain vcpu to vnode: \n"); > + for (i = 0; i < d->max_vcpus; i++) > + printk("%s%d %s", i % 8 == 0 ? " " : "", > + d->vnuma.vcpu_to_vnode[i], > + (i + 1) % 8 == 0 ? "\n" : ""); > + printk("\n"); > + }Looks okay, but needs to be cleaned up coding style wise. Jan