From: "David Hildenbrand (Arm)" <david@kernel.org>
To: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>, Hui Zhu <hui.zhu@linux.dev>
Cc: Andrew Morton <akpm@linux-foundation.org>,
"Liam R. Howlett" <liam@infradead.org>,
Vlastimil Babka <vbabka@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Michal Hocko <mhocko@suse.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Hui Zhu <zhuhui@kylinos.cn>
Subject: Re: [PATCH v3] mm/memory: use pmdp_get_lockless() for the pmd read in do_fault_around()
Date: Tue, 3 Nov 2026 17:15:27 +0100 [thread overview]
Message-ID: <61f8a583-5ea5-4fcc-bf30-ea9cafe94d65@kernel.org> (raw)
In-Reply-To: <aumfvNWiemmuyooP@gremlin>
>> +++ b/mm/memory.c
>> @@ -6017,7 +6017,8 @@ static vm_fault_t do_fault_around(struct vm_fault *vmf)
>> to_pte = min3(from_pte + nr_pages, (pgoff_t)PTRS_PER_PTE,
>> pte_off + vma_pages(vmf->vma) - vma_off) - 1;
>>
>> - if (pmd_none(*vmf->pmd)) {
>
> This pattern is definitely bad I think, we have it in many other places so
> should probably convert those to pmdp_get() at least?
Usama is working on this as part of separating HW and SW PMDs (he only sent out
the PTE part so far).
>
>> + /* pmd_install() rechecks pmd_none() under the pmd lock. */
>> + if (pmd_none(pmdp_get_lockless(vmf->pmd))) {
>
> It definitely seems right to use at least pmdp_get() here, but I wonder
> about the need for pmdp_get_lockless() here.
Whenever we're not holding the page table lock we should be using
pmdp_get_lockless().
Even if they are semantically equivalent for most cases, it serves as a good
reminder that there are no guarantees.
And that you have to look again under PT lock.
>
> pmd_none() only checks the lower word, so a torn 64-bit word on 32-bit
> (i.e. the PAE style cases we are worried about) makes no difference:
>
> From x86 pmd_none():
>
> /* Only check low word on 32-bit platforms, since it might be
> out of sync with upper half. */
>
> And anyway I guess there is no valid PMD in such systems that would have
> the lower word cleared and upper word not cleared.
>
I don't understand the discussion really.
No PT lock -> use the lockless variant.
Until we can remove the lockless variant.
Are we consistent with that? Likely not.
But that's all independent of this patch here.
--
Cheers,
David
next prev parent reply other threads:[~2026-11-03 16:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 1:47 [PATCH v3] mm/memory: use pmdp_get_lockless() for the pmd read in do_fault_around() Hui Zhu
2026-11-03 8:11 ` David Hildenbrand (Arm)
2026-11-03 9:50 ` Lorenzo Stoakes (ARM)
2026-11-03 16:15 ` David Hildenbrand (Arm) [this message]
2026-11-03 18:24 ` Lorenzo Stoakes (ARM)
2026-11-03 19:51 ` David Hildenbrand (Arm)
2026-11-03 20:27 ` Lorenzo Stoakes (ARM)
2026-11-04 9:24 ` David Hildenbrand (Arm)
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=61f8a583-5ea5-4fcc-bf30-ea9cafe94d65@kernel.org \
--to=david@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hui.zhu@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=rppt@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=zhuhui@kylinos.cn \
/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.