Message ID | 20230421142736.2817601-1-alxndr@bu.edu (mailing list archive) |
---|---|
Headers | show |
Series | memory: prevent dma-reentracy issues | expand |
On 21/04/2023 16.27, Alexander Bulekov wrote: > v7 -> v8: > - Disable reentrancy checks for bcm2835_property's iomem (Patch 7) > - Cache DeviceState* in the MemoryRegion to avoid dynamic cast for > each MemoryRegion access. (Patch 1) > - Make re-entrancy fatal for debug-builds (Patch 8) Hi Alexander, I just put your series into a run with the gitlab-CI and it seems this now introduced another failure in one of the avocado tests: https://gitlab.com/thuth/qemu/-/jobs/4171448248#L318 The "IbmPrep40pMachine.test_openbios_and_netbsd" test is failing now. You can reproduce it manually quite easily: wget https://archive.netbsd.org/pub/NetBSD-archive/NetBSD-7.1.2/iso/NetBSD-7.1.2-prep.iso ./qemu-system-ppc -nographic -M 40p -boot d -cdrom NetBSD-7.1.2-prep.iso Without your patches, this prints out "NetBSD/prep BOOT, Revision 1.9" in the console, but with your patches, the message does not appear anymore. Could you please have a look? Thanks, Thomas
On 230425 1146, Thomas Huth wrote: > On 21/04/2023 16.27, Alexander Bulekov wrote: > > v7 -> v8: > > - Disable reentrancy checks for bcm2835_property's iomem (Patch 7) > > - Cache DeviceState* in the MemoryRegion to avoid dynamic cast for > > each MemoryRegion access. (Patch 1) > > - Make re-entrancy fatal for debug-builds (Patch 8) > > Hi Alexander, > > I just put your series into a run with the gitlab-CI and it seems this now > introduced another failure in one of the avocado tests: > > https://gitlab.com/thuth/qemu/-/jobs/4171448248#L318 > > The "IbmPrep40pMachine.test_openbios_and_netbsd" test is failing now. > > You can reproduce it manually quite easily: > > wget https://archive.netbsd.org/pub/NetBSD-archive/NetBSD-7.1.2/iso/NetBSD-7.1.2-prep.iso > > ./qemu-system-ppc -nographic -M 40p -boot d -cdrom NetBSD-7.1.2-prep.iso > > Without your patches, this prints out "NetBSD/prep BOOT, Revision 1.9" in > the console, but with your patches, the message does not appear anymore. #0 trace_memory_region_reentrant_io at trace/trace-softmmu.h:335 #1 0x0000555555f3f315 in access_with_adjusted_size at ../softmmu/memory.c:549 #2 0x0000555555f3f0f6 in memory_region_dispatch_write at ../softmmu/memory.c:1531 #3 0x0000555555f4e655 in flatview_write_continue at ../softmmu/physmem.c:2641 #4 0x0000555555f4b30e in flatview_write at ../softmmu/physmem.c:2683 #5 0x0000555555f4b119 in address_space_write at ../softmmu/physmem.c:2779 #6 0x0000555555c5a233 in raven_io_write at ../hw/pci-host/raven.c:194 #7 0x0000555555f3f409 in memory_region_write_accessor at ../softmmu/memory.c:493 #8 0x0000555555f3f22b in access_with_adjusted_size at ../softmmu/memory.c:568 #9 0x0000555555f3f0f6 in memory_region_dispatch_write at ../softmmu/memory.c:1531 #10 0x0000555555fcf74b in io_writex at ../accel/tcg/cputlb.c:1430 #11 0x0000555555fc33dd in store_helper at ../accel/tcg/cputlb.c:2454 #12 full_le_stl_mmu at ../accel/tcg/cputlb.c:2542 #13 0x00007fffa404b78c in code_gen_buffer #14 0x0000555555fa510d in cpu_tb_exec at ../accel/tcg/cpu-exec.c:460 #15 0x0000555555fa5ec0 in cpu_loop_exec_tb at ../accel/tcg/cpu-exec.c:893 #16 cpu_exec_loop at ../accel/tcg/cpu-exec.c:1013 #17 0x0000555555fa5697 in cpu_exec_setjmp at ../accel/tcg/cpu-exec.c:1043 #18 0x0000555555fa558e in cpu_exec at ../accel/tcg/cpu-exec.c:1069 #19 0x0000555555fd1f8f in tcg_cpus_exec at ../accel/tcg/tcg-accel-ops.c:81 #20 0x0000555555fd2c16 in rr_cpu_thread_fn at ../accel/tcg/tcg-accel-ops-rr.c:223 #21 0x0000555556156465 in qemu_thread_start at ../util/qemu-thread-posix.c:541 #22 0x00007ffff6960fd4 in start_thread at ./nptl/pthread_create.c:442 #23 0x00007ffff69e166c in clone3 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 gef⤠p ->name $4 = 0x555557615bd0 "pci-conf-idx" Raven owns both the ravio_io MR and the pci-conf MRs. raven_io needs to be marked re-entrancy safe.