[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Crashes of qemu-system-mips64 and qemu-system-mips64el
From: |
Torbjörn Granlund |
Subject: |
[Qemu-devel] Crashes of qemu-system-mips64 and qemu-system-mips64el |
Date: |
Sat, 02 Aug 2014 22:49:22 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.3 (berkeley-unix) |
Qemu versions 1.7.0, 1.7.1, 2.0.0, 2.1.0 do not run Debian mips64 BE or
LE stably. While install in 32-bit mode typically works, running the
64-bit kernel causes qemu to segfault or abort after a while.
How to reproduce:
Grab installation kernel and initrd:
ftp://ftp.debian.org/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/vmlinux-3.2.0-4-4kc-malta
ftp://ftp.debian.org/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/initrd.gz
Start qemu-system-mips64 and perform an installation. Choose defaults,
i.e., "Standard system utilities" and "SSH server".
qemu-system-mips64 -M malta -m 256 -nographic \
-drive file=disk.img,if=virtio,index=0 \
-net nic,macaddr=52:54:00:13:06:64 -net user,hostfwd=tcp::20008-:22 \
-kernel vmlinux-3.2.0-4-4kc-malta \
-initrd initrd.gz \
-append "console=ttyS0"
Copy out /boot somehow. I usually do "Execute a shell" just before the
installation is about to finish, and there do
mount /dev/vda2 /target
mount /dev/vda1 /target/boot
mount -t proc proc /target/proc
mount --rbind /sys /target/sys
mount --rbind /dev /target/dev
chroot /target bash
/etc/init.d/ssh start
(assuming "put all files in one partition" was chosen; mount commands
might need adjustment for other partitioning schemes).
Then from the host system I do
scp -pr -P 20008 localhost:/boot .
and then quit the shell and finish up the installation. (Alternatively
use qemu-nbd or guestfish.)
Then boot the installed system:
qemu-system-mips64 -M malta -cpu 5Kc -m 256 \
-drive file=disk.img,if=virtio,index=0 \
-net nic,macaddr=52:54:00:13:06:64 -net user,hostfwd=tcp::20008-:22 \
-kernel boot/vmlinux-3.2.0-4-5kc-malta \
-initrd boot/initrd.img-3.2.0-4-5kc-malta \
-append "root=/dev/vda1 console=ttyS0" \
-nographic -serial null -monitor null
Then, log in to the system ("ssh -p 20008 address@hidden) and try the
system. It will crash within hours, but usually within minutes.
Safe crash strategy:
package_list="gcc g++ gdb make emacs23-nox postfix sharutils zsh rsync ntp"
apt-get -y install $package_list gcc-multilib g++-multilib
Not crashed yet? Let's provoke it somewhat more:
wget https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.bz2
tar xf gmp-6.0.0a.tar.bz2
cd gmp-6.0.0
(configure && make && while true; do make check; done) >&/dev/null
Note that I have reproduced this problem on several host machines. Host
system stability is not the root cause. The host system has been either
GNU/Linux or FreeBSD. I have not found a stable setup since before qemu
1.7.0. I know it was stable around 1.5.x or 1.6.x. (Even older qemus
executed a few instructions incorrectly, making them inadequate for my
use.)
Other notes:
1. Replacing virtio with ide for the disk spec does not improve things.
2. Both qemu-system-mips64 and qemu-system-mips64el exhibit the same
instability patterns.
3. At least qemu-system-mips64el 2.1.0 sometimes hangs also during
initial install, i.e., while running in 32-bit mode. (I only
observed this with virtio disk.)
Torbjörn
Please encrypt, key id 0xC8601622
- [Qemu-devel] Crashes of qemu-system-mips64 and qemu-system-mips64el,
Torbjörn Granlund <=