All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.