diff options
Diffstat (limited to '')
| -rw-r--r-- | results/classifier/118/none/216 | 31 | ||||
| -rw-r--r-- | results/classifier/118/none/2162 | 31 | ||||
| -rw-r--r-- | results/classifier/118/none/2165 | 98 | ||||
| -rw-r--r-- | results/classifier/118/none/2168 | 62 |
4 files changed, 222 insertions, 0 deletions
diff --git a/results/classifier/118/none/216 b/results/classifier/118/none/216 new file mode 100644 index 00000000..5e1abef5 --- /dev/null +++ b/results/classifier/118/none/216 @@ -0,0 +1,31 @@ +kernel: 0.759 +architecture: 0.700 +device: 0.610 +mistranslation: 0.593 +performance: 0.576 +graphic: 0.379 +peripherals: 0.335 +network: 0.331 +semantic: 0.321 +files: 0.287 +hypervisor: 0.285 +boot: 0.280 +virtual: 0.244 +register: 0.229 +debug: 0.179 +VMM: 0.159 +arm: 0.158 +assembly: 0.128 +TCG: 0.124 +ppc: 0.115 +PID: 0.106 +vnc: 0.095 +permissions: 0.087 +socket: 0.081 +x86: 0.074 +risc-v: 0.071 +user-level: 0.041 +i386: 0.029 +KVM: 0.025 + +qemu-system-sparc64 with tribblix-sparc-0m16.iso ends with "panic - kernel: no nucleus hblk8 to allocate" diff --git a/results/classifier/118/none/2162 b/results/classifier/118/none/2162 new file mode 100644 index 00000000..61513ff8 --- /dev/null +++ b/results/classifier/118/none/2162 @@ -0,0 +1,31 @@ +device: 0.690 +graphic: 0.391 +arm: 0.243 +performance: 0.233 +boot: 0.209 +risc-v: 0.194 +VMM: 0.189 +PID: 0.166 +TCG: 0.165 +mistranslation: 0.145 +semantic: 0.135 +register: 0.119 +permissions: 0.110 +debug: 0.106 +network: 0.095 +ppc: 0.086 +socket: 0.059 +kernel: 0.053 +vnc: 0.052 +virtual: 0.051 +KVM: 0.035 +hypervisor: 0.033 +user-level: 0.030 +files: 0.029 +peripherals: 0.020 +architecture: 0.011 +assembly: 0.005 +i386: 0.003 +x86: 0.003 + +Some subtests have over-optimistic timeouts and time out on the s390 runner diff --git a/results/classifier/118/none/2165 b/results/classifier/118/none/2165 new file mode 100644 index 00000000..d6aff41c --- /dev/null +++ b/results/classifier/118/none/2165 @@ -0,0 +1,98 @@ +user-level: 0.580 +KVM: 0.527 +risc-v: 0.524 +mistranslation: 0.522 +TCG: 0.508 +ppc: 0.505 +x86: 0.504 +VMM: 0.502 +peripherals: 0.489 +vnc: 0.468 +graphic: 0.458 +boot: 0.448 +register: 0.442 +hypervisor: 0.442 +permissions: 0.442 +arm: 0.441 +device: 0.439 +performance: 0.427 +i386: 0.418 +debug: 0.413 +virtual: 0.412 +architecture: 0.410 +semantic: 0.408 +network: 0.404 +assembly: 0.398 +files: 0.393 +kernel: 0.388 +socket: 0.388 +PID: 0.387 + +m68k: 68000 strict alignment requirements not emulated correctly +Description of problem: +Unaligned accesses should cause an address error on the 68000 but apparently currently don't. +Steps to reproduce: +1. Create a 68000 based QEMU machine to port u-boot/linux +2. Get u-boot/linux working perfectly on your QEMU machine +3. Copy kernel over to your real 68000 hardware +4. Notice that the kernel doesn't work +5. Spend a day adding inline assembly all over the kernel to work out where the real hardware is locking up +6. Find that the issue is probably memmove() being called with an unaligned src pointer: + +C level.. + +``` +Breakpoint 1, memmove (n=215, src=0x2059df <printk_shared_pbufs+215>, dest=0x2059ee <printk_shared_pbufs+230>) at ../arch/m68k/lib/memmove.c:152 +152 *--sdest = *--ssrc; +(gdb) bt +#0 memmove (n=215, src=0x2059df <printk_shared_pbufs+215>, dest=0x2059ee <printk_shared_pbufs+230>) at ../arch/m68k/lib/memmove.c:152 +#1 memmove (dest=<optimized out>, src=<optimized out>, n=<optimized out>) at ../arch/m68k/lib/memmove.c:10 +#2 0x000265b6 in record_print_text (r=<optimized out>, syslog=<optimized out>, time=<optimized out>) at ../kernel/printk/printk.c:1472 +#3 0x00027be6 in printk_get_next_message (pmsg=<optimized out>, seq=<optimized out>, is_extended=<optimized out>, may_suppress=<optimized out>) at ../kernel/printk/printk.c:2952 +#4 0x00027e5a in console_emit_next_record (cookie=0, handover=0x1d9e37, con=0x1edf14 <early_con>) at ../kernel/printk/printk.c:3019 +#5 console_flush_all (do_cond_resched=false, next_seq=0x1d9e38, handover=0x1d9e37) at ../kernel/printk/printk.c:3118 +#6 0x00027fc8 in console_unlock () at ../kernel/printk/printk.c:3187 +#7 0x00028a04 in vprintk_emit (facility=0, level=<optimized out>, dev_info=0x0, fmt=0x1bd051 "\0016printk: %s%sconsole [%s%d] enabled\n", args=0x1d9e98) at ../kernel/printk/printk.c:2359 +#8 0x00028a26 in vprintk_default (fmt=0x1bd051 "\0016printk: %s%sconsole [%s%d] enabled\n", args=0x1d9e98) at ../kernel/printk/printk.c:2374 +#9 0x00028c22 in vprintk (fmt=0x1bd051 "\0016printk: %s%sconsole [%s%d] enabled\n", args=0x1d9e98) at ../kernel/printk/printk_safe.c:45 +#10 0x0019d016 in _printk (fmt=0x1bd051 "\0016printk: %s%sconsole [%s%d] enabled\n") at ../kernel/printk/printk.c:2384 +#11 0x0002857e in register_console (newcon=<optimized out>) at ../kernel/printk/printk.c:3693 +#12 0x001fbf1e in register_earlycon (match=<optimized out>, buf=0x0) at ../drivers/tty/serial/earlycon.c:161 +#13 setup_earlycon (buf=<optimized out>) at ../drivers/tty/serial/earlycon.c:212 +#14 0x001fbf72 in param_setup_earlycon (buf=0x2009e9 <tmp_cmdline+9> "mc68ez328,0xfffff900") at ../drivers/tty/serial/earlycon.c:244 +#15 0x001f1102 in do_early_param (param=0x2009e0 <tmp_cmdline> "earlycon", val=0x2009e9 <tmp_cmdline+9> "mc68ez328,0xfffff900", unused=0x1b96c6 "early options", arg=0x0) + at ../init/main.c:744 +#16 0x00017eac in parse_one (handle_unknown=<optimized out>, arg=<optimized out>, max_level=<optimized out>, min_level=<optimized out>, num_params=<optimized out>, params=<optimized out>, + doing=0x1b96c6 "early options", val=0x2009e9 <tmp_cmdline+9> "mc68ez328,0xfffff900", param=0x2009e0 <tmp_cmdline> "earlycon") at ../kernel/params.c:154 +#17 parse_args (doing=<optimized out>, args=0x2009fe <tmp_cmdline+30> "console=ttyDB0 root=/dev/mmcblk0p2 rootfstype=squashfs rootwait", params=<optimized out>, num=<optimized out>, + min_level=<optimized out>, max_level=<optimized out>, arg=<optimized out>, unknown=<optimized out>) at ../kernel/params.c:189 +#18 0x001f13ea in parse_early_options (cmdline=0x2009e0 <tmp_cmdline> "earlycon") at ../init/main.c:754 +#19 0x001f1420 in parse_early_param () at ../init/main.c:769 +#20 0x001f1570 in start_kernel () at ../init/main.c:908 +#21 0x000004b8 in _clear_bss () at ../arch/m68k/dt/head.S:95 +#22 0x00000000 in ?? () +``` + +Asm level: + +``` +152 *--sdest = *--ssrc; + 0x0019bed8 <+324>: movel %a1,%d2 + 0x0019beda <+326>: subql #2,%d2 + 0x0019bedc <+328>: movel %a2,%d1 + 0x0019bede <+330>: subql #2,%d1 +=> 0x0019bee0 <+332>: movew %a1@(-2),%a2@(-2) +``` + +This is a word store so needs to be aligned but a1 isn't aligned so we should get an address error: + +``` +(gdb) print/x $a1 +$3 = 0x2059df +(gdb) print/x $a2 +$4 = 0x2059ee +``` + + +7. Check QEMU source code to work out why it doesn't crash the cpu at the same place. +8. Notice it doesn't seem to check the alignment. diff --git a/results/classifier/118/none/2168 b/results/classifier/118/none/2168 new file mode 100644 index 00000000..dccbc7e4 --- /dev/null +++ b/results/classifier/118/none/2168 @@ -0,0 +1,62 @@ +graphic: 0.724 +architecture: 0.701 +arm: 0.699 +semantic: 0.697 +device: 0.690 +permissions: 0.689 +peripherals: 0.676 +register: 0.659 +PID: 0.658 +i386: 0.652 +ppc: 0.615 +debug: 0.586 +files: 0.586 +x86: 0.577 +user-level: 0.539 +TCG: 0.535 +boot: 0.514 +performance: 0.511 +VMM: 0.506 +risc-v: 0.496 +socket: 0.478 +kernel: 0.463 +hypervisor: 0.461 +assembly: 0.437 +vnc: 0.436 +mistranslation: 0.419 +network: 0.389 +virtual: 0.380 +KVM: 0.346 + +qemu-x86_64: segfault when running grep on arm64 host +Description of problem: +An internal segmentation fault occurs when attempting to run `grep` in a Gentoo stage3 chroot +Steps to reproduce: +1. Unpack an x86_64 chroot environment (easiest way is using one of Gentoo's stage3s from https://get.gentoo.org) +2. Run `qemu-x86_64 -L /path/to/x86_64/chroot /path/to/x86_64/chroot/bin/grep` +Additional information: +It seems this only occurs in 8.x.x, 7.x.x does not have this segfault. + +Output: +``` +# qemu-x86_64 -L /bugs/grep-sandbox /bugs/grep-sandbox/bin/grep +qemu-x86_64: QEMU internal SIGSEGV {code=MAPERR, addr=0x20} +Segmentation fault +``` + +GDB bt: +``` +(gdb) bt +#0 open_self_maps_2 (opaque=0xffffffffd0b0, guest_start=18446744073699065856, guest_end=<optimized out>, flags=12) at ../linux-user/syscall.c:8089 +#1 0x000000000048539c in walk_memory_regions (priv=priv@entry=0xffffffffd0b0, fn=fn@entry=0x4a13e4 <open_self_maps_2>) at ../accel/tcg/user-exec.c:176 +#2 0x00000000004a20bc in open_self_maps_1 (smaps=false, fd=3, env=<optimized out>) at ../linux-user/syscall.c:8112 +#3 open_self_maps (cpu_env=<optimized out>, fd=3) at ../linux-user/syscall.c:8122 +#4 0x00000000004aaa00 in do_guest_openat (cpu_env=cpu_env@entry=0x862050, dirfd=dirfd@entry=-100, fname=fname@entry=0x5555555776f1 "/proc/self/maps", flags=0, mode=mode@entry=0, safe=safe@entry=true) + at ../linux-user/syscall.c:8381 +#5 0x00000000004b0cc4 in do_syscall1 (cpu_env=cpu_env@entry=0x862050, num=num@entry=257, arg1=arg1@entry=4294967196, arg2=arg2@entry=93824992376561, arg3=arg3@entry=0, arg4=arg4@entry=0, + arg5=arg5@entry=93824992373306, arg6=arg6@entry=0, arg8=0, arg7=0) at ../linux-user/syscall.c:9075 +#6 0x00000000004b2770 in do_syscall (cpu_env=cpu_env@entry=0x862050, num=257, arg1=4294967196, arg2=93824992376561, arg3=0, arg4=0, arg5=93824992373306, arg6=0, arg7=arg7@entry=0, arg8=arg8@entry=0) + at ../linux-user/syscall.c:13658 +#7 0x0000000000404fdc in cpu_loop (env=env@entry=0x862050) at ../linux-user/x86_64/../i386/cpu_loop.c:242 +#8 0x0000000000400d7c in main (argc=4, argv=0xffffffffed48, envp=<optimized out>) at ../linux-user/main.c:1014 +``` |
