[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 01/19] xen: dump vNUMA information with debug key "u"



On Tue, Jan 13, 2015 at 07:21:47PM +0000, Andrew Cooper wrote:
> On 13/01/15 12:11, Wei Liu wrote:
> > @@ -408,6 +413,49 @@ 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 )
> > +                continue;
> 
> Nit - extraneous whitespace.
> 

I noticed this when I try to add lock. This is now fixed.

> > +
> > +        vnuma = d->vnuma;
> > +        printk("     %u vnodes, %u vcpus:\n", vnuma->nr_vnodes, 
> > d->max_vcpus);
> > +        for ( i = 0; i < vnuma->nr_vnodes; i++ )
> > +        {
> > +            err = snprintf(keyhandler_scratch, 12, "%3u",
> > +                    vnuma->vnode_to_pnode[i]);
> > +            if ( err < 0 || vnuma->vnode_to_pnode[i] == NUMA_NO_NODE )
> > +                strlcpy(keyhandler_scratch, "???", 3);
> > +
> > +            printk("       vnode  %3u - pnode %s\n", i, 
> > keyhandler_scratch);
> > +            for ( j = 0; j < vnuma->nr_vmemranges; j++ )
> > +            {
> > +                if ( vnuma->vmemrange[j].nid == i )
> > +                {
> > +                    printk("         %016"PRIx64" - %016"PRIx64"\n",
> > +                           vnuma->vmemrange[j].start,
> > +                           vnuma->vmemrange[j].end);
> > +                }
> > +            }
> > +
> > +            printk("       vcpus: ");
> > +            for ( j = 0, n = 0; j < d->max_vcpus; j++ )
> > +            {
> > +                if ( !(j & 0x3f) )
> > +                    process_pending_softirqs();
> > +
> > +                if ( vnuma->vcpu_to_vnode[j] == i )
> > +                {
> > +                    if ( (n + 1) % 8 == 0 )
> > +                        printk("%3d\n", j);
> > +                    else if ( !(n % 8) && n != 0 )
> > +                        printk("%17d ", j);
> > +                    else
> > +                        printk("%3d ", j);
> > +                    n++;
> > +                }
> 
> Do you have a sample of what this looks like for a VM with more than 8
> vcpus ?
> 

(XEN) Memory location of each domain:
(XEN) Domain 0 (total: 131072):
(XEN)     Node 0: 131072
(XEN) Domain 6 (total: 768064):
(XEN)     Node 0: 768064
(XEN)      2 vnodes, 20 vcpus:
(XEN)        vnode    0 - pnode   0
(XEN)          0000000000000000 - 000000005dc00000
(XEN)        vcpus:   0   1   2   3   4   5   6   7
(XEN)                 8   9
(XEN)        vnode    1 - pnode   0
(XEN)          000000005dc00000 - 00000000bb000000
(XEN)          0000000100000000 - 0000000100800000
(XEN)        vcpus:  10  11  12  13  14  15  16  17
(XEN)                18  19

> ~Andrew
> 
> > +            }
> > +            printk("\n");
> > +        }
> >      }
> >  
> >      rcu_read_unlock(&domlist_read_lock);
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.