All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-7.2 0/5] block/mirror: Do not wait for active writes
@ 2022-11-09 16:54 Hanna Reitz
  2022-11-09 16:54 ` [PATCH for-7.2 1/5] " Hanna Reitz
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Hanna Reitz @ 2022-11-09 16:54 UTC (permalink / raw)
  To: qemu-block
  Cc: qemu-devel, Hanna Reitz, Kevin Wolf, John Snow,
	Vladimir Sementsov-Ogievskiy

Hi,

For some reason(TM), the mirror job, when in write-blocking mode, has
decided not to issue background requests while active writes are in
flight.  (Or rather, it was probably me who decided that.)

The problem is that only background requests can really reliably help
you make progress.  When all the mirror job does is to mirror guest
writes to the target, but not copy anything else that remains to be
copied in the disk, it will not make converge.

It is unclear why it is that way, so patch 1 simply drops that
dependency, and attempts to better explain the remaining
wait-dependencies we have between requests (i.e. why active requests
must wait on all overlapping requests for the whole range, but
background requests only wait on any conflicts that concern the
beginning of the range they want to copy).

Patch 2 is clean-up, patch 3 fixes another bug I found while trying to
come up with a working test case.

Patch 4 is that test case (I hope it works on your end, too), and patch
5 is a test case for the fix in patch 3.


Hanna Reitz (5):
  block/mirror: Do not wait for active writes
  block/mirror: Drop mirror_wait_for_any_operation()
  block/mirror: Fix NULL s->job in active writes
  iotests/151: Test that active mirror progresses
  iotests/151: Test active requests on mirror start

 block/mirror.c             |  78 ++++++++-----
 tests/qemu-iotests/151     | 227 ++++++++++++++++++++++++++++++++++++-
 tests/qemu-iotests/151.out |   4 +-
 3 files changed, 278 insertions(+), 31 deletions(-)

-- 
2.36.1



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

end of thread, other threads:[~2022-11-10 12:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-09 16:54 [PATCH for-7.2 0/5] block/mirror: Do not wait for active writes Hanna Reitz
2022-11-09 16:54 ` [PATCH for-7.2 1/5] " Hanna Reitz
2022-11-10 12:04   ` Kevin Wolf
2022-11-09 16:54 ` [PATCH for-7.2 2/5] block/mirror: Drop mirror_wait_for_any_operation() Hanna Reitz
2022-11-10 12:05   ` Kevin Wolf
2022-11-09 16:54 ` [PATCH for-7.2 3/5] block/mirror: Fix NULL s->job in active writes Hanna Reitz
2022-11-10 12:10   ` Kevin Wolf
2022-11-10 12:40     ` Hanna Reitz
2022-11-09 16:54 ` [PATCH for-7.2 4/5] iotests/151: Test that active mirror progresses Hanna Reitz
2022-11-10 12:33   ` Kevin Wolf
2022-11-09 16:54 ` [PATCH for-7.2 5/5] iotests/151: Test active requests on mirror start Hanna Reitz
2022-11-10 12:33   ` Kevin Wolf

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.