On Thu, Jun 15, 2017 at 05:37:50PM +0100, Burton, Ross wrote: > On 15 June 2017 at 17:17, Martin Kelly wrote: > > > I am no expert, but running qemu -cpu help just says: > > > > kvm32 - "Common 32-bit KVM processor" > > kvm64 - "Common 64-bit KVM processor" > > > > My best guess is that, running on qemu without kvm, both cases will be > > slow (since it's all software emulation). But, using qemu -kvm, it should > > be fast as long as you run on a native CPU that is core2duo or better, as > > the native instructions can just be exposed and passed through to the host. > > Since core2duo is very old by now, it should be fast for virtually everyone > > building on x86. > > > > Right, I did some digging. Assuming you have KVM enabled then in the > general case the -cpu option is irrelevant as the instructions are handled > natively. -cpu just changes what CPUID flags the userspace sees, and so > this is the Right Thing To Do. Sorry for replying to such old thread, but today I've noticed interesting side-effect of this change. Today I was checking why starting qtbase examples in qemu fails with message about missing ssse3 support which which qtbase as compiled. The DEFAULT_TUNE in qemux86-64 is indeed set to core2-64 which supports ssse3, so qtbase is right to expect it in runtime. But then I was starting qemu manually (not with runqemu) with: qemu-system-x86_64 -M q35 -smp 4 -m 4G -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -vga virtio -display sdl,gl=on -hda luneui-example-image-qemux86-64-20180425152329-jama.rootfs.wic.vmdk -enable-kvm which defaults to using this kvm64 generic CPU which doesn't support ssse3 Changing it to qemu-system-x86_64 -M q35 -cpu core2duo -smp 4 -m 4G -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -vga virtio -display sdl,gl=on -hda luneui-example-image-qemux86-64-20180425152329-jama.rootfs.wic.vmdk -enable-kvm gets rid of the message from qtbase, because core2duo supports ssse3 and matches with qemux86-64, but my host CPU (AMD Bulldozer FX(tm)-8120), doesn't support the same cpu flags like core2due and qemu shows following message when starting: qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:EDX.ss [bit 27] EDX.ss is Self Snoop feature which is enabled in core2duo and few other QEmu emulated CPUs, so I was looking on some other cpu I can emulate which has ssse3 while having the same flags as my host's AMD cpu e.g. -cpu phenom is relatively close, but Bulldozer CPUs don't support 3dnow, 3dnowext, so similar warning is shown. In the end I've switched to using -cpu Nehalem, which has ssse3, but doesn't enable CPUID_SS flag, now it starts without any warnings: qemu-system-x86_64 -M q35 -cpu Nehalem -smp 4 -m 4G -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 -vga virtio -display sdl,gl=on -hda luneui-example-image-qemux86-64-20180425152329-jama.rootfs.wic.vmdk -enable-kvm Regards, -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com