On Wed, Feb 28, 2018 at 09:10:58AM +0000, Daniel P. Berrangé wrote:
> On Wed, Feb 28, 2018 at 01:06:23PM +0800, Peter Xu wrote:
> > The old incoming migration is running in main thread and default
> > gcontext. With the new qio_channel_add_watch_full() we can now let it
> > run in the thread's own gcontext (if there is one).
> >
> > Currently this patch does nothing alone. But when any of the incoming
> > migration is run in another iothread (e.g., the upcoming migrate-recover
> > command), this patch will bind the incoming logic to the iothread
> > instead of the main thread (which may already get page faulted and
> > hanged).
> >
> > RDMA is not considered for now since it's not even using the QIO APIs at
> > all.
>
> Errm, yes, it is.
>
> struct QIOChannelRDMA {
> QIOChannel parent;
> RDMAContext *rdma;
> QEMUFile *file;
> size_t len;
> bool blocking; /* XXX we don't actually honour this yet */
> };
> ....
Ah, you are right. :)
I should say that "it's not using QIO watch framework" since it's
using qemu_set_fd_handler() so it's always on main thread.
Thanks,
--
Peter Xu