[ Replying to myself - a sure sign that I don't get out enough ] On Sun, 17 Dec 2006, Linus Torvalds wrote: > > So I don't actually see any serialization at all that would keep a random > page from being paged back in.
We do actually serialize, but we do it _after_ the page has already been mapped back. Ie we do it for the dirty page case at rthe end of do_wp_page() and do_no_page() when we do the "set_page_dirty_balance()", but that's potentially too late - we've already mapped the page read-write into the address space. That said, this means that only threaded apps should ever trigger any problems, which would seem to make it unlikely that this is the issue. But Andrew: I don't think it's necessarily true that "try_to_free_buffers()" callers have all unmapped the page. That seems to be true for vmscan.c (ie the shrink_page_list -> try_to_release_page -> try_to_release_buffers callchain), but what about the other callchains (through filesystems, or through "pagevec_strip()" or similar?) That pagevec_strip() is called from shrink_active_list(), I don't see that unmapping the pages.. Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/