On Wed, Oct 31, 2007 at 05:20:01PM +0900, Saori Fukuta wrote: > On Tue, 30 Oct 2007 16:54:36 -0400 Daniel Veillard wrote: > > The associated patch compiles, but I have not yet tested it, it's > > basically how I would expect to finish the NUMA work, but it certainly need > > debug and testing. I will look at this tomorrow, but I welcome feedback :-) > > sounds good to me, I tested with your patch, and I have four fixes for it. Cool thanks a lot for debugging while I was asleep :-) > This is a test I did : > [on RHEL5.1] > --------------------------------------------------------------- > dumpxml (conf -> XML) state:inactive ...(1) and (2) > (SExpr -> XML) state:active > define (XML -> conf) > create (XML -> SExpr) > start (conf -> XML -> SExpr) > > [on fedora8] > --------------------------------------------------------------- > dumpxml (SExpr -> XML) state:inactive (cannot get by Xen) ...(3) > (SExpr -> XML) state:active (get by Xen) ...(3) > define (XML -> SExpr) > create (XML -> SExpr) > start (nothing translation) excellent, thanks a lot ! > (1) numa6_fix1.patch > I cannot run the dumpxml command with inactive domain on RHEL5.1. > So, I added the check of domain ID and xendConfigVersion. yes makes sense ! I also fixed that routine in the XEND case because the value for cpus was leaked if non-NULL. > (2) numa6_fix2.patch > The discontinuous number is invalid for inactive domain on RHEL5.1. > I guess the cause is wrong argument is specified as maxcpu. > (e.g.) > - normal case > conf : cpus = "0,1" > dumpxml: <vcpu cpuset='0,1'>4</vcpu> > - invalid case > conf : cpus = "0,3" > dumpxml: <vcpu cpuset='0'>4</vcpu> Hum .... right this is a bug, I tried to be smart and failed :-) > (3) numa6_fix3.patch > The expression is different between inactive domain and active domain, > when I don't have vcpu setting for the domain (i.e. "any cpu" is pinned). > inactive domain : <vcpu cpuset=''>2</vcpu> > active domain : <vcpu>2</vcpu> > So, I conform to the expression of active domain. oh, yes another bug ! > (4) numa6_fix4.patch > The expression is different between "xm vcpu-list" and "virsh dumpxml", > when I specified continuous number. > (e.g.) > # xm vcpu-list 200 > Name ID VCPUs CPU State Time(s) CPU Affinity > test 200 0 1 -b- 10.9 0-1 > test 200 1 0 -b- 9.1 0-1 > test 200 2 4 -b- 3.1 3-4 > test 200 3 5 -b- 3.9 5-6 > # ./virsh dumpxml 200| grep cpu > <vcpu cpuset='0,1,3-6'>4</vcpu> > So, I change the expression from "," to "-"(range) that I can use to > create the domain. > (e.g.) > # ./virsh dumpxml 200| grep cpu > <vcpu cpuset='0-1,3-6'>4</vcpu> Hum, I'm not sure why you prefer to use a range for 2 consecutive values, this should be equivalent both for xend and libvirt, but it's a bit simpler, so no problem ! I commited the aggregated patches, I think at this point we should be okay with NUMA support except for potential bugs showing up on testing and the vcpu pinning informations storage which I still think would be better addressed at the virsh level. What is needed now is more testing I think. thanks a lot for your fast testing and debugging ! Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list