From: Paolo Bonzini <pbonzini@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@gmail.com>
Cc: spice-devel <spice-devel@lists.freedesktop.org>,
qemu-devel@nongnu.org, "Richard W.M. Jones" <rjones@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 07/12] block: save the associated child in BlockDriverState
Date: Fri, 21 Jun 2013 15:39:43 +0200 [thread overview]
Message-ID: <51C4579F.1030803@redhat.com> (raw)
In-Reply-To: <CAJ+F1C+ZMEyu9O0A1BschxjfkV65J5+vd97BGqePt7i2AKBEcg@mail.gmail.com>
Il 21/06/2013 15:30, Marc-André Lureau ha scritto:
> > Getting to the bottom BlockDriverState to be able to eject &
> > change it. (it could also be named the "parent", but other parts
> > of the code suggest the "child" name)
>
> There is already an interface for eject/change, which is the monitor.
> To signal an eject or medium change, the SPICE client should simply ask
> libvirt to do so. It is fine to change "from" spicebd: "to" spicebd:,
> the guest would still perceive it as a change.
>
> I'm not sure how libvirt communicates the change back to the SPICE
> client, and whether it is asynchronous or synchronous.
>
> Spice is not using libvirt, and doesn't have access to monitor. I looked
> at the monitor code. Basically, the spice block driver I proposed uses a
> similar code to forcefully eject and change.
Similar, but it also violates encapsulation by adding bs->child. :)
> Perhaps it's possible for the Spice qemu-side code to have access to the
> monitor, but the end result would be similar anyway.
That would work better. Spice qemu-side would keep an association
between Spice channels and block device names, and use that to convert
Spice commands to monitor commands (the API is
qmp_change_blockdev/qmp_eject).
Paolo
>
> BTW, note that IDE or virtio-blk do not support removable media, and are
> not able to pass eject or media change notifications. SCSI devices
> (such as usb-bot, usb-uas and virtio-scsi) can.
>
> > Can you draw the relationships between all the
> BlockDriverStates in a
> > spicebd: drive?
> >
> >
> > Hopefully, but I have only tested with raw images (w/wo snapshot).
>
> Then draw it. :) But from the above description it looks like it is not
> necessary, it should simply be "raw" on top of "spicebd". Parsing
> formats should be done on the client side, perhaps by invoking qemu-nbd
> and tunnelling the NBD data on the SPICE channel.
>
>
> Right, "raw" on top of "spicebd" for iso/raw images (and "qcow2" on top
> for snapshot support - even in readonly).
>
> I wonder what would happen if spicebd image would be something else than
> raw/iso, I suppose there would be more BlockDriverStates to handle the
> various format.
>
> --
> Marc-André Lureau
next prev parent reply other threads:[~2013-06-21 13:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-20 17:45 [Qemu-devel] [PATCH 00/12] RFC: add Spice block device Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 01/12] include: add missing config-host.h include Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 02/12] char: add qemu_chr_fe_event() Marc-André Lureau
2013-06-21 7:35 ` Gerd Hoffmann
2013-06-21 8:40 ` Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 03/12] nbd: don't change socket block during negotiate Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 04/12] Split nbd block client code Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 05/12] nbd: pass export name as init argument Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 06/12] nbd: make session_close() idempotent Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 07/12] block: save the associated child in BlockDriverState Marc-André Lureau
2013-06-20 22:25 ` Paolo Bonzini
2013-06-21 8:36 ` Marc-André Lureau
2013-06-21 11:57 ` Paolo Bonzini
2013-06-21 13:30 ` Marc-André Lureau
2013-06-21 13:39 ` Paolo Bonzini [this message]
2013-06-20 17:46 ` [Qemu-devel] [PATCH 08/12] block: extract make_snapshot() from bdrv_open() Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 09/12] block: add "snapshot.size" option to avoid extra bdrv_open() Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 10/12] block: learn to open a driver with a given opaque Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 11/12] block: allow to call bdrv_open() with an opaque Marc-André Lureau
2013-06-20 17:46 ` [Qemu-devel] [PATCH 12/12] block: add spice block device backend Marc-André Lureau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51C4579F.1030803@redhat.com \
--to=pbonzini@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=spice-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).