All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: qemu-block@nongnu.org, Jeff Cody <jcody@redhat.com>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	pbonzini@redhat.com, wangxiaolong@ucloud.cn
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v2 0/6] block: Mirror discarded sectors
Date: Fri, 8 May 2015 10:58:16 +0800	[thread overview]
Message-ID: <20150508025816.GA6185@fam-t430.nay.redhat.com> (raw)
In-Reply-To: <20150507132028.GL13985@stefanha-thinkpad.redhat.com>

On Thu, 05/07 14:20, Stefan Hajnoczi wrote:
> On Wed, May 06, 2015 at 12:52:02PM +0800, Fam Zheng wrote:
> > v2: Fix typo and add Eric's rev-by in patch 3.
> >     Add patch 1 to discard target in mirror job. (Paolo)
> >     Add patch 6 to improve iotests.wait_ready. (John)
> > 
> > This fixes the mirror assert failure reported by wangxiaolong:
> > 
> > https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg04458.html
> > 
> > The direct cause is that hbitmap code couldn't handle unset of bits *after*
> > iterator's current position. We could fix that, but the bdrv_reset_dirty() call
> > is more questionable:
> > 
> > Before, if guest discarded some sectors during migration, it could see
> > different data after moving to dest side, depending on block backends of the
> > src and the dest. This is IMO worse than mirroring the actual reading as done
> > in this series, because we don't know what the guest is doing.
> > 
> > For example if a guest first issues WRITE SAME to wipe out the area then issues
> > UNMAP to discard it, just to get rid of some sensitive data completely, we may
> > miss both operations and leave stale data on dest image.
> > 
> > 
> > Fam Zheng (6):
> >   mirror: Discard target sectors if not allocated at source side
> >   block: Fix dirty bitmap in bdrv_co_discard
> >   block: Remove bdrv_reset_dirty
> >   qemu-iotests: Make block job methods common
> >   qemu-iotests: Add test case for mirror with unmap
> >   iotests: Use event_wait in wait_ready
> > 
> >  block.c                       | 12 --------
> >  block/io.c                    |  4 +--
> >  block/mirror.c                | 12 ++++++--
> >  include/block/block_int.h     |  2 --
> >  tests/qemu-iotests/041        | 66 ++++++++++---------------------------------
> >  tests/qemu-iotests/131        | 59 ++++++++++++++++++++++++++++++++++++++
> >  tests/qemu-iotests/131.out    |  5 ++++
> >  tests/qemu-iotests/group      |  1 +
> >  tests/qemu-iotests/iotests.py | 23 +++++++++++++++
> >  9 files changed, 115 insertions(+), 69 deletions(-)
> >  create mode 100644 tests/qemu-iotests/131
> >  create mode 100644 tests/qemu-iotests/131.out
> 
> CCing Jeff Cody for block jobs

Thanks,

Note that in the discussion of v1 Paolo pointed out that discard on target is
not safe in some cases, I need to fix that in v3.

Fam

      reply	other threads:[~2015-05-08  2:58 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-06  4:52 [Qemu-devel] [PATCH v2 0/6] block: Mirror discarded sectors Fam Zheng
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 1/6] mirror: Discard target sectors if not allocated at source side Fam Zheng
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 2/6] block: Fix dirty bitmap in bdrv_co_discard Fam Zheng
2015-05-11 19:22   ` John Snow
2015-05-12  6:21     ` Fam Zheng
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 3/6] block: Remove bdrv_reset_dirty Fam Zheng
2015-05-11 19:11   ` John Snow
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 4/6] qemu-iotests: Make block job methods common Fam Zheng
2015-05-11 19:55   ` John Snow
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 5/6] qemu-iotests: Add test case for mirror with unmap Fam Zheng
2015-05-11 19:59   ` John Snow
2015-05-06  4:52 ` [Qemu-devel] [PATCH v2 6/6] iotests: Use event_wait in wait_ready Fam Zheng
2015-05-11 20:34   ` John Snow
2015-05-07 13:20 ` [Qemu-devel] [Qemu-block] [PATCH v2 0/6] block: Mirror discarded sectors Stefan Hajnoczi
2015-05-08  2:58   ` Fam Zheng [this message]

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=20150508025816.GA6185@fam-t430.nay.redhat.com \
    --to=famz@redhat.com \
    --cc=jcody@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=stefanha@redhat.com \
    --cc=wangxiaolong@ucloud.cn \
    /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.