On 5/26/22 21:51, Vladimir Sementsov-Ogievskiy wrote:
> On 5/26/22 19:46, Vladimir Sementsov-Ogievskiy wrote:
>> On 4/7/22 16:27, Vladimir Sementsov-Ogievskiy wrote:
>>> Hi all!
>>>
>>> v4: Now based on master
>>> 01: add assertion and r-b
>>> 02: s/7.0/7.1/ and r-b
>>> 03: switch to QEMUMachine, touch-up pylintrc, drop r-b
>>> 04,05,06: add r-b
>>> 07: switch to QEMUMachine
>>>
>>>
>>> Here are two new options for copy-before-write filter:
>>>
>>> on-cbw-error allows to alter the behavior on copy-before-write operation
>>> failure: not break guest write but break the snapshot (and therefore
>>> backup process)
>>>
>>> cbw-timeout allows to limit cbw operation by some timeout.
>>>
>>> So, for example, using cbw-timeout=60 and on-cbw-error=break-snapshot
>>> you can be sure that guest write will not stuck for more than 60
>>> seconds and will never fail due to backup problems.
>>>
>>> Vladimir Sementsov-Ogievskiy (7):
>>> block/copy-before-write: refactor option parsing
>>> block/copy-before-write: add on-cbw-error open parameter
>>> iotests: add copy-before-write: on-cbw-error tests
>>> util: add qemu-co-timeout
>>> block/block-copy: block_copy(): add timeout_ns parameter
>>> block/copy-before-write: implement cbw-timeout option
>>> iotests: copy-before-write: add cases for cbw-timeout option
>>>
>>> qapi/block-core.json | 31 ++-
>>> include/block/block-copy.h | 4 +-
>>> include/qemu/coroutine.h | 13 ++
>>> block/block-copy.c | 33 ++-
>>> block/copy-before-write.c | 111 ++++++---
>>> util/qemu-co-timeout.c | 89 ++++++++
>>> tests/qemu-iotests/pylintrc | 5 +
>>> tests/qemu-iotests/tests/copy-before-write | 213 ++++++++++++++++++
>>> .../qemu-iotests/tests/copy-before-write.out | 5 +
>>> util/meson.build | 1 +
>>> 10 files changed, 466 insertions(+), 39 deletions(-)
>>> create mode 100644 util/qemu-co-timeout.c
>>> create mode 100755 tests/qemu-iotests/tests/copy-before-write
>>> create mode 100644 tests/qemu-iotests/tests/copy-before-write.out
>>>
>>
>> Thanks for review, applied to my new block branch at https://gitlab.com/vsementsov/qemu.git
>>
>
> Or not. I still need an acc for QAPI interface (Eric or Markus could you please look?).
>
> Also, may be I should rename qemu-co-timeout.c to qemu-coroutine-timeout.c, to match "F: util/*coroutine*" in MAINTAINERS.. Stefan, Kevin, could you please look at it?
>
>
OK, I think, I can stage it, if no more comments. API changes are quite usual and new qemu_co_timeout is isolated. Applied to my block branch https://gitlab.com/vsementsov/qemu/-/commits/block
I think, I'll prepare a pull request on Monday, and include also my "[PATCH] MAINTAINERS: update Vladimir's address and repositories" if Stefan don't send it earlier.
--
Best regards,
Vladimir