summary refs log tree commit diff stats
path: root/results/classifier/zero-shot-user-mode/runtime/1765970
blob: aa965a51ad19b95d89c1db843f015b1dc7022c04 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
runtime: 0.381
instruction: 0.310
syscall: 0.309



qemu-arm (user mode) segfaults in uclibc-ng chroot after upgrade to 2.11.x

I use a qemu-user chroot + binfmt to build software targetting a raspberry pi.  After upgrading from qemu-2.10.1 to 2.11.1 (Gentoo host), I noticed that on my uclibc-ng chroot qemu-arm will segfault when running python and importing the portage module.

I have bisected qemu down to this commit:

https://github.com/qemu/qemu/commit/18e80c55bb6ec17c05ec0ba717ec83933c2bfc07

If I recompile and change MAX_RESERVED_VA (from the above commit) back to 0x77000000 the problem goes away.  NB I have no idea what that does, I just thought I'd see.


Other arm chroots (glibc, musl) do not segfault with qemu-2.11, only the uclibc-ng one.  Not sure why.


The following backtrace was generated from running qemu-arm in gdb and recreating the segfault:

(gdb) where
#0  0x0000000060726046 in static_code_gen_buffer ()
#1  0x0000000060048789 in cpu_tb_exec (cpu=0x6278e310, 
    itb=0x60725f80 <static_code_gen_buffer+314624>)
    at /usr/src/debug/app-emulation/qemu-2.11.1-r2/qemu-2.11.1/accel/tcg/cpu-exec.c:167
#2  0x000000006004937f in cpu_loop_exec_tb (cpu=0x6278e310, 
    tb=0x60725f80 <static_code_gen_buffer+314624>, last_tb=0x7fffffffd138, 
    tb_exit=0x7fffffffd130)
    at /usr/src/debug/app-emulation/qemu-2.11.1-r2/qemu-2.11.1/accel/tcg/cpu-exec.c:627
#3  0x0000000060049600 in cpu_exec (cpu=0x6278e310)
    at /usr/src/debug/app-emulation/qemu-2.11.1-r2/qemu-2.11.1/accel/tcg/cpu-exec.c:736
#4  0x00000000600511c3 in cpu_loop (env=0x627965b0)
    at /usr/src/debug/app-emulation/qemu-2.11.1-r2/qemu-2.11.1/linux-user/main.c:585
#5  0x00000000600534eb in main (argc=4, argv=0x7fffffffd9b8, 
    envp=0x7fffffffd9e0)
    at /usr/src/debug/app-emulation/qemu-2.11.1-r2/qemu-2.11.1/linux-user/main.c:4882



(gdb) info reg
rax            0x627965b0       1652123056
rbx            0x62717870       1651603568
rcx            0x606da000       1617797120
rdx            0x60726000       1618108416
rsi            0x60726000       1618108416
rdi            0x627965b0       1652123056
rbp            0x7fffffffd0c0   0x7fffffffd0c0
rsp            0x7fffffffd080   0x7fffffffd080
r8             0x0      0
r9             0x2      2
r10            0x0      0
r11            0x629280a0       1653768352
r12            0x60260e40       1613106752
r13            0x0      0
r14            0x606a5018       1617580056
r15            0x0      0
rip            0x60048789       0x60048789 <cpu_tb_exec+266>
eflags         0x10282  [ SF IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
(gdb)