From: Baolin Wang <baolin.wang@linux.alibaba.com>
To: yangge1116@126.com, akpm@linux-foundation.org
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, liuzixing@hygon.cn
Subject: Re: [PATCH] mm/gup: don't check page lru flag before draining it
Date: Tue, 4 Jun 2024 16:56:08 +0800 [thread overview]
Message-ID: <89bd659b-a85f-48f2-98ce-f7522cdb95da@linux.alibaba.com> (raw)
In-Reply-To: <1717488551-18053-1-git-send-email-yangge1116@126.com>
On 2024/6/4 16:09, yangge1116@126.com wrote:
> From: yangge <yangge1116@126.com>
>
> If a page is added in pagevec, its ref count increases one, remove
> the page from pagevec decreases one. Page migration requires the
> page is not referrened by others except page mapping. Before
> migrating a page, we should try to drain the page from pagevec in
> case the page is in it, however, folio_test_lru() is not sufficient
> to tell whether the page is in pagevec or not, if the page is in
> pagevec, the migration will fail.
>
> Remove the condition and drain lru once to ensure the page is not
> referrenced by pagevec.
This looks sane to me and seems a simple way to fix.
> Signed-off-by: yangge <yangge1116@126.com>
> ---
> mm/gup.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/gup.c b/mm/gup.c
> index ca0f5ce..890dcbc 100644
> --- a/mm/gup.c
> +++ b/mm/gup.c
> @@ -2411,7 +2411,7 @@ static unsigned long collect_longterm_unpinnable_pages(
> continue;
> }
>
> - if (!folio_test_lru(folio) && drain_allow) {
> + if (drain_allow) {
> lru_add_drain_all();
> drain_allow = false;
> }
You should rebase your code on the latest mm-unstable branch, as
collect_longterm_unpinnable_pages() in the upstream has been replaced
with collect_longterm_unpinnable_folios().
next prev parent reply other threads:[~2024-06-04 8:56 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-04 8:09 [PATCH] mm/gup: don't check page lru flag before draining it yangge1116
2024-06-04 8:56 ` Baolin Wang [this message]
2024-06-04 9:18 ` yangge1116
-- strict thread matches above, loose matches on Subject: below --
2024-06-04 10:48 yangge1116
2024-06-04 13:47 ` David Hildenbrand
2024-06-05 1:18 ` yangge1116
2024-06-05 9:41 ` David Hildenbrand
2024-06-05 9:53 ` David Hildenbrand
2024-06-05 11:37 ` Baolin Wang
2024-06-05 11:41 ` David Hildenbrand
2024-06-05 12:20 ` David Hildenbrand
2024-06-06 1:57 ` Baolin Wang
2024-06-06 7:56 ` David Hildenbrand
2024-06-08 4:38 ` yangge1116
2024-06-08 15:15 ` Matthew Wilcox
2024-06-08 16:03 ` David Hildenbrand
2024-06-11 11:20 ` yangge1116
2024-06-12 7:32 ` David Hildenbrand
2024-06-15 11:44 ` yangge1116
2024-06-17 9:50 ` yangge1116
2024-06-17 9:52 ` David Hildenbrand
2024-06-17 11:22 ` yangge1116
2024-06-06 1:35 ` yangge1116
2024-06-06 7:39 ` David Hildenbrand
2024-06-06 8:50 ` yangge1116
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=89bd659b-a85f-48f2-98ce-f7522cdb95da@linux.alibaba.com \
--to=baolin.wang@linux.alibaba.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liuzixing@hygon.cn \
--cc=yangge1116@126.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.