From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Subject: Re: Heavy memory_region_get_dirty() -- Re: [PATCH 0/1 v2] KVM: Alleviate mmu_lock contention during dirty logging Date: Wed, 2 May 2012 23:20:50 +0900 Message-ID: <20120502232050.f9effe55ba1eb02720982b36@gmail.com> References: <20120428190544.7dc2bfd281054c1fcac5a14e@gmail.com> <20120502202414.37d760fbb1135bb8acb0f0db@gmail.com> <4FA11BA3.2000605@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: mtosatti@redhat.com, kvm@vger.kernel.org, yoshikawa.takuya@oss.ntt.co.jp, qemu-devel@nongnu.org To: Avi Kivity Return-path: Received: from mail-pb0-f46.google.com ([209.85.160.46]:44480 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752382Ab2EBOUy (ORCPT ); Wed, 2 May 2012 10:20:54 -0400 Received: by pbbrp8 with SMTP id rp8so1156934pbb.19 for ; Wed, 02 May 2012 07:20:54 -0700 (PDT) In-Reply-To: <4FA11BA3.2000605@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, 02 May 2012 14:33:55 +0300 Avi Kivity wrote: > > ============================= > > perf top -t ${QEMU_TID} > > ============================= > > 51.52% qemu-system-x86_64 [.] memory_region_get_dirty > > 16.73% qemu-system-x86_64 [.] ram_save_remaining > > > > memory_region_get_dirty() is called from ram_save_remaining(). Looks > like quadratic behaviour here: we send a few pages in > ram_save_remaining(), then walk the entire dirty bitmap to calculate > expected_time(). > > We should probably calculate expected_time once per iteration. There seems to be many unnecessary/repeated calculations. Not restricted to this expected_time one. Takuya