From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>,
Nhat Pham <nphamcs@gmail.com>, Yang Shi <shy828301@gmail.com>,
Zi Yan <ziy@nvidia.com>, Barry Song <baohua@kernel.org>,
David Hildenbrand <david@redhat.com>,
Matthew Wilcox <willy@infradead.org>,
<linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>
Subject: Re: [PATCH hotfix] mm: fix crashes from deferred split racing folio migration
Date: Sun, 7 Jul 2024 11:07:38 +0800 [thread overview]
Message-ID: <55610a6f-dd13-4636-b13c-2d9269782687@huawei.com> (raw)
In-Reply-To: <20240706191122.134c5ae35e86c68d52bf11a9@linux-foundation.org>
On 2024/7/7 10:11, Andrew Morton wrote:
> On Sat, 6 Jul 2024 14:29:00 -0700 (PDT) Hugh Dickins <hughd@google.com> wrote:
>
>>
>> What you show above is exactly what I had when I was originally testing
>> over the top of mm-everything (well, not quite exactly, I don't think I
>> bothered with the data_race()). But I grew to feel that probably everyone
>> else would be happier with less of those internals _deferred_list and
>> __folio_undo_large_rmappable() spread about.
Maybe some helper to check whether or not we should unqueue the
defferred_list, but it out of scope in this patch, and maybe not worth it
>>
>> There are many ways to play it. I had also considered doing it Zi Yan's
>> way, freezing always in the !mapping case as well as in the mapping case:
>> what overhead it adds would probably get lost amidst all the other overhead
>> of page migration. It will not be surprising if changes come later requiring
>> us always to freeze in the anon !swapcache case too, it always seemed a bit
>> surprising not to need freezing there. But for now I decided it's best to
>> keep the freezing to the case where it's known to be needed (but without
>> getting into __s).
>>
>> Many ways to play it, and I've no objection if someone then changes it
>> around later; but we've no need to depart from what Andrew already has.
>>
>> Except, he did ask one of us to send along the -fix removing the unnecessary
>> checks before its second folio_undo_large_rmappable() once your refactor
>> patch goes in: here it is below.
OK, let's keep it simple, thank your for pushing it out.
>
> Grabbed, thanks.
>
>> [I guess this is the wrong place to say so, but folio_undo_large_rmappable()
>> is a dreadful name: it completely obscures what the function actually does,
>> and gives the false impression that the folio would be !large_rmappable
>> afterwards. I hope that one day the name gets changed to something like
>> folio_unqueue_deferred_split() or folio_cancel_deferred_split().]
>
> Naming is important, but so also is commentary.
> folio_undo_large_rmappable() lacks any.
>
>> [PATCH] mm: refactor folio_undo_large_rmappable() fix
>>
>> Now that folio_undo_large_rmappable() is an inline function checking
>> order and large_rmappable for itself (and __folio_undo_large_rmappable()
>> is now declared even when CONFIG_TRANASPARENT_HUGEPAGE is off) there is
>> no need for folio_migrate_mapping() to check large and large_rmappable
>> first (in the mapping case when it has had to freeze anyway).
>>
>> ...
>>
>> For folding in to mm-unstable's "mm: refactor folio_undo_large_rmappable()",
>> unless I'm too late and it's already mm-stable (no problem, just a cleanup).
>
> Missed the mm-stable mergification by >that much<. I'll queue it
> separately, thanks.
next prev parent reply other threads:[~2024-07-07 3:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 7:40 [PATCH hotfix] mm: fix crashes from deferred split racing folio migration Hugh Dickins
2024-07-02 9:25 ` Baolin Wang
2024-07-02 16:15 ` Hugh Dickins
2024-07-03 1:51 ` Baolin Wang
2024-07-03 2:13 ` Andrew Morton
2024-07-03 14:30 ` Zi Yan
2024-07-03 16:21 ` David Hildenbrand
2024-07-03 16:22 ` Zi Yan
2024-07-04 2:35 ` Andrew Morton
2024-07-04 3:21 ` Hugh Dickins
2024-07-04 3:28 ` Andrew Morton
2024-07-04 6:12 ` Kefeng Wang
2024-07-06 21:29 ` Hugh Dickins
2024-07-07 2:11 ` Andrew Morton
2024-07-07 3:07 ` Kefeng Wang [this message]
2024-07-07 8:28 ` David Hildenbrand
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=55610a6f-dd13-4636-b13c-2d9269782687@huawei.com \
--to=wangkefeng.wang@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=shy828301@gmail.com \
--cc=willy@infradead.org \
--cc=ziy@nvidia.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.