mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Qi Zheng <zhengqi.arch@bytedance.com>,
	LEROY Christophe <christophe.leroy2@cs-soprasteria.com>
Cc: "hughd@google.com" <hughd@google.com>,
	"willy@infradead.org" <willy@infradead.org>,
	"muchun.song@linux.dev" <muchun.song@linux.dev>,
	"vbabka@kernel.org" <vbabka@kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"rppt@kernel.org" <rppt@kernel.org>,
	"vishal.moola@gmail.com" <vishal.moola@gmail.com>,
	"peterx@redhat.com" <peterx@redhat.com>,
	"ryan.roberts@arm.com" <ryan.roberts@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 06/14] mm: handle_pte_fault() use pte_offset_map_maywrite_nolock()
Date: Wed, 21 Aug 2024 11:41:57 +0200	[thread overview]
Message-ID: <4b867535-8481-4fa1-bed1-ad25a76682f0@redhat.com> (raw)
In-Reply-To: <b4bf605a-d31a-40ad-8cee-fe505e45dc64@bytedance.com>

On 21.08.24 11:24, Qi Zheng wrote:
> 
> 
> On 2024/8/21 17:17, LEROY Christophe wrote:
>>
>>
>> Le 21/08/2024 à 10:18, Qi Zheng a écrit :
>>> In handle_pte_fault(), we may modify the vmf->pte after acquiring the
>>> vmf->ptl, so convert it to using pte_offset_map_maywrite_nolock(). But
>>> since we already do the pte_same() check, so there is no need to get
>>> pmdval to do pmd_same() check, just pass NULL to pmdvalp parameter.
>>>
>>> Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
>>> ---
>>>     mm/memory.c | 9 +++++++--
>>>     1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/mm/memory.c b/mm/memory.c
>>> index 93c0c25433d02..d3378e98faf13 100644
>>> --- a/mm/memory.c
>>> +++ b/mm/memory.c
>>> @@ -5504,9 +5504,14 @@ static vm_fault_t handle_pte_fault(struct vm_fault *vmf)
>>>     		 * pmd by anon khugepaged, since that takes mmap_lock in write
>>>     		 * mode; but shmem or file collapse to THP could still morph
>>>     		 * it into a huge pmd: just retry later if so.
>>> +		 *
>>> +		 * Use the maywrite version to indicate that vmf->pte will be
>>> +		 * modified, but since we will use pte_same() to detect the
>>> +		 * change of the pte entry, there is no need to get pmdval.
>>>     		 */
>>> -		vmf->pte = pte_offset_map_nolock(vmf->vma->vm_mm, vmf->pmd,
>>> -						 vmf->address, &vmf->ptl);
>>> +		vmf->pte = pte_offset_map_maywrite_nolock(vmf->vma->vm_mm,
>>> +							  vmf->pmd, vmf->address,
>>> +							  NULL, &vmf->ptl);

I think we discussed that passing NULL should be forbidden for that 
function.

>>
>> This might be the demonstration that the function name is becoming too long.
>>
>> Can you find shorter names ?
> 
> Maybe use abbreviations?
> 
> pte_offset_map_ro_nolock()
> pte_offset_map_rw_nolock()

At least the "ro" is better, but "rw" does not express the "maywrite" -- 
because without taking the lock we are not allowed to write. But maybe 
"rw" is good enough for that if we document it properly.

And you can use up to 100 characters, if it helps readability.

-- 
Cheers,

David / dhildenb


  reply	other threads:[~2024-08-21  9:42 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-21  8:18 [PATCH 00/14] introduce pte_offset_map_{readonly|maywrite}_nolock() Qi Zheng
2024-08-21  8:18 ` [PATCH 01/14] mm: pgtable: " Qi Zheng
2024-08-21  8:18 ` [PATCH 02/14] arm: adjust_pte() use pte_offset_map_maywrite_nolock() Qi Zheng
2024-08-21  8:18 ` [PATCH 03/14] powerpc: assert_pte_locked() use pte_offset_map_readonly_nolock() Qi Zheng
2024-08-21  8:18 ` [PATCH 04/14] mm: filemap: filemap_fault_recheck_pte_none() " Qi Zheng
2024-08-21  8:18 ` [PATCH 05/14] mm: khugepaged: __collapse_huge_page_swapin() " Qi Zheng
2024-08-21  8:18 ` [PATCH 06/14] mm: handle_pte_fault() use pte_offset_map_maywrite_nolock() Qi Zheng
2024-08-21  9:17   ` LEROY Christophe
2024-08-21  9:24     ` Qi Zheng
2024-08-21  9:41       ` David Hildenbrand [this message]
2024-08-21  9:51         ` Qi Zheng
2024-08-21  9:53           ` David Hildenbrand
2024-08-21 10:03             ` Qi Zheng
2024-08-22  9:29               ` David Hildenbrand
2024-08-22 12:17                 ` Qi Zheng
2024-08-22 12:19                   ` David Hildenbrand
2024-08-22 12:22                     ` Qi Zheng
2024-08-21  8:18 ` [PATCH 07/14] mm: khugepaged: collapse_pte_mapped_thp() " Qi Zheng
2024-08-21  8:18 ` [PATCH 08/14] mm: copy_pte_range() " Qi Zheng
2024-08-22  9:26   ` kernel test robot
2024-08-21  8:18 ` [PATCH 09/14] mm: mremap: move_ptes() " Qi Zheng
2024-08-21  8:18 ` [PATCH 10/14] mm: page_vma_mapped_walk: map_pte() " Qi Zheng
2024-08-21  8:18 ` [PATCH 11/14] mm: userfaultfd: move_pages_pte() " Qi Zheng
2024-08-21  8:18 ` [PATCH 12/14] mm: multi-gen LRU: walk_pte_range() " Qi Zheng
2024-08-21  8:18 ` [PATCH 13/14] mm: pgtable: remove pte_offset_map_nolock() Qi Zheng
2024-08-21  8:18 ` [PATCH 14/14] mm: khugepaged: retract_page_tables() use pte_offset_map_maywrite_nolock() Qi Zheng

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=4b867535-8481-4fa1-bed1-ad25a76682f0@redhat.com \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=christophe.leroy2@cs-soprasteria.com \
    --cc=hughd@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=muchun.song@linux.dev \
    --cc=peterx@redhat.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=vbabka@kernel.org \
    --cc=vishal.moola@gmail.com \
    --cc=willy@infradead.org \
    --cc=zhengqi.arch@bytedance.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

all inboxes | Powered by JetHome®