public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] KVM: dirty logging optimization - double buffering
@ 2010-10-27  9:21 Takuya Yoshikawa
  2010-10-27  9:22 ` [PATCH 1/3 rebased] KVM: introduce wrapper functions for creating/destroying dirty bitmaps Takuya Yoshikawa
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Takuya Yoshikawa @ 2010-10-27  9:21 UTC (permalink / raw)
  To: avi, mtosatti; +Cc: kvm, takuya.yoshikawa, fernando

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  |  }


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

end of thread, other threads:[~2010-11-01 17:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-27  9:21 [PATCH 0/3] KVM: dirty logging optimization - double buffering Takuya Yoshikawa
2010-10-27  9:22 ` [PATCH 1/3 rebased] KVM: introduce wrapper functions for creating/destroying dirty bitmaps Takuya Yoshikawa
2010-10-27  9:23 ` [PATCH 2/3 rebased] KVM: pre-allocate one more dirty bitmap to avoid vmalloc() Takuya Yoshikawa
2010-10-27  9:25 ` [PATCH 3/3 rebased] KVM: use kmalloc() for small dirty bitmaps Takuya Yoshikawa
2010-11-01  5:36   ` [PATCH 3/3 rebased-v2] " Takuya Yoshikawa
2010-11-01 16:42 ` [PATCH 0/3] KVM: dirty logging optimization - double buffering Marcelo Tosatti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox