Hi Juergen, On 04/07/2018 07:59 PM, Juergen Gross wrote: > On 07/04/18 13:25, Dongli Zhang wrote: >> This is to introduce "xenwatch multithreading" (or "multithreaded xenwatch", >> abbreviated as 'mtwatch'). The implementation of xen mtwatch involves below >> components: >> >> * dom0 linux kernel >> * xen toolstack >> >> Here are what the RFC is going to discuss: >> >> - what is the problem >> - what is the objective >> - what is the solution > > Instead of creating one thread per domU, wouldn't it make much more > sense to use another mechanism, e.g. a workqueue, to deliver the > watch events? This would be one central place, wouldn't need any > changes in Xen tools or complex mechanisms to select the correct > thread, save resources, and domUs would benefit, too.
I think the xenwatch events of the same domU are expected to be processed in order. I do not think we are able to guarantee the events of same domU are processed in order with a central workqueue (unless it is an ordered workqueue). Suppose an event callback function is stalled, we expected all following events belong to the same domU are delayed until there is workaround/solution to unblock the stalled function. For instance, as mentioned in below mailing list archive, once the NIC is reset, all in-flight packets are flushed and the stalled callback function moves forward and complete. As all events (especially the events belong to the same domU) are still queued, the pv device backend can disconnect correctly and successfully. With a central workqueue, the following events belong to the same domU are already processed so that the pv device backend may not disconnect successfully. https://lists.xenproject.org/archives/html/xen-devel/2016-06/msg00195.html Dongli Zhang