On 17/04/19 21:50, Frank Yang via Qemu-devel wrote:
> What's a quick fix for stuff like this?

It's a false positive.  The access in T14 is protected via
rcu_read_lock/rcu_read_unlock.

Paolo

> WARNING: ThreadSanitizer: data race (pid=168036)
>   Write of size 8 at 0x7b900017a100 by thread T1 (mutexes: write M2141):
>     #0 free
> /toolchain/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:715:3
> (qemu-system-x86_64+0x484028)
>     #1 phys_sections_free
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:1455:5
> (qemu-system-x86_64+0x523608)
>     #2 address_space_dispatch_free
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:3236
> (qemu-system-x86_64+0x523608)
>     #3 flatview_destroy
> /usr/local/google/home/lfy/emu/external/qemu/objs/../memory.c:290:9
> (qemu-system-x86_64+0x5bfcd1)
>     #4 call_rcu_thread
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/rcu.c:284:13
> (qemu-system-x86_64+0xb23274)
>     #5 qemu_thread_trampoline
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/qemu-thread-posix.c:551:17
> (qemu-system-x86_64+0xb033c6)
> 
>   Previous read of size 8 at 0x7b900017a100 by thread T14:
>     #0 address_space_lookup_region
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:431:37
> (qemu-system-x86_64+0x51b9b8)
>     #1 address_space_translate_internal
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:447
> (qemu-system-x86_64+0x51b9b8)
>     #2 flatview_do_translate
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:616:15
> (qemu-system-x86_64+0x51b318)
>     #3 flatview_translate
> /usr/local/google/home/lfy/emu/external/qemu/objs/../exec.c:680:15
> (qemu-system-x86_64+0x52bf20)
>     #4 address_space_translate
> /usr/local/google/home/lfy/emu/external/qemu/objs/../include/exec/memory.h:1896
> (qemu-system-x86_64+0x52bf20)
>     #5 address_space_lduw_internal_cached
> /usr/local/google/home/lfy/emu/external/qemu/objs/../memory_ldst.inc.c:264
> (qemu-system-x86_64+0x52bf20)
>     #6 address_space_lduw_le_cached
> /usr/local/google/home/lfy/emu/external/qemu/objs/../memory_ldst.inc.c:315:12
> (qemu-system-x86_64+0x52c44b)
>     #7 lduw_le_phys_cached
> /usr/local/google/home/lfy/emu/external/qemu/objs/../memory_ldst.inc.c:334
> (qemu-system-x86_64+0x52c44b)
>     #8 virtio_lduw_phys_cached
> /usr/local/google/home/lfy/emu/external/qemu/objs/../include/hw/virtio/virtio-access.h:166:12
> (qemu-system-x86_64+0x65c97b)
>     #9 vring_avail_idx
> /usr/local/google/home/lfy/emu/external/qemu/objs/../hw/virtio/virtio.c:240
> (qemu-system-x86_64+0x65c97b)
>     #10 virtio_queue_empty
> /usr/local/google/home/lfy/emu/external/qemu/objs/../hw/virtio/virtio.c:392
> (qemu-system-x86_64+0x65c97b)
>     #11 virtio_queue_host_notifier_aio_poll
> /usr/local/google/home/lfy/emu/external/qemu/objs/../hw/virtio/virtio.c:2427
> (qemu-system-x86_64+0x65c97b)
>     #12 run_poll_handlers_once
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/aio-posix.c:502:13
> (qemu-system-x86_64+0xaffd63)
>     #13 try_poll_mode
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/aio-posix.c:587
> (qemu-system-x86_64+0xaffd63)
>     #14 aio_poll
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/aio-posix.c:618
> (qemu-system-x86_64+0xaffd63)
>     #15 iothread_run
> /usr/local/google/home/lfy/emu/external/qemu/objs/../iothread.c:64:9
> (qemu-system-x86_64+0xa53344)
>     #16 qemu_thread_trampoline
> /usr/local/google/home/lfy/emu/external/qemu/objs/../util/qemu-thread-posix.c:551:17
> (qemu-system-x86_64+0xb033c6)
> 


Reply via email to