qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-block] [PATCH v2 0/6] block: Mirror discarded sec


From: Fam Zheng
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v2 0/6] block: Mirror discarded sectors
Date: Fri, 8 May 2015 10:58:16 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

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 via email to

[Prev in Thread] Current Thread [Next in Thread]