This patch series just change the way we allocate dirty bitmaps but don't change timing related issues. - Changelog I have not changed anything about patch 1 and 2 since I got "looks good" comment from Marcelo. Just rebased. Patch 3 has become simpler by rebasing on top of this series. Thanks, Takuya [Test result for VGA updates] - without this patch series | kvm_vm_ioctl_get_dirty_log() { | mutex_lock() { 0.229 us | _cond_resched(); 0.781 us | } | vmalloc() { ... ... ... ... + 34.898 us | } 0.229 us | memset(); | T.1684() { | __kmalloc() { 0.188 us | _cond_resched(); 1.075 us | memset(); 1.991 us | } 2.450 us | } | synchronize_srcu_expedited() { ... ... ... ... ! 108.113 us | } 0.259 us | kfree(); 0.215 us | _raw_spin_lock(); | kvm_mmu_slot_remove_write_access() { | kvm_flush_remote_tlbs() { | make_all_cpus_request() { 0.202 us | _raw_spin_lock(); 0.643 us | } 1.048 us | } 2.081 us | } | copy_to_user() { 0.304 us | _cond_resched(); 0.733 us | } | vfree() { ... ... ... ... 6.456 us | } 0.334 us | mutex_unlock(); ! 159.649 us | } - with this patch series | kvm_vm_ioctl_get_dirty_log() { | mutex_lock() { 0.300 us | _cond_resched(); 0.789 us | } 0.237 us | memset(); | T.1686() { | __kmalloc() { 0.207 us | _cond_resched(); 1.086 us | memset(); 1.981 us | } 2.408 us | } | synchronize_srcu_expedited() { ... ... ... ... + 88.786 us | } 0.244 us | kfree(); 0.221 us | _raw_spin_lock(); | kvm_mmu_slot_remove_write_access() { | kvm_flush_remote_tlbs() { | make_all_cpus_request() { 0.206 us | _raw_spin_lock(); 0.647 us | } 1.048 us | } 2.056 us | } | copy_to_user() { 0.263 us | _cond_resched(); 0.688 us | } 0.202 us | mutex_unlock(); + 98.356 us | } -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html