
On Mon, Nov 26, 2007 at 11:12:29AM +0900, Saori Fukuta wrote:
Hi,
I want to change the cpu pinning for inactive domain on RHEL-5.1. So, I just add the xenXMDomainPinVcpu to xm_internal.c. We will be allowed to change "cpus" parameter in configuration file with "vcpupin" command by this patch, like "setmem" or "setvcpus".
There is 2 things to note: - This is an effective feature for inactive domain with Xen3.0.3 (less than 3 of xendConfigVersion). - On the above environment, the number which specified as <vcpu> is ignored, because the virtual CPUs is not present when domain is shut off. So, when executing "vcpupin" command with this option # virsh vcpupin Guest 0 1 "0"(vcpu) is ignored and "1"(cpulist) is set to configuration file as "cpus". # cat /etc/xen/Guest | grep cpus cpus = "1"
Hi Saori, thanks for looking at this, I think this could be fixed but there is just a couple of things i feel a bit uneasy with the patch: - they work with arrays allocated on the stack of fixed dimention (and rather big), i would rather see a dynamic allocation of the array to a more reasonnable size and growing them dynamically - the repeted use of strcat on each cpu pinning found makes it a quadratic algorithm though it could really be linear if one kept a pointer to the current end of the buffer - the ranges variable is defined in the middle of the function, this may look notmal in C++ but this is against the conventions in libvirt C code. I think the code should be reworked a bit around those lines, but I have no doubt we can quickly get to a fix in libvirt, thanks ! Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/