qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] (bisected): Is mips-user broken on 64bit host since v1.


From: Stefan Weil
Subject: Re: [Qemu-devel] (bisected): Is mips-user broken on 64bit host since v1.1?
Date: Tue, 18 Dec 2012 22:30:51 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20121215 Iceowl/1.0b1 Icedove/3.0.11

Am 18.12.2012 20:05, schrieb Michael Tokarev:
On 18.12.2012 20:10, Michael Tokarev wrote:
Since at least 1.1 version of qemu, I can't run any
mips binary using statically linked qemu-mips on x86_64
host.  It immediately fails with SIGSEGV:

# chroot mipsroot /bin/bash
qemu: uncaught target signal 11 (Segmentation fault) - core dumped

mipsroot/bin/bash: ELF 32-bit MSB executable, MIPS, MIPS-II version 1 (SYSV),
  dynamically linked (uses shared libs), for GNU/Linux 2.6.26,
  BuildID[sha1]=0xeb1a3595d733e28f4f081beabb1f135bc5bf7527,
  with unknown capability 0x41000000 = 0xf676e75,
  with unknown capability 0x10000 = 0x70401,
  stripped

(this is current Debian install of mips architecture).

At the same time, 32bit qemu-mips works just fine:


# cp -p /usr/bin/qemu-mips-static-32 mipsroot/usr/bin/
# chroot mipsroot /bin/bash
I have no address@hidden:/# ls
bin   dev  home  lib64  proc  run   selinux  tmp  var
boot  etc  lib   mnt    root  sbin  sys      usr
I have no address@hidden:/# uname -a
Linux gandalf 3.2.0-amd64 #3.2.30 SMP Thu Sep 20 18:50:45 MSK 2012 mips 
GNU/Linux

Current qemu git behaves the same - it also segfaults
when trying to run a 32bit mips binary from x86_64
host qemu-mips binary.

There are numerous bugreports about this issue on Debian
as well.

Is it just Debian, or is something really broken there?
I'd think that running 32bit mips code on x86_64 host
is quite common, no?

This is broken (bisected to) since

commit 288e65b9eea0c9b3cbe21be46f3e24e4e8b2a090
Author: Alexander Graf<address@hidden>
Date:   Wed Dec 14 00:33:28 2011 +0100

     linux-user: reserve 4GB of vmem for 32-on-64

     When running 32-on-64 bit guests, we should always reserve as much
     virtual memory as we possibly can for the guest process, so it can
     never overlap with QEMU address space.

     Fortunately we already have the infrastructure for that. All that's
     missing is some sane default value to also make use of it!

     Signed-off-by: Alexander Graf<address@hidden>
     Signed-off-by: Riku Voipio<address@hidden>

(Cc'ing).

Reverting this commit on top of qemu-1.1, 1.2 or 1.3 makes
it work again.

This commit has been applied in the middle between 1.0 and 1.1
versions of qemu.  It is interesting that no one noticed this
before now, when 1.3 is out already.  Oh well.

Thanks,

/mjt

I'm afraid that the main focus of most testers is system emulation
and must admit that I run user emulation very rarely.

Nevertheless it should be possible to add some statically linked
binaries for each architecture to the buildbot machines and add
tests which run these binaries.

Regards,

Stefan Weil




reply via email to

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