On Sun, 23 Dec 2007 12:35:30 +0200 Avi Kivity <[EMAIL PROTECTED]> wrote:
> Andrew Morton wrote: > > On Sun, 23 Dec 2007 10:59:22 +0200 Avi Kivity <[EMAIL PROTECTED]> 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 > > <[EMAIL PROTECTED]> 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/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel