* [Qemu-devel] BlockBackend next steps
@ 2014-10-23 12:16 Markus Armbruster
2014-10-24 12:28 ` Stefan Hajnoczi
0 siblings, 1 reply; 3+ messages in thread
From: Markus Armbruster @ 2014-10-23 12:16 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Fam Zheng, Jeff Cody, Max Reitz, Stefan Hajnoczi,
Benoît Canet
"Need BlockBackend" has been a recurring theme for a long time. It's
finally on master now. Plenty of work left to do. Let's coordinate
next steps to avoid duplicate work.
A few obvious tasks:
* Complete monitor command conversion
Commands deal with complete backends and with individual nodes or
sub-trees. The former need conversion from BlockDriverState to
BlockBackend.
Done: qmp_query_block(), qmp_eject(), qmp_change_blockdev().
Can be done command by command. Some command conversions depend on
other conversions.
* Complete utility program conversion (qemu-img qemu-io qemu-nbd)
Done: BB creation and destruction.
To be done: actual use. Can be done program by program.
* Convert internal NBD server
* Convert block migration
* Convert block jobs
We want to divorce jobs from the block layer, but since that'll
probably take a while, lift them for now.
* Convert any other users outside the block subsystem
* Lift backend stuff from BDS into BB
Lift one group of related members at a time.
A good starting point is bdrv_move_feature_fields(). Examine the
stuff it moves group by group. Either move it, or add a comment
explaining why it should stay.
* Review use of bdrv_get_device_name()
Some uses might want the node-name instead.
Double-checking blk_name() use wouldn't hurt.
* Monitor command blockdev-del
Fail when reference count > 1.
* Monitor commands to force reference count down to 1
Sometimes, you want to stop using an image, so you can use it for
something else, e.g. another VM.
To do that, you need to make its users give up their reference: unplug
device model, complete block job, unexport from internal NBD server,
...
Need to review everything in QEMU proper that can hold a reference,
and make sure there's a way to make it drop the reference.
Known complications:
* The only way to unexport seems to be stopping the NBD server
outright.
* When a device model is not pluggable, or refuses to unplug, we need
to fence it. The current way to do that is drive_del, which is
badly designed, needs to be replaced.
Depends on conversions.
* Get rid of "empty" BDS
Now: and empty backend is represented as BB with BDS that has a null
driver.
Wanted: represented as BB without BDS.
* Get rid of BDS member opaque
Now: BDS is a concrete data type. Block drivers use opaque to point
to their driver-specific state.
Wanted: BDS is an abstract base. Block drivers extend it.
Depends on the previous item.
If you have more, please list them.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] BlockBackend next steps
2014-10-23 12:16 [Qemu-devel] BlockBackend next steps Markus Armbruster
@ 2014-10-24 12:28 ` Stefan Hajnoczi
2014-10-24 12:56 ` Markus Armbruster
0 siblings, 1 reply; 3+ messages in thread
From: Stefan Hajnoczi @ 2014-10-24 12:28 UTC (permalink / raw)
To: Markus Armbruster
Cc: Kevin Wolf, Fam Zheng, Jeff Cody, qemu-devel, Max Reitz,
Benoît Canet
[-- Attachment #1: Type: text/plain, Size: 800 bytes --]
On Thu, Oct 23, 2014 at 02:16:37PM +0200, Markus Armbruster wrote:
> "Need BlockBackend" has been a recurring theme for a long time. It's
> finally on master now. Plenty of work left to do. Let's coordinate
> next steps to avoid duplicate work.
Great job. Thanks for sending this email. I haven't followed closely
and it helps me understand the current status.
Looks like many of these tasks can be done in parallel.
> * Convert block jobs
>
> We want to divorce jobs from the block layer, but since that'll
> probably take a while, lift them for now.
Breaking the 1:1 relationship between block jobs and BDS is nice
conceptually, but is there a concrete requirement? Unless there is a
use case that someone needs supported it's best to focus on more urgent
issues.
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] BlockBackend next steps
2014-10-24 12:28 ` Stefan Hajnoczi
@ 2014-10-24 12:56 ` Markus Armbruster
0 siblings, 0 replies; 3+ messages in thread
From: Markus Armbruster @ 2014-10-24 12:56 UTC (permalink / raw)
To: Stefan Hajnoczi
Cc: Kevin Wolf, Fam Zheng, Jeff Cody, qemu-devel, Max Reitz,
Benoît Canet
Stefan Hajnoczi <stefanha@redhat.com> writes:
> On Thu, Oct 23, 2014 at 02:16:37PM +0200, Markus Armbruster wrote:
>> "Need BlockBackend" has been a recurring theme for a long time. It's
>> finally on master now. Plenty of work left to do. Let's coordinate
>> next steps to avoid duplicate work.
>
> Great job. Thanks for sending this email. I haven't followed closely
> and it helps me understand the current status.
>
> Looks like many of these tasks can be done in parallel.
Indeed!
>> * Convert block jobs
>>
>> We want to divorce jobs from the block layer, but since that'll
>> probably take a while, lift them for now.
>
> Breaking the 1:1 relationship between block jobs and BDS is nice
> conceptually, but is there a concrete requirement? Unless there is a
> use case that someone needs supported it's best to focus on more urgent
> issues.
I agree it's not a priority by itself. It may be required to wean code
outside the block system off BDS. We'll find out as we do the work.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-10-24 12:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-23 12:16 [Qemu-devel] BlockBackend next steps Markus Armbruster
2014-10-24 12:28 ` Stefan Hajnoczi
2014-10-24 12:56 ` Markus Armbruster
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).