All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bitmap scan
@ 2015-07-09  3:47 Fam Zheng
  2015-07-09  3:47 ` [Qemu-devel] [PATCH 1/3] blockjob: Introduce block_job_relax_cpu Fam Zheng
                   ` (4 more replies)
  0 siblings, 5 replies; 22+ messages in thread
From: Fam Zheng @ 2015-07-09  3:47 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Jeff Cody, qemu-block

This supersedes:

http://patchwork.ozlabs.org/patch/491415/

and [1] which is currently in Jeff's tree.

Although [1] fixed the QMP responsiveness, Alexandre DERUMIER reported that
guest responsiveness still suffers when we are busy in the initial dirty bitmap
scanning loop of mirror job. That is because 1) we issue too many lseeks; 2) we
only sleep for 0 ns which turns out quite ineffective in yielding BQL to vcpu
threads.  Both are fixed.

To reproduce: start a guest, attach a 10G raw image, then mirror it.  Your
guest will immediately start to stutter (with patch [1] testing on a local ext4
raw image, and "while echo -n .; do sleep 0.05; done" in guest console).

This series adds block_job_relax_cpu as suggested by Stefan Hajnoczi and uses
it in mirror job; and lets bdrv_is_allocated_above return a larger p_num as
suggested by Paolo Bonzini (although it's done without changing the API).

[1]: http://patchwork.ozlabs.org/patch/471656/ "block/mirror: Sleep
     periodically during bitmap scanning"

Fam Zheng (3):
  blockjob: Introduce block_job_relax_cpu
  mirror: Use block_job_relax_cpu during bitmap scanning
  mirror: Speed up bitmap initial scanning

 block/mirror.c           | 17 +++++++----------
 include/block/blockjob.h | 16 ++++++++++++++++
 2 files changed, 23 insertions(+), 10 deletions(-)

-- 
2.4.3

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

end of thread, other threads:[~2015-07-16 13:21 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-09  3:47 [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bitmap scan Fam Zheng
2015-07-09  3:47 ` [Qemu-devel] [PATCH 1/3] blockjob: Introduce block_job_relax_cpu Fam Zheng
2015-07-09 12:54   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-07-10  3:42     ` Alexandre DERUMIER
2015-07-14 12:31       ` Stefan Hajnoczi
2015-07-15 10:32         ` Fam Zheng
2015-07-16 13:21           ` Stefan Hajnoczi
2015-07-09  3:47 ` [Qemu-devel] [PATCH 2/3] mirror: Use block_job_relax_cpu during bitmap scanning Fam Zheng
2015-07-09 13:00   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-07-09  3:47 ` [Qemu-devel] [PATCH 3/3] mirror: Speed up bitmap initial scanning Fam Zheng
2015-07-09 13:00   ` Stefan Hajnoczi
2015-07-14 13:21   ` Stefan Hajnoczi
2015-07-09 11:51 ` [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bitmap scan Alexandre DERUMIER
2015-07-09 13:02 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-07-09 13:18   ` Alexandre DERUMIER
2015-07-10  6:43   ` Fam Zheng
2015-07-10  6:54     ` Alexandre DERUMIER
2015-07-10  7:13       ` Fam Zheng
2015-07-10 10:36         ` Alexandre DERUMIER
2015-07-10 12:16           ` Alexandre DERUMIER
2015-07-13  5:08             ` Fam Zheng
2015-07-14 12:40               ` Stefan Hajnoczi

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.