On 01/12/2017 08:26 PM, Andrea Arcangeli wrote:
2) the s/zone/node/ conversion of the page LRU feels still incomplete, as compaction still works zone based and can't compact memory crossing the zone boundaries. While it's is simpler to do compaction that way, it's not ideal because reclaim works node based.
I don't think it's that big issue. Node based reclaim is better than zone based because it avoids imbalanced aging between zones. Zone-based compaction doesn't have such problem.
To avoid dropping some patches that implement "compaction aware zone_reclaim_mode" (i.e. now node_reclaim_mode) I'm still running with zone LRU, although I don't disagree with the node LRU per se, my only issue is that compaction still work zone based and that collides with those changes. With reclaim working node based and compaction working zone based, I would need to call a blind for_each_zone(node) compaction() loop which is far from ideal compared to compaction crossing the zone boundary.
Compaction does a lot of watermark checking, which is also per-zone based, so we would likely have to do these for_each_zone() dances for the watermark checks, I'm afraid. At the same time it should make sure that it doesn't exhaust free pages of each single zone below the watermark. The result would look ugly, unless we switch to per-node watermarks.
Most pages that can be migrated by compaction can go in any zone, not all but we could record the page classzone.
Finding space for that in struct page also wouldn't be easy. What benefits do you expect from this? -- 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>