diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2024-03-18 09:47:52 -0700 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2024-03-18 09:47:52 -0700 |
commit | 5e28061128646febc71c0942609619e29f41ff00 (patch) | |
tree | 9fc836e739a4f1f312a9891c6f6a675cd325959f /mm/vmscan.c | |
parent | 270700dd06ca41a4779c19eb46608f076bb7d40e (diff) | |
parent | e8f897f4afef0031fe618a8e94127a0934896aba (diff) |
Merge branch 'master' into mm-stable
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 741f16929e72..3ef654addd44 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -5759,7 +5759,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) /* Use reclaim/compaction for costly allocs or under memory pressure */ static bool in_reclaim_compaction(struct scan_control *sc) { - if (IS_ENABLED(CONFIG_COMPACTION) && sc->order && + if (gfp_compaction_allowed(sc->gfp_mask) && sc->order && (sc->order > PAGE_ALLOC_COSTLY_ORDER || sc->priority < DEF_PRIORITY - 2)) return true; @@ -6006,6 +6006,9 @@ static inline bool compaction_ready(struct zone *zone, struct scan_control *sc) { unsigned long watermark; + if (!gfp_compaction_allowed(sc->gfp_mask)) + return false; + /* Allocation can already succeed, nothing to do */ if (zone_watermark_ok(zone, sc->order, min_wmark_pages(zone), sc->reclaim_idx, 0)) |