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 from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html