On Mon, 6 Mar 2023 at 14:10, Paolo Bonzini <pbonz...@redhat.com> wrote: > > On 3/6/23 14:38, Peter Maydell wrote: > > On Fri, 3 Mar 2023 at 17:21, Paolo Bonzini <pbonz...@redhat.com> wrote: > >> > >> Ensure ordering between clearing the COMPUTING flag and checking > >> IRQFACT, and between setting the IRQFACT flag and checking > >> COMPUTING. This ensures that no wakeups are lost. > >> > >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > > > > Why is this device even messing around with multiple > > threads and atomics anyway ?? > > Because it is an example of deferring device work to another thread, > just like on real hardware it may be deferred to an on-device > microcontroller or CPU.
If we want to be able to do that, we should probably have infrastructure and higher-level primitives for it that don't require device authors to be super-familiar with QEMU's memory model and barriers... The fact there are only half a dozen other uses of qemu_thread_create() under hw/ suggests that in practice we don't really need to do this very often, though. thanks -- PMM