Re: + mm-page_alloc-free-pages-to-correct-buddy-list-after-pcp-lock-contention.patch added to mm-hotfixes-unstable branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 11, 2023 at 02:00:52PM -0700, Andrew Morton wrote:
> 
> The patch titled
>      Subject: mm: page_alloc: free pages to correct buddy list after PCP lock contention
> has been added to the -mm mm-hotfixes-unstable branch.  Its filename is
>      mm-page_alloc-free-pages-to-correct-buddy-list-after-pcp-lock-contention.patch
> 
> This patch will shortly appear at
>      https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-page_alloc-free-pages-to-correct-buddy-list-after-pcp-lock-contention.patch
> 
> This patch will later appear in the mm-hotfixes-unstable branch at
>     git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> 
> Before you just go and hit "reply", please:
>    a) Consider who else should be cc'ed
>    b) Prefer to cc a suitable mailing list as well
>    c) Ideally: find the original patch on the mailing list and do a
>       reply-to-all to that, adding suitable additional cc's
> 
> *** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
> 
> The -mm tree is included into linux-next via the mm-everything
> branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> and is updated there every 2-3 working days
> 
> ------------------------------------------------------
> From: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> Subject: mm: page_alloc: free pages to correct buddy list after PCP lock contention
> Date: Tue, 5 Sep 2023 10:09:22 +0100
> 
> Commit 4b23a68f9536 ("mm/page_alloc: protect PCP lists with a spinlock")
> returns pages to the buddy list on PCP lock contention. However, for
> migratetypes that are not MIGRATE_PCPTYPES, the migratetype may have
> been clobbered already for pages that are not being isolated. In
> practice, this means that CMA pages may be returned to the wrong
> buddy list. While this might be harmless in some cases as it is
> MIGRATE_MOVABLE, the pageblock could be reassigned in rmqueue_fallback
> and prevent a future CMA allocation. Lookup the PCP migratetype
> against unconditionally if the PCP lock is contended.
> 
> [lecopzer.chen@xxxxxxxxxxxx: CMA-specific fix]
> Link: https://lkml.kernel.org/r/20230905090922.zy7srh33rg5c3zao@xxxxxxxxxxxxxxxxxxx
> Fixes: 4b23a68f9536 ("mm/page_alloc: protect PCP lists with a spinlock")
> Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> Reported-by: Joe Liu <joe.liu@xxxxxxxxxxxx>
> Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

This patch is superseded by the following patch you picked up:
mm-page_alloc-fix-cma-and-highatomic-landing-on-the-wrong-buddy-list.patch

If you drop this patch here, you can also drop the fixlet to
free_unref_page(). The branch in there should look like this:

	if (pcp)
		free_unref_page_commit(..., pcpmigratetype, ...);
	else
		free_one_page(..., migratetype, ...);



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux