On Thu, 2017-05-04 at 10:33 -0700, Dave Hansen wrote: > > However the TLB invalidations are quite expensive with a GPU so too > > much harvesting is detrimental, and the GPU tends to check pages out > > using a special "read with intend to write" mode, which means it almost > > always set the dirty bit if the page is writable to begin with. > > Why do you have to invalidate the TLB? Does the GPU have a TLB so large > that it can keep thing in the TLB for super-long periods of time? > > We don't flush the TLB on clearing Accessed on x86 normally. We don't *have* to but there is no telling when it will get set again. I always found the non-invalidation of the TLB for harvesting "Accessed" on x86 chancy ... if a process pounds on a handful of pages heavily, they never get seen as accessed, which is just plain weird. But yes, we can do the same thing. Cheers, Ben. -- 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>