On aarch64 with -M virt, the default CPU model is cortex-a15 (a 32 bit
CPU). This is IMHO a stupid default, but there we are. Therefore
most users will need to pass the `-cpu cortex-a53' or `-cpu cortex-a57'
flag to qemu, depending on a complex formula of their host CPU and if
they are using TCG or not.
However I cannot work out how to pass this through libvirt.
The obvious one would be:
<cpu><model>cortex-a57</model></cpu>
This passes `-cpu host' which is both wrong and likely to be a bug.
I tried adding various flags and studying the source, but it's
extremely non-obvious how to do this. Also adding the following into
cpu_map.xml didn't make any difference:
--- a/src/cpu/cpu_map.xml
+++ b/src/cpu/cpu_map.xml
@@ -626,6 +626,11 @@
<vendor name='IBM'/>
<pvr value='0x004b0100'/>
</model>
+ </arch>
+ <!-- ARM, 64 bit -->
+ <arch name='aarch64'>
+ <model name='cortex-a53'/>
+ <model name='cortex-a57'/>
</arch>
</cpus>
Ideas here?
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/