qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bit


From: Alexandre DERUMIER
Subject: Re: [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bitmap scan
Date: Thu, 9 Jul 2015 13:51:43 +0200 (CEST)

Hi, 

I have tested them, they works fine here (tested with source :raw on nfs, raw 
on ext3, and ceph/rbd device).

Patch 3 give me a big boost with an empty 10GB source raw on ext3. (take some 
seconds vs some minutes)


----- Mail original -----
De: "Fam Zheng" <address@hidden>
À: "qemu-devel" <address@hidden>
Cc: "Kevin Wolf" <address@hidden>, "Jeff Cody" <address@hidden>, address@hidden
Envoyé: Jeudi 9 Juillet 2015 05:47:55
Objet: [Qemu-devel] [PATCH 0/3] mirror: Fix guest responsiveness during bitmap 
scan

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 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]