From: David Hildenbrand <david@redhat.com>
To: Kefeng Wang <wangkefeng.wang@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
linux-mm@kvack.org
Cc: Zi Yan <ziy@nvidia.com>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
Barry Song <baohua@kernel.org>, Lance Yang <lance.yang@linux.dev>,
Liam.Howlett@oracle.com
Subject: Re: [PATCH 2/3] mm: mprotect: avoid unnecessary struct page accessing if pte_protnone()
Date: Tue, 14 Oct 2025 10:56:21 +0200 [thread overview]
Message-ID: <9282d8f3-4824-4109-9e9f-3b75284d2e04@redhat.com> (raw)
In-Reply-To: <364ceb89-6327-498a-9582-bb1fbe2bd98e@huawei.com>
On 14.10.25 10:02, Kefeng Wang wrote:
>
>
> On 2025/10/14 15:16, David Hildenbrand wrote:
>>>>
>>>>> + if (prot_numa && pte_protnone(oldpte))
>>>>> + continue;
>>>>> +
>>>>> page = vm_normal_page(vma, addr, oldpte);
>>>>> if (page)
>>>>> folio = page_folio(page);
>>>>
>>>> I could have sworn we discussed that while fixing the prot_numa_skip()
>>>> fallout.
>>>
>>> I'm not follow the thread, but we found that vm_normal_page does
>>> introduce regression for mprotect benchmark(libMicro) with
>>> this vm_normal_page().
>>>
>>
>> Right, I raised it here:
>>
>> https://lkml.kernel.org/r/aa496798-5ac6-4cb0-bdc2-91515172e935@redhat.com
>
> Thanks for the links, let's fix it now ;)
>
>>
>> I questioned how relevant it would be in practice.
>>
>> I'm surprised it shows up in a mprotect() benchmark: mprotect() itself
>> would never be able to set MM_CP_PROT_NUMA, so the code wold not
>> actually be executed.
>>
>
> Sorry, my description is very clear, the regression is not about prot
> numa, I mean the vm_normal_page does introduce some regression when
> mprotect benchmark in libMicro, before cac1db8c3aad ("mm: optimize
> mprotect() by PTE batching"), we only call vm_normal_page in
> can_change_pte_writable(), but now it is unconditional called and
> 10% regression in some libMicro mprotect benchmark.
Right, I think we discussed that as well at some point, and possible
ways to optimize if we ever have to. We don't have to optimize for each
and every microbenchmark that heavily, though.
--
Cheers
David / dhildenb
next prev parent reply other threads:[~2025-10-14 8:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-13 12:15 [PATCH 0/3] mm: some optimizations for prot numa Kefeng Wang
2025-10-13 12:15 ` [PATCH 1/3] mm: mprotect: always skip dma pinned folio in prot_numa_skip() Kefeng Wang
2025-10-13 15:12 ` Sidhartha Kumar
2025-10-13 15:49 ` David Hildenbrand
2025-10-14 1:42 ` Lance Yang
2025-10-13 12:15 ` [PATCH 2/3] mm: mprotect: avoid unnecessary struct page accessing if pte_protnone() Kefeng Wang
2025-10-13 15:22 ` Sidhartha Kumar
2025-10-13 15:53 ` David Hildenbrand
2025-10-14 6:06 ` Kefeng Wang
2025-10-14 7:16 ` David Hildenbrand
2025-10-14 8:02 ` Kefeng Wang
2025-10-14 8:56 ` David Hildenbrand [this message]
2025-10-14 9:19 ` Kefeng Wang
2025-10-13 12:15 ` [PATCH 3/3] mm: huge_memory: use prot_numa_skip() for pmd folio Kefeng Wang
2025-10-13 15:41 ` Sidhartha Kumar
2025-10-13 15:58 ` David Hildenbrand
2025-10-14 6:10 ` Kefeng Wang
2025-10-14 7:24 ` 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=9282d8f3-4824-4109-9e9f-3b75284d2e04@redhat.com \
--to=david@redhat.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=dev.jain@arm.com \
--cc=lance.yang@linux.dev \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=ryan.roberts@arm.com \
--cc=wangkefeng.wang@huawei.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox