Hi,

I think that I might have misunderstood something fundamental about the BQL (or 
possibly Qemu in general).

I have a custom PCIe device that connects to an outside simulation environment 
using Unix domain sockets. To deal with bus-mastering from this outside 
environment I have a thread created with qemu_thread_create listening to the 
socket.

If I get a read/write/interrupt request over the socket then the thread should 
perform a pci_dma_read/pci_dma_write/msix_notify. Since this is called from the 
threads context I assumed I should first grab the BQL. Issuing a bql_lock from 
the thread however hangs Qemu.

Is my thinking flawed?

I think looks very similar to what is going on in hw/misc/edu.c where bql_lock 
is called from a thread.

Thanks,
Markus




Reply via email to