On Tue, 23 Apr 2013 12:57:45 -0700 (PDT) Hugh Dickins <hughd@xxxxxxxxxx> wrote: > For now I stand by what I said before (if you find it effective > in practice - I haven't heard back): at the moment you need to > > mark_page_accessed(page); /* to SetPageReferenced */ > lru_add_drain(); /* to SetPageLRU */ > mark_page_accessed(page); /* to SetPageActive */ > > when such a metadata page is first brought in. That should fix things for now. Although it might be better to just do mark_page_accessed(page); /* to SetPageReferenced */ lru_add_drain(); /* to SetPageLRU */ Because a) this was too early to decide that the page is super-important and b) the second touch of this page should have a mark_page_accessed() in it already. I do agree that we should be able to set both PageReferenced and PageActive on a lru_add_pvecs page and have those hints honoured when lru_add_pvecs is spilled onto the LRU. At present the code decides up-front which LRU the lru_add_pvecs page will eventually be spilled onto. That's a bit strange and I wonder why we did it that way. Why not just have a single (per-cpu) magazine of pages which are to go onto the LRUs, and decide *which* LRU that will be at the last possible moment? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>