Message ID | 20240801180456.25927-1-kaiyang2@cs.cmu.edu (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: consider CMA pages in watermark check for NUMA balancing target node | expand |
On Thu, Aug 01, 2024 at 06:04:56PM +0000, kaiyang2@cs.cmu.edu wrote: > From: Kaiyang Zhao <kaiyang2@cs.cmu.edu> > > Currently in migrate_balanced_pgdat(), ALLOC_CMA flag is not passed > when checking watermark on the migration target node. This does not > match the gfp in alloc_misplaced_dst_folio() which allows allocation > from CMA. > > This causes promotion failures when there are a lot of available CMA > memory in the system. > > Therefore, we change the alloc_flags passed to zone_watermark_ok() in > migrate_balanced_pgdat(). > > Signed-off-by: Kaiyang Zhao <kaiyang2@cs.cmu.edu> Acked-by: Johannes Weiner <hannes@cmpxchg.org>
On 2024/8/2 02:04, kaiyang2@cs.cmu.edu wrote: > From: Kaiyang Zhao <kaiyang2@cs.cmu.edu> > > Currently in migrate_balanced_pgdat(), ALLOC_CMA flag is not passed > when checking watermark on the migration target node. This does not > match the gfp in alloc_misplaced_dst_folio() which allows allocation > from CMA. > > This causes promotion failures when there are a lot of available CMA > memory in the system. > > Therefore, we change the alloc_flags passed to zone_watermark_ok() in > migrate_balanced_pgdat(). > > Signed-off-by: Kaiyang Zhao <kaiyang2@cs.cmu.edu> LGTM. Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> > --- > mm/migrate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 8578a930cad1..aa482c954cb0 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -2526,7 +2526,7 @@ static bool migrate_balanced_pgdat(struct pglist_data *pgdat, > if (!zone_watermark_ok(zone, 0, > high_wmark_pages(zone) + > nr_migrate_pages, > - ZONE_MOVABLE, 0)) > + ZONE_MOVABLE, ALLOC_CMA)) > continue; > return true; > }
diff --git a/mm/migrate.c b/mm/migrate.c index 8578a930cad1..aa482c954cb0 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2526,7 +2526,7 @@ static bool migrate_balanced_pgdat(struct pglist_data *pgdat, if (!zone_watermark_ok(zone, 0, high_wmark_pages(zone) + nr_migrate_pages, - ZONE_MOVABLE, 0)) + ZONE_MOVABLE, ALLOC_CMA)) continue; return true; }