qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]