[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220914154225.e3f8ad4b076236c75705b0f9@linux-foundation.org>
Date: Wed, 14 Sep 2022 15:42:25 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Zi Yan <ziy@...dia.com>
Cc: Zi Yan <zi.yan@...t.com>, Doug Berger <opendmb@...il.com>,
linux-mm@...ck.org, David Hildenbrand <david@...hat.com>,
Mike Kravetz <mike.kravetz@...cle.com>,
linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH] mm/page_isolation: fix isolate_single_pageblock()
isolation behavior
On Tue, 13 Sep 2022 22:39:13 -0400 Zi Yan <zi.yan@...t.com> wrote:
> set_migratetype_isolate() does not allow isolating MIGRATE_CMA pageblocks
> unless it is used for CMA allocation. isolate_single_pageblock() did not
> have the same behavior when it is used together with
> set_migratetype_isolate() in start_isolate_page_range(). This allows
> alloc_contig_range() with migratetype other than MIGRATE_CMA, like
> MIGRATE_MOVABLE (used by alloc_contig_pages()), to isolate first and last
> pageblock but fail the rest. The failure leads to changing migratetype
> of the first and last pageblock to MIGRATE_MOVABLE from MIGRATE_CMA,
> corrupting the CMA region. This can happen during gigantic page
> allocations.
How does this bug manifest itself as far as the user is concerned?
> Fix it by passing migratetype into isolate_single_pageblock(), so that
> set_migratetype_isolate() used by isolate_single_pageblock() will prevent
> the isolation happening.
Powered by blists - more mailing lists