Hello all.
I am trying to make Qemu + KVM working stable on Arndale Exynos 5250
(Cortex-A15) and I'm having a hard time with it.
I thought that asking developers would be the best way to get some help
or advice how to debug this (I hope that this is the right list to
report such problems -_-'). But first things first...
* I use recently released Linux v3.17-rc1 for both, Arndale host and
Vexpress guest.
* Qemu version 2.0 stable built from source. This is my configuration:
./configure --target-list=arm-softmmu --enable-kvm --audio-drv-list=""
--enable-fdt --disable-stack-protector --enable-debug
* Qemu command:
qemu-system-arm -M vexpress-a15 -serial telnet:localhost:3333,server \
-append 'root=/dev/vda rw console=ttyAMA0 rootwait earlyprintk=ttyAMA0' \
-nographic -kernel zImage -dtb vexpress-v2p-ca15-tc1.dtb -m 512M \
-drive if=none,file=busybox.img,id=foo -device virtio-blk-device,drive=foo \
-smp 2 -enable-kvm
What I'm doing to trigger the bugs is boot the system once and then
reboot it continuously until the bug appears.
In general the kernel boots fine on the guest to the minimal rootfs that
I use but from time to time (rather often considering rate ~1/5) the
kernel hangs during the first boot or any reboot, even before printing
"Uncompressing Linux... done, booting the kernel.".
So the failure must appear somewhere in compressed/head.S.
When I print registers in qemu I can see that I'm stuck in prefetch
abort exception for good:
R00=edfe0dd0 R01=000008e0 R02=88000000 R03=00000000
R04=00000000 R05=00000000 R06=00000000 R07=00000000
R08=00000000 R09=400001d3 R10=00000000 R11=8a0e0000
R12=00000000 R13=00000000 R14=0000000c R15=0000000c
PSR=600001d7 -ZC- A abt32
I tried to connect via GDB to the kernel but I can't get anything useful
(I try to add symbols from boot/compressed/vmlinux at 0x10000 but still
gdb tries to use 0x80000000 instead (??) and I can't set any breakpoint
whatsoever).
Also this is not the only issue that I encounter (equally often) on boot.
Here are other problems I have:
1. Another thing is following error (on boot):
kvm [13862]: load/store instruction decoding not implemented
error: kvm run failed Function not implemented
Aborted
Similarly, in that case I see only this report from kvm and qemu process
exits.
I can reboot qemu (sometimes more than once) and it works fine.
2. Wrong machine ID:
Error: unrecognized/unsupported machine ID (r1 = 0x00000000).
Available machine support:
ID (hex) NAME
ffffffff Generic DT based system
ffffffff ARM-Versatile Express
000008e0 ARM-Versatile Express
This appears less often but still sometimes it breaks the boot...
None of the above mentioned appear when I don't use kvm in qemu
(-enable-kvm not set). Also, after the system boots successfully it
works stable even during long runs.
I will appreciate any help and guidelines how to overcome those issues.
Thank you in advance and best regards,
zbb
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm