[OE-core] [PATCH resend] qemuboot.conf: make cpus match built artifacts

Martin Jansa martin.jansa at gmail.com
Wed Apr 25 19:54:37 UTC 2018


On Thu, Jun 15, 2017 at 05:37:50PM +0100, Burton, Ross wrote:
> On 15 June 2017 at 17:17, Martin Kelly <mkelly at 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.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180425/20fda973/attachment-0002.sig>


More information about the Openembedded-core mailing list