[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240619180149.c043cce3f1f84db02fe24f5f@linux-foundation.org>
Date: Wed, 19 Jun 2024 18:01:49 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: yangge1116@....com
Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org,
stable@...r.kernel.org, 21cnbao@...il.com, baolin.wang@...ux.alibaba.com,
mgorman@...hsingularity.net, liuzixing@...on.cn
Subject: Re: [PATCH] mm/page_alloc: add one PCP list for THP
On Wed, 19 Jun 2024 20:54:32 +0800 yangge1116@....com wrote:
> From: yangge <yangge1116@....com>
>
> Since commit 5d0a661d808f ("mm/page_alloc: use only one PCP list for
> THP-sized allocations") no longer differentiates the migration type
> of pages in THP-sized PCP list, it's possible that non-movable
> allocation requests may get a CMA page from the list, in some cases,
> it's not acceptable.
>
> If a large number of CMA memory are configured in system (for
> example, the CMA memory accounts for 50% of the system memory),
> starting a virtual machine with device passthrough will get stuck.
> During starting the virtual machine, it will call
> pin_user_pages_remote(..., FOLL_LONGTERM, ...) to pin memory. Normally
> if a page is present and in CMA area, pin_user_pages_remote() will
> migrate the page from CMA area to non-CMA area because of
> FOLL_LONGTERM flag. But if non-movable allocation requests return
> CMA memory, migrate_longterm_unpinnable_pages() will migrate a CMA
> page to another CMA page, which will fail to pass the check in
> check_and_migrate_movable_pages() and cause migration endless.
> Call trace:
Thanks. I'll add this for testing - please send us a new version which
addresses Barry's comments.
Powered by blists - more mailing lists