diff --git a/mm/khugepaged.c b/mm/khugepaged.c index c15da1ea7e63..eb32d0707c80 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1879,8 +1879,16 @@ static void set_recommended_min_free_kbytes(void) int nr_zones = 0; unsigned long recommended_min; - for_each_populated_zone(zone) + for_each_populated_zone(zone) { + /* + * We don't need to worry about fragmentation of + * ZONE_MOVABLE since it only has movable pages. + */ + if (zone_idx(zone) > gfp_zone(GFP_USER)) + continue; + nr_zones++; + } /* Ensure 2 pageblocks are free to assist fragmentation avoidance */ recommended_min = pageblock_nr_pages * nr_zones * 2;