All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/6] block: Mirror discarded sectors
@ 2015-05-06  4:52 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
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Fam Zheng @ 2015-05-06  4:52 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, qemu-block, Stefan Hajnoczi, pbonzini, jsnow, wangxiaolong

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

-- 
1.9.3

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-05-12  6:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 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.