]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm: cma: use pageblock_order as the single alignment
authorZi Yan <ziy@nvidia.com>
Fri, 13 May 2022 03:22:58 +0000 (20:22 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 13 May 2022 14:20:13 +0000 (07:20 -0700)
Now alloc_contig_range() works at pageblock granularity.  Change CMA
allocation, which uses alloc_contig_range(), to use pageblock_nr_pages
alignment.

Link: https://lkml.kernel.org/r/20220425143118.2850746-6-zi.yan@sent.com
Signed-off-by: Zi Yan <ziy@nvidia.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: David Hildenbrand <david@redhat.com>
Cc: Eric Ren <renzhengeek@gmail.com>
Cc: kernel test robot <lkp@intel.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/cma.h
include/linux/mmzone.h
mm/page_alloc.c

index a6f637342740b921412eb183b4416fa72f128a9f..63873b93deaa62634da9ed3fb19543ba0131abdf 100644 (file)
 #define CMA_MAX_NAME 64
 
 /*
- * TODO: once the buddy -- especially pageblock merging and alloc_contig_range()
+ *  the buddy -- especially pageblock merging and alloc_contig_range()
  * -- can deal with only some pageblocks of a higher-order page being
  *  MIGRATE_CMA, we can use pageblock_nr_pages.
  */
-#define CMA_MIN_ALIGNMENT_PAGES MAX_ORDER_NR_PAGES
+#define CMA_MIN_ALIGNMENT_PAGES pageblock_nr_pages
 #define CMA_MIN_ALIGNMENT_BYTES (PAGE_SIZE * CMA_MIN_ALIGNMENT_PAGES)
 
 struct cma;
index 46ffab808f037bfbd26a1fccf28cf06cd48953f2..aab70355d64f3f15cd8be7be8016b26239ac3992 100644 (file)
@@ -54,10 +54,7 @@ enum migratetype {
         *
         * The way to use it is to change migratetype of a range of
         * pageblocks to MIGRATE_CMA which can be done by
-        * __free_pageblock_cma() function.  What is important though
-        * is that a range of pageblocks must be aligned to
-        * MAX_ORDER_NR_PAGES should biggest page be bigger than
-        * a single pageblock.
+        * __free_pageblock_cma() function.
         */
        MIGRATE_CMA,
 #endif
index 3d7de8a96143ee0b3b64e55c8a1c978c2c550f2d..732e01e9d0e0cdd0b0ccc9fc431699b2168d068c 100644 (file)
@@ -9046,8 +9046,8 @@ int __alloc_contig_migrate_range(struct compact_control *cc,
  *                     be either of the two.
  * @gfp_mask:  GFP mask to use during compaction
  *
- * The PFN range does not have to be pageblock or MAX_ORDER_NR_PAGES
- * aligned.  The PFN range must belong to a single zone.
+ * The PFN range does not have to be pageblock aligned. The PFN range must
+ * belong to a single zone.
  *
  * The first thing this routine does is attempt to MIGRATE_ISOLATE all
  * pageblocks in the range.  Once isolated, the pageblocks should not