On 05/12/2011 10:53 AM, Johannes Weiner wrote:
I am open to solutions that trade fairness against CPU-time but don't want to have an extreme in either direction. Maybe break out early if a number of memcgs has been successfully reclaimed from and remember the last one scanned.
The way we used to deal with this when we did per-process virtual scanning (before rmap), was to scan the process at the head of the list. After we were done with that process, it got moved to the back of the list. If enough had been scanned, we bailed out of the scanning code alltogether; if more needed to be scanned, we moved on to the next process. Doing a list move after scanning a bunch of pages in the LRU lists of a cgroup isn't nearly as expensive as having to scan all the cgroups. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>