qemu-devel
[Top][All Lists]
Advanced

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

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


From: Michael Tokarev
Subject: [Qemu-devel] (bisected): Is mips-user broken on 64bit host since v1.1?
Date: Tue, 18 Dec 2012 23:05:09 +0400
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.10) Gecko/20121028 Icedove/10.0.10

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



reply via email to

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