From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Morton Subject: Re: [patch 3/5] KVM: add kvm_follow_page() Date: Sun, 23 Dec 2007 02:52:45 -0800 Message-ID: <20071223025245.d839c86d.akpm@linux-foundation.org> References: <20071221001821.029994250@redhat.com> <20071221002024.345682789@redhat.com> <476D68A3.3000200@qumranet.com> <20071223052513.GA19072@dmt> <476E083B.5040600@qumranet.com> <476E1F23.3020609@qumranet.com> <476E236A.9000800@qumranet.com> <20071223012618.e8cf8320.akpm@linux-foundation.org> <476E39F2.4030202@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm-devel , Matt Mackall To: Avi Kivity Return-path: In-Reply-To: <476E39F2.4030202-atKUWr5tajBWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org On Sun, 23 Dec 2007 12:35:30 +0200 Avi Kivity wrote: > Andrew Morton wrote: > > On Sun, 23 Dec 2007 10:59:22 +0200 Avi Kivity wrote: > > > > > >> Avi Kivity wrote: > >> > >>> Avi Kivity wrote: > >>> > >>> > >>>> Exactly. But it is better to be explicit about it and pass the page > >>>> directly like you did before. I hate to make you go back-and-fourth, > >>>> but I did not understand the issue completely before. > >>>> > >>>> > >>>> > >>> btw, the call to gfn_to_page() can happen in page_fault() instead of > >>> walk_addr(); that will reduce the amount of error handling, and will > >>> simplify the callers to walk_addr() that don't need the page. > >>> > >>> > >>> > >> Note further that all this doesn't obviate the need for follow_page() > >> (or get_user_pages_inatomic()); we still need something in update_pte() > >> for the demand paging case. > >> > > > > Please review -mm's mm/pagewalk.c for suitability. > > > > If is is unsuitable but repairable then please cc Matt Mackall > > on the review. > > > > > > The "no locks are taken" comment is very worrying. We need accurate > results. take down_read(mm->mmap_sem) before calling it.. You have to do that anyway for its results to be meaningful in the caller. Ditto get_user_pages(). > Getting pte_t's in the callbacks is a little too low level for kvm's use > (which wants struct page pointers) but of course that easily handled in > a kvm wrapper. > > I'd prefer an atomic version of get_user_pages(), but if pagewalk is > fixed to take the necessary locks, it will do. It isn't exported to modules at present, although I see no problem in changing that. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/