[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/3] block: Support streaming to an intermediate

From: Alberto Garcia
Subject: Re: [Qemu-devel] [PATCH 1/3] block: Support streaming to an intermediate layer
Date: Thu, 12 Mar 2015 14:18:35 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

(Ccing Markus and Jeff as suggested)

On Thu, Mar 05, 2015 at 03:04:25PM +0100, Kevin Wolf wrote:

> My question is whether we can't simply call stream_start() with an
> intermediate node as bs instead of introducing a new parameter. I'm
> not completely sure about the consequences of 3., i.e. moving
> ownership of a block job to some BDS somewhere down the chain, but
> otherwise it should be possible and seems cleaner.

I would like to get some feedback about how to properly block jobs
during a block streaming operation to an intermediate node.

So let's suppose we have a graph like this:

[A] <- [B] <- [C] <- [D] <- [E] <- [F]

[F] is the active layer, and to its left is the chain of backing

So if we stream from [B] (base) to [D] (top) this is the result:

[A] <- [B] <- [D] <- [E] <- [F]

The idea is that the block job would be owned by the node that is
receiving the data ([D] in this example) so other operations would
still be allowed in other parts of the chain. I would also update
query-block-jobs so it would return jobs owned by inner nodes, not
just the ones at the root (there's still the issue of how to refer to
those nodes, yesterday I wrote a separate e-mail about that).

During this process we would block all operations involving any node
between base and top ([C] in this example):

 - Streaming from [D] to [F] would be allowed.
 - Streaming from [A], [B] or [C] would not be allowed.
 - Streaming with no base would not be allowed either.

Are those assumptions correct? What would we do if part of the chain
is shared, like in this case?

[A] <- [B] <- [C] <- [D] <- [E] <- [F]
                 [G] <- [H] <- [I] <- [J]


reply via email to

[Prev in Thread] Current Thread [Next in Thread]