From: Ori Mamluk <omamluk@zerto.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: "תומר בן אור" <tomer@zertodata.com>, "עודד קדם" <oded@zerto.com>,
"Jeff Cody" <jcody@redhat.com>,
dlaor@redhat.com, qemu-devel@nongnu.org,
"Markus Armbruster" <armbru@redhat.com>,
"Zhi Yong Wu" <zwu.kernel@gmail.com>,
"Federico Simoncelli" <fsimonce@redhat.com>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Yair Kuszpet" <yairk@zerto.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] BlockDriverState stack and BlockListeners
Date: Tue, 21 Feb 2012 12:20:49 +0200 [thread overview]
Message-ID: <4F437001.4000707@zerto.com> (raw)
In-Reply-To: <4F4368BF.4040707@redhat.com>
On 21/02/2012 11:49, Kevin Wolf wrote:
> Am 21.02.2012 10:15, schrieb Paolo Bonzini:
>>> So maybe we just need to extend the current BlockDriverState stack to
>>> distinguish "normal" and "always on top" BlockDrivers, where the latter
>>> would roughly correspond to BlockListeners?
>> I would prefer having separate objects. Even if you do not count fields
>> related to throttling or copy-on-read or other tasks in the list above,
>> there are many fields in BDS that do not really apply to BlockListeners.
>> Backing files, device ops, encryption, even size. Having extra methods
>> is not a big problem, but unwanted data items smell...
> Most other block drivers use only little of them. We can try to clean up
> some of them (and making the separation described above would probably
> help with it), but BlockListeners aren't really different here from
> existing drivers.
My impression as an outside observer was similar - it appears as though
the block driver object contains stuff that belongs to the specific
driver (e.g. bitmap).
An additional capability that I need in the replication filter is for
the driver to initiate a new IO. It means that if we have a stack of
drivers guest->bdrv1->bdrv2->bdrv3->image, then bdrv2 should be able to
invoke a read - which will be processed only by deeper parts of the
stack - i.e. bdrv3.
Makes sense?
For question of upper/lower drivers, I tend to think that there are two
kinds - those who need the original guest IO transactions and those who
transform them. Maybe two separate drivers stack (upper and lower) are
enough to implement this difference.
> Kevin
next prev parent reply other threads:[~2012-02-21 10:21 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-07 10:29 [Qemu-devel] [RFC PATCH] replication agent module Ori Mamluk
2012-02-07 12:12 ` Anthony Liguori
2012-02-07 12:25 ` Dor Laor
2012-02-07 12:30 ` Ori Mamluk
2012-02-07 12:40 ` Anthony Liguori
2012-02-07 14:06 ` Ori Mamluk
2012-02-07 14:40 ` Paolo Bonzini
2012-02-07 14:48 ` Ori Mamluk
2012-02-07 15:47 ` Paolo Bonzini
2012-02-08 6:10 ` Ori Mamluk
2012-02-08 8:49 ` Dor Laor
2012-02-08 11:59 ` Stefan Hajnoczi
2012-02-08 8:55 ` Kevin Wolf
2012-02-08 9:47 ` Ori Mamluk
2012-02-08 10:04 ` Kevin Wolf
2012-02-08 13:28 ` [Qemu-devel] [RFC] Replication agent design (was [RFC PATCH] replication agent module) Ori Mamluk
2012-02-08 14:59 ` Stefan Hajnoczi
2012-02-08 14:59 ` Stefan Hajnoczi
2012-02-19 13:40 ` Ori Mamluk
2012-02-20 14:32 ` Paolo Bonzini
2012-02-21 9:03 ` [Qemu-devel] BlockDriverState stack and BlockListeners (was: [RFC] Replication agent design) Kevin Wolf
2012-02-21 9:15 ` [Qemu-devel] BlockDriverState stack and BlockListeners Paolo Bonzini
2012-02-21 9:49 ` Kevin Wolf
2012-02-21 10:09 ` Paolo Bonzini
2012-02-21 10:51 ` Kevin Wolf
2012-02-21 11:36 ` Paolo Bonzini
2012-02-21 12:22 ` Stefan Hajnoczi
2012-02-21 12:57 ` Paolo Bonzini
2012-02-21 15:49 ` Markus Armbruster
2012-02-21 13:10 ` Kevin Wolf
2012-02-21 13:21 ` Paolo Bonzini
2012-02-21 15:56 ` Markus Armbruster
2012-02-21 16:04 ` Kevin Wolf
2012-02-21 16:19 ` Markus Armbruster
2012-02-21 16:39 ` Kevin Wolf
2012-02-21 17:16 ` Stefan Hajnoczi
2012-02-21 10:20 ` Ori Mamluk [this message]
2012-02-29 8:38 ` Ori Mamluk
2012-03-03 11:46 ` Stefan Hajnoczi
2012-03-04 5:14 ` Ori Mamluk
2012-03-04 8:56 ` Paolo Bonzini
2012-03-05 12:04 ` Stefan Hajnoczi
2012-02-08 11:02 ` [Qemu-devel] [RFC PATCH] replication agent module Stefan Hajnoczi
2012-02-08 13:00 ` [Qemu-devel] [RFC] Replication agent requirements (was [RFC PATCH] replication agent module) Ori Mamluk
2012-02-08 13:30 ` Anthony Liguori
2012-02-08 12:03 ` [Qemu-devel] [RFC PATCH] replication agent module Stefan Hajnoczi
2012-02-08 12:46 ` Paolo Bonzini
2012-02-08 14:39 ` Stefan Hajnoczi
2012-02-08 14:55 ` Paolo Bonzini
2012-02-08 15:07 ` Stefan Hajnoczi
2012-02-07 14:53 ` Kevin Wolf
2012-02-07 15:00 ` Anthony Liguori
2012-02-07 13:34 ` Kevin Wolf
2012-02-07 13:50 ` Stefan Hajnoczi
2012-02-07 13:58 ` Paolo Bonzini
2012-02-07 14:05 ` Paolo Bonzini
2012-02-08 12:17 ` Orit Wasserman
2012-02-07 14:18 ` Ori Mamluk
2012-02-07 14:59 ` Anthony Liguori
2012-02-07 15:20 ` Stefan Hajnoczi
2012-02-07 16:25 ` Anthony Liguori
2012-02-21 16:01 ` Markus Armbruster
2012-02-21 17:31 ` Stefan Hajnoczi
2012-02-07 14:45 ` Ori Mamluk
2012-02-08 12:29 ` Orit Wasserman
2012-02-08 11:45 ` Luiz Capitulino
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=4F437001.4000707@zerto.com \
--to=omamluk@zerto.com \
--cc=armbru@redhat.com \
--cc=dlaor@redhat.com \
--cc=fsimonce@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=oded@zerto.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=tomer@zertodata.com \
--cc=yairk@zerto.com \
--cc=zwu.kernel@gmail.com \
/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.