[libvirt] libvirt and "kvm -cpu=qemu32" problem

Problem is that the images of windows 2003 server, windows 2000 and some other do not start and go to BSOD due to processor mismatch if they were created under either qemu or vmware, or from bare-metal installed OS. By default libvirt starts kvm with "-cpu=qemu32" option instead of, for example, "-cpu=pentium3". There is patch for libvirt-0.6.5 to avoid this problem. Now libvirt takes into account <cpumodel> node from .xml domain config, which overrides libvirt's default -cpu option for kvm. I think, this patch is vital, because of it helps to avoid a waste of time with reinstalling and reconfiguring windows server images. <domain type='kvm'> <name>w2k3s</name> <uuid>e2725d10-7ada-4f71-eea7-fa6cc1a541ee</uuid> <memory>262144</memory> <currentMemory>262144</currentMemory> <vcpu>1</vcpu> <cpumodel>pentium3</cpumodel> <------ <os> <type arch='i686'>hvm</type> <boot dev='hd'/> </os> Sorry for not patching GIT-version, GIT is hard to compile in a small time.

On Fri, Aug 28, 2009 at 12:30:14PM +0400, Scaldov M.V. wrote:
Problem is that the images of windows 2003 server, windows 2000 and some other do not start and go to BSOD due to processor mismatch if they were created under either qemu or vmware, or from bare-metal installed OS.
By default libvirt starts kvm with "-cpu=qemu32" option instead of, for example, "-cpu=pentium3".
There is patch for libvirt-0.6.5 to avoid this problem. Now libvirt takes into account <cpumodel> node from .xml domain config, which overrides libvirt's default -cpu option for kvm.
I think, this patch is vital, because of it helps to avoid a waste of time with reinstalling and reconfiguring windows server images.
<domain type='kvm'> <name>w2k3s</name> <uuid>e2725d10-7ada-4f71-eea7-fa6cc1a541ee</uuid> <memory>262144</memory> <currentMemory>262144</currentMemory> <vcpu>1</vcpu> <cpumodel>pentium3</cpumodel> <------ <os> <type arch='i686'>hvm</type> <boot dev='hd'/> </os>
We definitely need to support configuration of the CPU model, but things are a little more complex than just setting a model name. QEMU allows for a model name, along with ability to set named flags to turn on or off features from the model. Xen and VMWare both allow for setting a fully CPUID bitmask. We're still trying i figure out how to reconcile this into an XML format 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 :|

libvirt xml config does not have possibility to select another bios file for qemu or kvm. As to XEN and other hypervisors, I dont know how it is realized. But for kvm/qemu here is a patch. Now it can be controlled via xml domain config: <biosfile>bios-alternative.bin</biosfile> Miroslav Scaldov

Sorry, there were a wrong patch. This one is correct. В Tue, 1 Sep 2009 12:08:02 +0400 "Scaldov M.V." <scaldov@scyld.sky> пишет:
libvirt xml config does not have possibility to select another bios file for qemu or kvm.
As to XEN and other hypervisors, I dont know how it is realized. But for kvm/qemu here is a patch.
Now it can be controlled via xml domain config:
<biosfile>bios-alternative.bin</biosfile>
Miroslav Scaldov
participants (2)
-
Daniel P. Berrange
-
Scaldov M.V.