qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Fwd: Re: [target-mips] qemu on centos


From: Stefan Weil
Subject: Re: [Qemu-devel] Fwd: Re: [target-mips] qemu on centos
Date: Fri, 23 Dec 2011 23:57:51 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20111110 Iceowl/1.0b1 Icedove/3.0.11

Am 23.12.2011 19:05, schrieb Brendan Kirby:
Attached are three MIPS binaries that I have seen segfault
intermittently on CentOS 6 machines. Just run them with no arguments
several times.

Brendan

On Fri, 2011-12-23 at 09:00 -0800, Reed Kotler wrote:

Please work with this guy.

If possible, submit some test cases to them of some code that causes
segfaults on Centos 6, even if intermittent.

Reed

-------- Original Message --------
Subject:
Re: [Qemu-devel] [target-mips] qemu
on centos
Date:
Fri, 23 Dec 2011 14:25:57 +0100
From:
Andreas Färber <address@hidden>
Organization:
SUSE LINUX Products GmbH
To:
Reed Kotler <address@hidden>
CC:
<address@hidden>, Khansa
Butt <address@hidden>, Richard
Henderson <address@hidden>,
Richard Sandiford
<address@hidden>


Hi,

Am 23.12.2011 13:44, schrieb Reed Kotler:
We have been seeing various problems running qemu for MIPS target on
Centos 5.
We are running linux user mode programs.

Qemu segfaults.

We recently tried upgrading to Centos 6 and the problem there is much
worse, making it basically unusable.

The same programs have no problem when running on Ubuntu.

They likely are using different QEMU versions, and distros may have
different patches applied on top.
Please provide some more info on what version, what ABI (which
executable), what -cpu parameter (if any), etc. you are using. Does a
gdb backtrace indicate any QEMU function or is it from translated code?

For n64 there were some patches in need of testing, review and fixing.
[cc'ing Khansa]

For n32 there's signal handling missing. (openSUSE for one ignores the
build warning and provides it non the less.)

No known issues specific to o32 that I'm aware of, but the two Richards
had patches for some instructions. Shouldn't lead to segfaults though.

Regards,
Andreas

--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg


Please add your message at the bottom of the mail, not at the top.

I tried your binaries with latest QEMU. All three fail here each time
with SIGSEGV. This is caused by a jump to address 0 (pc = 0).
Up to now I don't know the reason for this jump.

Call stack:
#0 0x00005555555f62d2 in ldl_le_p (ptr=0x0) at /home/stefan/src/qemu/qemu.org/qemu/bswap.h:477 #1 0x000055555561333e in gen_intermediate_code_internal (env=0x555557ca0b10, tb=0x7ffff3982108, search_pc=0) at /home/stefan/src/qemu/qemu.org/qemu/target-mips/translate.c:12442 #2 0x0000555555613709 in gen_intermediate_code (env=0x555557ca0b10, tb=0x7ffff3982108) at /home/stefan/src/qemu/qemu.org/qemu/target-mips/translate.c:12528 #3 0x00005555555f5f8d in cpu_mips_gen_code (env=0x555557ca0b10, tb=0x7ffff3982108, gen_code_size_ptr=0x7fffffffd748) at /home/stefan/src/qemu/qemu.org/qemu/translate-all.c:66 #4 0x00005555555a33b3 in tb_gen_code (env=0x555557ca0b10, pc=0, cs_base=0, flags=34, cflags=0) at /home/stefan/src/qemu/qemu.org/qemu/exec.c:1003 #5 0x000055555559c5b2 in tb_find_slow (env=0x555557ca0b10, pc=0, cs_base=0, flags=34) at /home/stefan/src/qemu/qemu.org/qemu/cpu-exec.c:126 #6 0x000055555559c73c in tb_find_fast (env=0x555557ca0b10) at /home/stefan/src/qemu/qemu.org/qemu/cpu-exec.c:153 #7 0x000055555559cb2a in cpu_mips_exec (env=0x555557ca0b10) at /home/stefan/src/qemu/qemu.org/qemu/cpu-exec.c:536 #8 0x00005555555bf780 in cpu_loop (env=0x555557ca0b10) at /home/stefan/src/qemu/qemu.org/qemu/linux-user/main.c:2160 #9 0x00005555555c16ac in main (argc=7, argv=0x7fffffffe1c8, envp=0x7fffffffe208) at /home/stefan/src/qemu/qemu.org/qemu/linux-user/main.c:3812

Try running a working version and the bad version with
mipsel-linux-user/qemu-mipsel -d in_asm,cpu -singlestep ...
and compare the resulting output file /tmp/qemu.log.
For programs without external events (timers and other
interrupt sources), the program flow should be identical
(same instructions, same register values).

This should identify the mips code which is handled differently
by the two versions.

Here is an extract of my qemu.log which shows the jump to
address 0.

pc=0x004027d8 HI=0x0000018a LO=0x0000f816 ds 0022 004027c0 0
GPR00: r0 00000000 at fffffff8 v0 4081190c v1 00000814
GPR04: a0 0040248c a1 00000001 a2 4080042c a3 00402650
GPR08: t0 004026f4 t1 0ffffffe t2 00000063 t3 00000002
GPR12: t4 40800180 t5 40800228 t6 ffffffff t7 00400538
GPR16: s0 4083a010 s1 004004f0 s2 00000000 s3 00000000
GPR20: s4 00000000 s5 00000000 s6 00000000 s7 00000000
GPR24: t8 00000002 t9 00000000 k0 00000000 k1 00000000
GPR28: gp 00412804 sp 40800408 s8 00000000 ra 00400538
CP0 Status  0x00000000 Cause   0x00000000 EPC    0x00000000
    Config0 0x80000482 Config1 0x9e190c8f LLAddr 0xffffffff
CP1 FCR0 0x00000000  FCR31 0x00000000  SR.FR 0  fp_status 0x00
f0: w:3f800000 d:400000003f800000 fd: 4.61169e+18 fs: 1.06535e+09 psu: 1.07374e+09 f2: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f4: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f6: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f8: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f10: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f12: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f14: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f16: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f18: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f20: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f22: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f24: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f26: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f28: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0 f30: w:00000000 d:0000000000000000 fd: 0 fs: 0 psu: 0
IN:
0x004027d8:  jalr       t9

An older qemu-mipsel from August fails, too.

Regards,
Stefan Weil





reply via email to

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