I haven't seen the link to the muser prototype shared on the list yet, so I'm taking the liberty of posting it for discussion: https://github.com/oracle/qemu/tree/multi-process-qemu-v0.4.1-muser
Great that a lot of the multi-process patch series is no longer necessary. The muser approach requires less code in QEMU. The following points came to mind: 1. Configure PCI configuration space, BARs, and MSI/IRQs based on the PCIDevice instead of hard-coding the LSI SCSI controller's specifics. That way any PCIDevice can run as an muser device. 2. Integrate with QEMU's event loop instead of spawning threads and calling lm_ctx_run(). The event loop should monitor the muser fd for activity using aio_set_fd_handler() and then call into libmuser to handle the event. This will avoid thread model problems in the future and also allow true multi-threading (IOThreads). 3. Drop previous multi-process QEMU commits if they are not needed. Stefan