On Tue, Jul 21, 2009 at 05:28:27PM -0400, Jim Paris wrote: > Daniel P. Berrange wrote: > > On Tue, Jul 21, 2009 at 09:46:17AM -0400, Jim Paris wrote: > > > Speaking of this, I've noticed that > > > > > > <domain type='qemu'> > > > <os> > > > <type arch='i686' machine='pc'>hvm</type> > > > </os> > > > </domain> > > > > > > runs WITH kvm on an x86_64 system. Is that intended? > > > > No, its not intended ! > ... > > I'm actually wondering why we bother with #1 at all. If the > > binary has '-no-kvm' and the domain is 'qemu', then it should > > be used no matter what arch. > > Agreed. Below is a patch which should fix the oversight (lightly > tested). > > However, this is going to be a user-visible change and may cause > people to complain that their existing 32-bit domains are unexpectedly > running with -no-kvm. Is that OK? Technically it's a misconfiguration. Counterpoint: people complaining that they requested 'qemu' and got 'kvm' which they didn't want :-) As you say anyone relying on this using KVM has mis-configured their VM. > For the record, I think we've already broken this area once when > 0.6.2 came out -- previous to that, even my 64-bit VMs had domain type > "qemu", and libvirt ran my specified kvm binary without -no-kvm. Yep, one or two people got tripped up by this, but its trivial for them to fix it & we didn't get any large number of bug reports. > >From f7edd4c887512e4fc7c97b12a4f2409244af9eb3 Mon Sep 17 00:00:00 2001 > From: Jim Paris <jim@xxxxxxxx> > Date: Tue, 21 Jul 2009 17:07:51 -0400 > Subject: [PATCH] Always add -no-kvm and -no-kqemu, if available, for "qemu" domains. > > If the qemu binary supports "-no-kvm" and/or "-no-kqemu", they should > always be added for plain "qemu" domains. Previously, we omitted them > whenever the host and guest architectures implied that they would be > disabled automatically, but that logic was flawed in some cases > (such as i686 and x86_64). > > Signed-off-by: Jim Paris <jim@xxxxxxxx> > --- > src/qemu_conf.c | 12 ++++-------- > 1 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/src/qemu_conf.c b/src/qemu_conf.c > index 4043d70..f146598 100644 > --- a/src/qemu_conf.c > +++ b/src/qemu_conf.c > @@ -977,22 +977,18 @@ int qemudBuildCommandLine(virConnectPtr conn, > emulator = def->emulator; > > /* Need to explicitly disable KQEMU if > - * 1. Arch matches host arch > - * 2. Guest domain is 'qemu' > - * 3. The qemu binary has the -no-kqemu flag > + * 1. Guest domain is 'qemu' > + * 2. The qemu binary has the -no-kqemu flag > */ > if ((qemuCmdFlags & QEMUD_CMD_FLAG_KQEMU) && > - STREQ(ut.machine, def->os.arch) && > def->virtType == VIR_DOMAIN_VIRT_QEMU) > disableKQEMU = 1; > > /* Need to explicitly disable KVM if > - * 1. Arch matches host arch > - * 2. Guest domain is 'qemu' > - * 3. The qemu binary has the -no-kvm flag > + * 1. Guest domain is 'qemu' > + * 2. The qemu binary has the -no-kvm flag > */ > if ((qemuCmdFlags & QEMUD_CMD_FLAG_KVM) && > - STREQ(ut.machine, def->os.arch) && > def->virtType == VIR_DOMAIN_VIRT_QEMU) > disableKVM = 1; > ACK, this looks fine. 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