On 12/10, Linus Torvalds wrote: > > On Tue, Dec 10, 2013 at 12:04 PM, Oleg Nesterov <o...@redhat.com> wrote: > >> We'd be *much* better off using get_user_pages_fast() if possible - > >> and I bet _is_ possible in 99% of all cases. > > > > We can't. get_user_pages_fast() takes mmap_sem. > > Yeah, and we need to look up the page table entry anyway, so what we > actually want here is just the page table walker,
Yes, this is clear. And damn, somehow I forgot that _fast() can (obviously) only use current->mm. > none of the "get > page" crap at all. > > So the core function should (I think) just do something like: I'll try to think, but this is what I actually tried to avoid. I mean, > Put another way: I actually think the existing "__replace_page()" code > is closer to being good than that disgusting uprobe_write_opcode() > function. I think you may be getting rid of the wrong ugly function. And perhaps you are right. But my only motivation was: rely on gup() to simplify this code. Yes, gup() is slow, but it works and we can avoid the "nontrivial" things like page_remove_rmap/munlock_vma_page. If we want to optimize this code, then this patch obviously goes to the wrong direction, I agree. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/