On Tue, Jun 07, 2011 at 01:15:02PM +0100, Stefan Hajnoczi wrote: > On Mon, Jun 6, 2011 at 5:55 PM, Marcelo Tosatti <mtosa...@redhat.com> wrote: > > I haven't reviewed this whole patch yet, but comments below. > > This patch, like image streaming, may hit deadlocks due to synchronous > I/O emulation. I discovered this problem when working on image > streaming and it should be solved by getting rid of the asynchronous > context concept. The problem is that async I/O emulation will push a > new context, preventing existing requests to complete until the > current context is popped again. If the image format has dependencies > between requests (e.g. QED allocating writes are serialized), then > this leads to deadlock because the new request cannot complete until > the old one does, but the old one needs to wait for the context to be > popped. I think you are not affected by the QED allocating write case > since the source image is only read, not written, by live block copy. > But you might encounter this problem in other places.
I see. This should be fixed in the context push/pop logic (or something equivalent), as you mention. Fixed other comments, thanks.