On Mon, Mar 31, 2014 at 8:34 AM, Rik van Riel <riel@xxxxxxxxxx> wrote: > > However, clearing the accessed bit does not lead to any > consistency issues, there is no reason to flush the TLB > immediately. The TLB flush can be deferred until some > later point in time. Ugh. I absolutely detest this patch. If we're going to leave the TLB dirty, then dammit, leave it dirty. Don't play some half-way games. Here's the patch you should just try: int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) { return ptep_test_and_clear_young(vma, address, ptep); } instead of complicating things. Rationale: if the working set is so big that we start paging things out, we sure as hell don't need to worry about TLB flushing. It will flush itself. And conversely - if it doesn't flush itself, and something stays marked as "accessed" in the TLB for a long time even though we've cleared it in the page tables, we don't care, because clearly there isn't enough memory pressure for the accessed bit to matter. Linus -- 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>