On Fri, Jun 17, 2016 at 03:38:49PM +0800, Chen Feng wrote:
Hi Kim & feng,
Thanks for the share. In our platform also has the same use case.
We only let the alloc with GFP_HIGHUSER_MOVABLE in memory.c to use cma memory.
If we add zone_cma, It seems can resolve the cma migrate issue.
But when free_hot_cold_page, we need let the cma page goto system directly not the pcp.
It can be fail while cma_alloc and cma_release. If we alloc the whole cma pages which
declared before.
Hmm...I'm not sure I understand your explanation. So, if I miss
something, please let me know. We calls drain_all_pages() when
isolating pageblock and alloc_contig_range() also has one
drain_all_pages() calls to drain pcp pages. And, after pageblock isolation,
freed pages belonging to MIGRATE_ISOLATE pageblock will go to the
buddy directly so there would be no problem you mentioned. Isn't it?
Thanks.