From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Date: Thu, 13 May 2010 11:05:00 +0000 Subject: Re: [RFC][PATCH RFC 10/12] KVM: move dirty bitmaps to user space Message-Id: <4BEBDCDC.4030702@oss.ntt.co.jp> List-Id: References: <20100504220702.f8ba6ccc.takuya.yoshikawa@gmail.com> In-Reply-To: <20100504220702.f8ba6ccc.takuya.yoshikawa@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ia64@vger.kernel.org >> >> mark_page_dirty is called with the mmu_lock spinlock held in set_spte. >> Must find a way to move it outside of the spinlock section. >> > > Oh, it's a serious problem. I have to consider it. Avi, Marcelo, Sorry but I have to say that mmu_lock spin_lock problem was completely out of my mind. Although I looked through the code, it seems not easy to move the set_bit_user to outside of spinlock section without breaking the semantics of its protection. So this may take some time to solve. But personally, I want to do something for x86's "vmallc() every time" problem even though moving dirty bitmaps to user space cannot be achieved soon. In that sense, do you mind if we do double buffering without moving dirty bitmaps to user space? I know that the resource for vmalloc() is precious for x86 but even now, at the timing of get_dirty_log, we use the same amount of memory as double buffering. Thanks, Takuya From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Date: Thu, 13 May 2010 11:05:00 +0000 Subject: Re: [RFC][PATCH RFC 10/12] KVM: move dirty bitmaps to user space Message-Id: <4BEBDCDC.4030702@oss.ntt.co.jp> List-Id: References: <20100504215645.6448af8f.takuya.yoshikawa@gmail.com> <20100504220702.f8ba6ccc.takuya.yoshikawa@gmail.com> <20100511032827.GA3458@amt.cnet> <4BEA4A62.20100@oss.ntt.co.jp> In-Reply-To: <4BEA4A62.20100-gVGce1chcLdL9jVzuh4AOg@public.gmane.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Marcelo Tosatti Cc: Takuya Yoshikawa , avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, agraf-l3A5Bk7waGM@public.gmane.org, fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org >> >> mark_page_dirty is called with the mmu_lock spinlock held in set_spte. >> Must find a way to move it outside of the spinlock section. >> > > Oh, it's a serious problem. I have to consider it. Avi, Marcelo, Sorry but I have to say that mmu_lock spin_lock problem was completely out of my mind. Although I looked through the code, it seems not easy to move the set_bit_user to outside of spinlock section without breaking the semantics of its protection. So this may take some time to solve. But personally, I want to do something for x86's "vmallc() every time" problem even though moving dirty bitmaps to user space cannot be achieved soon. In that sense, do you mind if we do double buffering without moving dirty bitmaps to user space? I know that the resource for vmalloc() is precious for x86 but even now, at the timing of get_dirty_log, we use the same amount of memory as double buffering. Thanks, Takuya From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takuya Yoshikawa Subject: Re: [RFC][PATCH RFC 10/12] KVM: move dirty bitmaps to user space Date: Thu, 13 May 2010 20:05:00 +0900 Message-ID: <4BEBDCDC.4030702@oss.ntt.co.jp> References: <20100504215645.6448af8f.takuya.yoshikawa@gmail.com> <20100504220702.f8ba6ccc.takuya.yoshikawa@gmail.com> <20100511032827.GA3458@amt.cnet> <4BEA4A62.20100@oss.ntt.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Takuya Yoshikawa , avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, agraf-l3A5Bk7waGM@public.gmane.org, fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org To: Marcelo Tosatti Return-path: In-Reply-To: <4BEA4A62.20100-gVGce1chcLdL9jVzuh4AOg@public.gmane.org> Sender: kvm-ppc-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: kvm.vger.kernel.org >> >> mark_page_dirty is called with the mmu_lock spinlock held in set_spte. >> Must find a way to move it outside of the spinlock section. >> > > Oh, it's a serious problem. I have to consider it. Avi, Marcelo, Sorry but I have to say that mmu_lock spin_lock problem was completely out of my mind. Although I looked through the code, it seems not easy to move the set_bit_user to outside of spinlock section without breaking the semantics of its protection. So this may take some time to solve. But personally, I want to do something for x86's "vmallc() every time" problem even though moving dirty bitmaps to user space cannot be achieved soon. In that sense, do you mind if we do double buffering without moving dirty bitmaps to user space? I know that the resource for vmalloc() is precious for x86 but even now, at the timing of get_dirty_log, we use the same amount of memory as double buffering. Thanks, Takuya