On Thu, Jun 15, 2017 at 05:37:50PM +0100, Burton, Ross wrote:
> On 15 June 2017 at 17:17, Martin Kelly <mke...@xevo.com> 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.ja...@gmail.com

Attachment: signature.asc
Description: Digital signature

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to