All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Dietmar Maurer <dietmar@proxmox.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1)
Date: Fri, 23 Nov 2012 10:55:50 +0100	[thread overview]
Message-ID: <50AF4826.3000901@redhat.com> (raw)
In-Reply-To: <24E144B8C0207547AD09C467A8259F755782F9A4@lisa.maurer-it.com>

Am 23.11.2012 10:05, schrieb Dietmar Maurer:
>>>> My plan was to have something like bs->job->job_type-
>>>> {before,after}_write.
>>>>
>>>>    int coroutine_fn (*before_write)(BlockDriverState *bs,
>>>>         int64_t sector_num, int nb_sectors, QEMUIOVector *qiov,
>>>>         void **cookie);
>>>>    int coroutine_fn (*after_write)(BlockDriverState *bs,
>>>>         int64_t sector_num, int nb_sectors, QEMUIOVector *qiov,
>>>>         void *cookie);
>>>
>>> I don't think that job is the right place. Instead I would put a list
>>> of filters into
>>> BDS:
>>
>> Well, I can also add it to job_type. Just tell me what you prefer, and I will
>> write the patch.

A block filter shouldn't be tied to a job, I think. We have things like
blkdebug that are really filters and aren't coupled with a job, and on
the other hand we want to generalise "block jobs" into just "jobs", so
adding block specific things to job_type would be a step in the wrong
direction.

I also think that before_write/after_write isn't a convenient interface,
it brings back much of the callback-based AIO cruft and passing void*
isn't nice anyway. It's much nice to have a single .bdrv_co_write
callback that somewhere in the middle calls the layer below with a
simple function call.

Also read/write aren't enough, for a full filter interface you
potentially also need flush, discard and probably most other operations.

This is why I suggested using a regular BlockDriver struct for filters,
it already has all functions that are needed.

> BTW, will such filters work with the new virtio-blk-data-plane?

Not initially, but I think as soon as data plane gets support for image
formats, filters would work as well.

Kevin

  parent reply	other threads:[~2012-11-23  9:56 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-21  9:01 [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Dietmar Maurer
2012-11-21  9:01 ` [Qemu-devel] [PATCH 2/5] add basic backup support to block driver Dietmar Maurer
2012-11-22 11:25   ` Stefan Hajnoczi
2012-11-22 11:29     ` Dietmar Maurer
2012-11-23  8:56     ` Dietmar Maurer
2012-11-21  9:01 ` [Qemu-devel] [PATCH 3/5] introduce new vma archive format Dietmar Maurer
2012-11-21 16:06   ` Eric Blake
2012-11-21 17:56     ` Dietmar Maurer
2012-11-21  9:01 ` [Qemu-devel] [PATCH 4/5] add backup related monitor commands Dietmar Maurer
2012-11-21 16:16   ` Eric Blake
2012-11-21 17:59     ` Dietmar Maurer
2012-11-21 18:49     ` Dietmar Maurer
2012-11-21  9:01 ` [Qemu-devel] [PATCH 5/5] add regression tests for backup Dietmar Maurer
2012-11-21 10:48 ` [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Kevin Wolf
2012-11-21 11:10   ` Dietmar Maurer
2012-11-21 12:37     ` Kevin Wolf
2012-11-21 13:23       ` Paolo Bonzini
2012-11-23  7:42         ` Dietmar Maurer
2012-11-23  9:18           ` Paolo Bonzini
2012-11-23  9:28             ` Dietmar Maurer
2012-11-23  8:12         ` Dietmar Maurer
2012-11-23  9:01           ` Dietmar Maurer
2012-11-23  9:05             ` Dietmar Maurer
2012-11-23  9:15               ` Paolo Bonzini
2012-11-23  9:17                 ` Dietmar Maurer
2012-11-23  9:55               ` Kevin Wolf [this message]
2012-11-23 10:55                 ` Markus Armbruster
2012-11-21 13:25       ` Dietmar Maurer
2012-11-21 13:58         ` Kevin Wolf
2012-11-21 15:47           ` Dietmar Maurer
2012-11-23  7:38       ` Dietmar Maurer
2012-11-23  9:08         ` Kevin Wolf
2012-11-23  9:21           ` Dietmar Maurer
2012-11-23  9:31             ` Dietmar Maurer
2012-11-23 10:29               ` Kevin Wolf
2012-11-26  5:51                 ` Dietmar Maurer
2012-11-26 12:07                   ` Paolo Bonzini
2012-11-27  6:20                     ` Dietmar Maurer
2012-11-27  7:15                       ` Dietmar Maurer
2012-11-27  8:48                         ` Kevin Wolf
2012-11-27 10:24                           ` Dietmar Maurer
2012-11-21 11:23   ` Dietmar Maurer
2012-11-22 11:12 ` Stefan Hajnoczi
2012-11-22 11:26   ` Dietmar Maurer
2012-11-22 12:44     ` Stefan Hajnoczi
2012-11-22 12:55       ` Dietmar Maurer
2012-11-22 15:30         ` Stefan Hajnoczi
2012-11-22 15:58           ` Dietmar Maurer
2012-11-22 17:02             ` Stefan Hajnoczi
2012-11-22 17:34               ` Dietmar Maurer
2012-11-22 11:40   ` Dietmar Maurer
2012-11-22 15:42     ` Stefan Hajnoczi
2012-11-22 12:00   ` Dietmar Maurer
2012-11-22 15:45     ` Stefan Hajnoczi
2012-11-22 15:56       ` Dietmar Maurer
2012-11-22 16:37         ` Stefan Hajnoczi
2012-11-22 12:03   ` Dietmar Maurer
2012-11-22 17:16   ` Stefan Hajnoczi
2012-11-22 17:46     ` Dietmar Maurer
2012-11-23  5:23       ` Stefan Hajnoczi
2012-11-23  5:25         ` Stefan Hajnoczi
2012-11-23  6:18           ` Dietmar Maurer
2012-11-23  6:13         ` Dietmar Maurer
2012-11-22 17:50     ` Dietmar Maurer
2012-11-23  5:21       ` Stefan Hajnoczi
2012-11-22 18:05     ` Dietmar Maurer
2012-11-23  5:19       ` Stefan Hajnoczi
2012-11-23  6:05         ` Dietmar Maurer
2012-11-22 18:15     ` Dietmar Maurer
2012-11-27 10:09 ` Wenchao Xia
2012-11-27 10:37   ` Dietmar Maurer
2012-11-28  9:39     ` Wenchao Xia
2012-11-28 11:08       ` Dietmar Maurer

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=50AF4826.3000901@redhat.com \
    --to=kwolf@redhat.com \
    --cc=dietmar@proxmox.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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.