]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mm: compaction: simplify the code in __compact_finished
authorMiaohe Lin <linmiaohe@huawei.com>
Fri, 29 Apr 2022 06:16:19 +0000 (23:16 -0700)
committerakpm <akpm@linux-foundation.org>
Fri, 29 Apr 2022 06:16:19 +0000 (23:16 -0700)
Since commit efe771c7603b ("mm, compaction: always finish scanning of a
full pageblock"), compaction will always finish scanning a pageblock.  And
migrate_pfn is assured to align with pageblock_nr_pages when we reach
here.  So we will always return COMPACT_SUCCESS if a suitable fallback is
found due to the below IS_ALIGNED check of migrate_pfn.  Simplify the code
to make this clear and improve the readability.  No functional change
intended.

Link: https://lkml.kernel.org/r/20220418141253.24298-12-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Charan Teja Kalla <charante@codeaurora.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: Pintu Kumar <pintu@codeaurora.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/compaction.c

index 334a573485fe0d2fa521e85ce1502511510751c9..609a76d7e051753474b4444bdf47980497e34468 100644 (file)
@@ -2134,29 +2134,16 @@ static enum compact_result __compact_finished(struct compact_control *cc)
                 * other migratetype buddy lists.
                 */
                if (find_suitable_fallback(area, order, migratetype,
-                                               true, &can_steal) != -1) {
-
-                       /* movable pages are OK in any pageblock */
-                       if (migratetype == MIGRATE_MOVABLE)
-                               return COMPACT_SUCCESS;
-
+                                               true, &can_steal) != -1)
                        /*
-                        * We are stealing for a non-movable allocation. Make
-                        * sure we finish compacting the current pageblock
-                        * first so it is as free as possible and we won't
-                        * have to steal another one soon. This only applies
-                        * to sync compaction, as async compaction operates
-                        * on pageblocks of the same migratetype.
+                        * Movable pages are OK in any pageblock. If we are
+                        * stealing for a non-movable allocation, make sure
+                        * we finish compacting the current pageblock first
+                        * (which is assured by the above migrate_pfn align
+                        * check) so it is as free as possible and we won't
+                        * have to steal another one soon.
                         */
-                       if (cc->mode == MIGRATE_ASYNC ||
-                                       IS_ALIGNED(cc->migrate_pfn,
-                                                       pageblock_nr_pages)) {
-                               return COMPACT_SUCCESS;
-                       }
-
-                       ret = COMPACT_CONTINUE;
-                       break;
-               }
+                       return COMPACT_SUCCESS;
        }
 
 out: