Hi Andrew, now I have implemented the big get_user_pages rewrite. All the patches apply to 2.4.46 so far. Description of each patch (all called page_walk_api-2.5.46-XX): 01 - Implements the page walk api, staying as compatible, as possible to the user users. Introduces get_one_user_page() for the purpose, that the name suggests. The page iterator is called walk_user_pages(). get_one_user_page() expects find_extend_vma() to be called first. This is necessary or at least a nice optimization anyway in all its callers. Doesn't work with CONFIG_HUGETLB_PAGE and warns about that. (02 removes that). Introduces OBSOLETE_PAGE_WALKER and some mess to catch callers of get_user_pages, which need to collect vmas. (05 removes that). Also demonstrate its benefits in make_pages_present(). 02 - Implements a new follow_hugetlb_page() for i386,ia64,sparc64. Caveat: spin_lock(&mm->page_table_lock) is taken in this function, which wasn't needed before. Some contention analysis is welcome! 03 - Use the new function from 02 and support huge tlb pages now, too. 04 - Sprinkle the get_one_user_page() where only one page is needed. 05 - This patch requires the aio fix, which I sent out earlier today[1]. fs/aio.c called get_user_pages() with a wrong argument, causing buffer overflow and scribble on kernel memory. Here get_user_pages() is reduced by the last argument ("vmas"), because no remaining callers used it. I also sprinkled comments about optimizing with the new page walker API, where apropriate. All in all, I still need to implement the reason for all this: A scatterlist page walker. This will be done, if this stuff is accepted, because it makes no sense without it. The attached patchset supersedes the one I sent as page_walk_api[2]. Comments are very welcome. Regards Ingo Oeser [1] Ben might post it together with his next AIO update, so linux-kernel please stay tuned. On linux-mm it has been posted. [2] <20021104144937.H659@nightmaster.csn.tu-chemnitz.de> -- Science is what we can tell a computer. Art is everything else. --- D.E.Knuth