[v11,00/14] backup-top filter driver for backup
mbox series

Message ID 20190910102332.20560-1-vsementsov@virtuozzo.com
Headers show
Series
  • backup-top filter driver for backup
Related show

Message

Vladimir Sementsov-Ogievskiy Sept. 10, 2019, 10:23 a.m. UTC
Hi all!

These series introduce backup-top driver. It's a filter-node, which
do copy-before-write operation. Mirror uses filter-node for handling
guest writes, let's move to filter-node (from write-notifiers) for
backup too.

v11: based on Kevin's block branch

02,03: Add Max's r-b
04: - improve comments
    - rebase on dropped backup_drain
    - s/job/bcs/ in trace events
05: one hunk dropped due to rebasing
    on dropped backup_drain, still,
    keep Max's r-b
06: rebased on 04 changes, keep Max's r-b
08,13,14: add Max's r-b

Based-on: git://repo.or.cz/qemu/kevin.git block

Vladimir Sementsov-Ogievskiy (14):
  block/backup: fix backup_cow_with_offload for last cluster
  block/backup: split shareable copying part from backup_do_cow
  block/backup: improve comment about image fleecing
  block/backup: introduce BlockCopyState
  block/backup: fix block-comment style
  block: move block_copy from block/backup.c to separate file
  block: teach bdrv_debug_breakpoint skip filters with backing
  iotests: prepare 124 and 257 bitmap querying for backup-top filter
  iotests: 257: drop unused Drive.device field
  iotests: 257: drop device_add
  block/io: refactor wait_serialising_requests
  block: add lock/unlock range functions
  block: introduce backup-top filter driver
  block/backup: use backup-top instead of write notifiers

 qapi/block-core.json          |   8 +-
 block/backup-top.h            |  37 ++
 include/block/block-copy.h    |  84 ++++
 include/block/block_int.h     |   5 +
 block.c                       |  34 +-
 block/backup-top.c            | 240 ++++++++++++
 block/backup.c                | 440 ++++-----------------
 block/block-copy.c            | 337 ++++++++++++++++
 block/io.c                    |  68 +++-
 block/replication.c           |   2 +-
 blockdev.c                    |   1 +
 block/Makefile.objs           |   3 +
 block/trace-events            |  14 +-
 tests/qemu-iotests/056        |   8 +-
 tests/qemu-iotests/124        |  83 ++--
 tests/qemu-iotests/257        |  91 ++---
 tests/qemu-iotests/257.out    | 714 ++++++++++++++--------------------
 tests/qemu-iotests/iotests.py |  27 ++
 18 files changed, 1278 insertions(+), 918 deletions(-)
 create mode 100644 block/backup-top.h
 create mode 100644 include/block/block-copy.h
 create mode 100644 block/backup-top.c
 create mode 100644 block/block-copy.c

Comments

Vladimir Sementsov-Ogievskiy Sept. 13, 2019, 3:44 p.m. UTC | #1
10.09.2019 13:23, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
> 
> These series introduce backup-top driver. It's a filter-node, which
> do copy-before-write operation. Mirror uses filter-node for handling
> guest writes, let's move to filter-node (from write-notifiers) for
> backup too.
> 
> v11: based on Kevin's block branch

Now based on master

> 
> 02,03: Add Max's r-b
> 04: - improve comments
>      - rebase on dropped backup_drain
>      - s/job/bcs/ in trace events
> 05: one hunk dropped due to rebasing
>      on dropped backup_drain, still,
>      keep Max's r-b
> 06: rebased on 04 changes, keep Max's r-b
> 08,13,14: add Max's r-b
> 
> Based-on: git://repo.or.cz/qemu/kevin.git block
> 
> Vladimir Sementsov-Ogievskiy (14):
>    block/backup: fix backup_cow_with_offload for last cluster
>    block/backup: split shareable copying part from backup_do_cow
>    block/backup: improve comment about image fleecing
>    block/backup: introduce BlockCopyState
>    block/backup: fix block-comment style
>    block: move block_copy from block/backup.c to separate file
>    block: teach bdrv_debug_breakpoint skip filters with backing
>    iotests: prepare 124 and 257 bitmap querying for backup-top filter
>    iotests: 257: drop unused Drive.device field
>    iotests: 257: drop device_add
>    block/io: refactor wait_serialising_requests
>    block: add lock/unlock range functions
>    block: introduce backup-top filter driver
>    block/backup: use backup-top instead of write notifiers
> 
>   qapi/block-core.json          |   8 +-
>   block/backup-top.h            |  37 ++
>   include/block/block-copy.h    |  84 ++++
>   include/block/block_int.h     |   5 +
>   block.c                       |  34 +-
>   block/backup-top.c            | 240 ++++++++++++
>   block/backup.c                | 440 ++++-----------------
>   block/block-copy.c            | 337 ++++++++++++++++
>   block/io.c                    |  68 +++-
>   block/replication.c           |   2 +-
>   blockdev.c                    |   1 +
>   block/Makefile.objs           |   3 +
>   block/trace-events            |  14 +-
>   tests/qemu-iotests/056        |   8 +-
>   tests/qemu-iotests/124        |  83 ++--
>   tests/qemu-iotests/257        |  91 ++---
>   tests/qemu-iotests/257.out    | 714 ++++++++++++++--------------------
>   tests/qemu-iotests/iotests.py |  27 ++
>   18 files changed, 1278 insertions(+), 918 deletions(-)
>   create mode 100644 block/backup-top.h
>   create mode 100644 include/block/block-copy.h
>   create mode 100644 block/backup-top.c
>   create mode 100644 block/block-copy.c
>