On 10/13/2016 10:08 AM, js1304@xxxxxxxxx wrote:
From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> We have migratetype facility to minimise fragmentation. It dynamically changes migratetype of pageblock based on some criterias but it never be perfect. Some migratetype pages are often placed in the other migratetype pageblock. We call this pageblock as mixed pageblock. There are two types of mixed pageblock. Movable page on unmovable pageblock and unmovable page on movable pageblock. (I simply ignore reclaimble migratetype/pageblock for easy explanation.) Earlier case is not a big problem because movable page is reclaimable or migratable. We can reclaim/migrate it when necessary so it usually doesn't contribute fragmentation. Actual problem is caused by later case. We don't have any way to reclaim/migrate this page and it prevents to make high order freepage. This later case happens when there is too less unmovable freepage. When unmovable freepage runs out, fallback allocation happens and unmovable allocation would be served by movable pageblock. To solve/prevent this problem, we need to have enough unmovable freepage to satisfy all unmovable allocation request by unmovable pageblock. If we set enough unmovable pageblock at boot and fix it's migratetype until power off, we would have more unmovable freepage during runtime and mitigate above problem. This patch provides a way to set minimum number of unmovable pageblock at boot time. In my test, with proper setup, I can't see any mixed pageblock where unmovable allocation stay on movable pageblock.
So if I get this correctly, the fixed-as-unmovable bit doesn't actually prevent fallbacks to such pageblocks? Then I'm surprised that's enough to make any difference. Also Johannes's problem is that there are too many unmovable pageblocks, so I'm a bit skeptical that simply preallocating some will help his workload. But we'll see...
In any case I wouldn't pursue a solution that requires user configuration, until as a last resort. Hopefully we can make the heuristics good enough so that's not necessary. Sorry for my mostly negative feedback to your series, I'm glad you pursuit this as well, and hope we'll eventually find a good solution :)
Vlastimil -- 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>