qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] qemu-system-{x86,x86_64} crash in io_writex


From: Guenter Roeck
Subject: [Qemu-devel] qemu-system-{x86,x86_64} crash in io_writex
Date: Thu, 27 Jun 2019 10:08:51 -0700
User-agent: Mutt/1.5.24 (2015-08-30)

Hi,

I see random crashes when running qemu-system-{x86, x86_64}.
The problem started happening several releases ago, but I finally
have been able to capture some core dumps. This is with qemu v4.0.

The crash always happens in io_writex(), and the reason is that 'mr'
is NULL. I attached some gdb information below. The crash is seen
maybe once every ~100 boots, and it seems to happen during PCI
enumeration.

[    2.044504] PCI host bridge to bus 0000:00
[    2.044836] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.045142] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    2.045286] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    2.045436] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    2.045583] pci_bus 0000:00: root bus resource [mem 0x90000000-0xfebfffff]
[    2.045747] pci_bus 0000:00: root bus resource [mem 0x100000000-0x8ffffffff]
^^^ crash here

[    2.732815] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    2.733081] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    2.733301] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff 
window]
[    2.733509] pci_bus 0000:00: root bus resource [mem 0x90000000-0xfebfffff 
window]
[    2.733716] pci_bus 0000:00: root bus resource [mem 0x800000000-0xfffffffff 
window]
[    2.734187] pci_bus 0000:00: root bus resource [bus 00-ff]
^^^ crash here

Has anyone else seen this problem ? Any idea what I can do to help
tracking it down ?

Thanks,
Guenter

---
(gdb) info stack
#0  io_writex (env=env@entry=0x5555567982c0, iotlbentry=0x7fffb006d5d0, 
mmu_idx=mmu_idx@entry=2, val=val@entry=2301, 
    addr=addr@entry=18446744073699050240, 
retaddr=retaddr@entry=140736404017834, recheck=false, size=4)
    at /opt/buildbot/qemu/qemu/accel/tcg/cputlb.c:971
#1  0x000055555588e75f in io_writel (recheck=<optimized out>, 
retaddr=140736404017834, addr=18446744073699050240, val=2301, 
    index=<optimized out>, mmu_idx=2, env=0x5555567982c0) at 
/opt/buildbot/qemu/qemu/accel/tcg/softmmu_template.h:277
#2  helper_le_stl_mmu (env=0x5555567982c0, addr=18446744073699050240, val=2301, 
oi=34, retaddr=140736404017834)
    at /opt/buildbot/qemu/qemu/accel/tcg/softmmu_template.h:316
#3  0x00007fffbf5e52aa in code_gen_buffer ()
#4  0x00005555558a3c70 in cpu_tb_exec (itb=<optimized out>, cpu=0x7fffbf186800 
<code_gen_buffer+51931091>)
    at /opt/buildbot/qemu/qemu/accel/tcg/cpu-exec.c:171
#5  cpu_loop_exec_tb (tb_exit=<synthetic pointer>, last_tb=<synthetic pointer>, 
tb=<optimized out>, 
    cpu=0x7fffbf186800 <code_gen_buffer+51931091>) at 
/opt/buildbot/qemu/qemu/accel/tcg/cpu-exec.c:618
#6  cpu_exec (cpu=cpu@entry=0x555556790010) at 
/opt/buildbot/qemu/qemu/accel/tcg/cpu-exec.c:729
#7  0x000055555585d4af in tcg_cpu_exec (cpu=0x555556790010) at 
/opt/buildbot/qemu/qemu/cpus.c:1430
#8  0x000055555585f818 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x555556790010) 
at /opt/buildbot/qemu/qemu/cpus.c:1734
#9  0x0000555555c5c676 in qemu_thread_start (args=<optimized out>) at 
util/qemu-thread-posix.c:502
#10 0x00007ffff270b6db in __gettimeofday@plt () from 
/lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007fffd37fe700 in ?? ()
#12 0x00007fffd37fe700 in ?? ()
#13 0x544ac8b6bb8ba609 in ?? ()
#14 0x00007fffd37fb300 in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) p *iotlbentry
$14 = {addr = 10502175, attrs = {unspecified = 0, secure = 0, user = 0, 
requester_id = 0, target_tlb_bit0 = 0, target_tlb_bit1 = 0, 
    target_tlb_bit2 = 0}}
(gdb) p mr
$15 = (MemoryRegion *) 0x0
(gdb) p *section
$16 = {mr = 0x0, fv = 0x0, offset_within_region = 0, size = 0, 
offset_within_address_space = 0, readonly = false, nonvolatile = false}
(gdb) l /opt/buildbot/qemu/qemu/accel/tcg/cputlb.c:971
966             cpu_io_recompile(cpu, retaddr);
967         }
968         cpu->mem_io_vaddr = addr;
969         cpu->mem_io_pc = retaddr;
970     
971         if (mr->global_locking && !qemu_mutex_iothread_locked()) {
972             qemu_mutex_lock_iothread();
973             locked = true;
974         }
975         r = memory_region_dispatch_write(mr, mr_offset,



reply via email to

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