On 28/05/2015 13:16, Fam Zheng wrote:
> > On 28/05/2015 03:46, Fam Zheng wrote:
> > > The main context uses iohandler and aio_dispatch, neither calls
> > > aio_set_dispatching(). However, if we have [2], they can be changed to
> > > aio_poll(), then would this idea work?
> > 
> > I think it's a bad idea to handle aio_poll for context B in a different
> > way, just because you have an outer aio_poll for context A...
> 
> But we already do something similar: ignoring slirp, main_loop_wait() is like
> an iothread aio_poll() without the "outermost differentiation", while the
> current aio_poll() in bdrv_drain() is roughly "main_loop_wait() minus
> iohandlers".

Right, but the two sets of iohandlers are stored in different places, so
it's obvious that you don't execute all of them.  On the other hand,
examining global state in aio_poll is really bad.

Paolo

Reply via email to