On Tue, Jul 22, 2008 at 05:23:00PM +0100, Daniel P. Berrange wrote: > On Tue, Jul 22, 2008 at 04:53:19PM +0100, Daniel P. Berrange wrote: > > On Tue, Jul 22, 2008 at 11:42:03AM -0400, Cole Robinson wrote: > > > Hi all, > > > > > > I've hit a couple bugs in the qemu driver with the recent > > > domain xml refactoring. I've debugged them but in both > > > cases I'm not sure what the optimal solutions are, so I'm > > > just laying them out here: > > > > > > 1) Previously defining a qemu guest without a 'listen' > > > address specified in the graphics tag would default to > > > 127.0.0.1 (hardcoded in qemu_driver->vncListen). Current > > > xml doesn't set this default, and will build a qemu > > > command line with an entry like '-vnc (null):1'. Not > > > sure if the default should be set at the parsing level > > > or the driver level. > > > > There was a good reason for removing the 127.0.0.1 from the XML parsing > > stage, but i can't remember what it is :-) Anyway this should really be > > handled at the point where we build the command line in the qemu driver > > code > > Oh I remember now - both Xen and QEMU have a global default setting > for VNC listen (/etc/libvirt/qemu.conf and /etc/xen/xend-config.sxp). > So, if we default to '127.0.0.1' in the parser, we'll always override > the global hypervisor default setting. Hence we need to apply any > defaults in the individual drivers at time of guest creation (if it > is applicable). Here's a suggested patch for this: diff -r 59140de4e7a9 src/qemu_driver.c --- a/src/qemu_driver.c Mon Jul 21 18:27:29 2008 +0100 +++ b/src/qemu_driver.c Tue Jul 22 22:12:22 2008 +0100 @@ -769,9 +769,14 @@ maxcpu = nodeinfo.cpus; CPU_ZERO(&mask); - for (i = 0 ; i < maxcpu ; i++) - if (vm->def->cpumask[i]) + if (vm->def->cpumask) { + for (i = 0 ; i < maxcpu ; i++) + if (vm->def->cpumask[i]) + CPU_SET(i, &mask); + } else { + for (i = 0 ; i < maxcpu ; i++) CPU_SET(i, &mask); + } for (i = 0 ; i < vm->nvcpupids ; i++) { if (sched_setaffinity(vm->vcpupids[i], NB, I explicitly set the affinity if none is specified - this makes sure the children don't inherit any bogus affinity from the libvirtd daemon itself Daniel. -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list