From: Wei Yang <richard.weiyang@gmail.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Wei Yang <richard.weiyang@gmail.com>,
akpm@linux-foundation.org, vbabka@suse.cz, jannh@google.com,
linux-mm@kvack.org
Subject: Re: [PATCH] mm/vma: the pgoff is correct if can_merge_right
Date: Thu, 24 Oct 2024 09:10:12 +0000 [thread overview]
Message-ID: <20241024091012.52f2pugeaxd4xrul@master> (raw)
In-Reply-To: <eb706dfd-9a08-4e64-ad34-f0191ea414e6@lucifer.local>
On Thu, Oct 24, 2024 at 10:03:34AM +0100, Lorenzo Stoakes wrote:
>On Thu, Oct 24, 2024 at 08:42:22AM +0000, Wei Yang wrote:
>> can_merge_right implies can_vma_merge_right() has checked the pgoff.
>>
>> Don't need to assign it again.
>
>Would prefer a bigger commit message something like:
>
>By this point can_vma_merge_right() must have returned true, which implies
>can_vma_merge_before() also returned true, which already asserts that the
>pgoff is as expected for a merge with the following VMA, thus this
>assignment is redundant.
>
Will change to this in next version.
>>
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>
>Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
>
>> CC: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
>> ---
>> mm/vma.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/mm/vma.c b/mm/vma.c
>> index 4737afcb064c..fb4f1863f88e 100644
>> --- a/mm/vma.c
>> +++ b/mm/vma.c
>> @@ -915,7 +915,6 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
>> unsigned long start = vmg->start;
>> unsigned long end = vmg->end;
>> pgoff_t pgoff = vmg->pgoff;
>> - pgoff_t pglen = PHYS_PFN(end - start);
>> bool can_merge_left, can_merge_right;
>>
>> mmap_assert_write_locked(vmg->mm);
>> @@ -936,7 +935,6 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
>> if (can_merge_right) {
>> vmg->end = next->vm_end;
>> vmg->vma = next;
>> - vmg->pgoff = next->vm_pgoff - pglen;
>> }
>>
>> /* If we can merge with the previous VMA, adjust vmg accordingly. */
>> --
>> 2.34.1
>>
>>
>
>Thanks, nice spot!
>
>For the purposes of explaining it on-list this is because:
>
>static bool can_vma_merge_right(struct vma_merge_struct *vmg,
> bool can_merge_left)
>{
> if (!vmg->next || vmg->end != vmg->next->vm_start ||
> !can_vma_merge_before(vmg))
> return false;
> ...
>}
>
>And:
>
>static bool can_vma_merge_before(struct vma_merge_struct *vmg)
>{
> pgoff_t pglen = PHYS_PFN(vmg->end - vmg->start);
>...
> if (vmg->next->vm_pgoff == vmg->pgoff + pglen)
> return true;
>...
>}
>
>Which implies vmg->pgoff == vmg->next->vm_pgoff - pglen.
>
>None of these values are changed between the check and prior assignment, so
>this was an entirely redundant assignment.
Do you suggest me to add this in change log?
--
Wei Yang
Help you, Help me
next prev parent reply other threads:[~2024-10-24 9:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-24 8:42 [PATCH] mm/vma: the pgoff is correct if can_merge_right Wei Yang
2024-10-24 9:03 ` Lorenzo Stoakes
2024-10-24 9:10 ` Wei Yang [this message]
2024-10-24 9:18 ` Lorenzo Stoakes
2024-10-24 9:22 ` Wei Yang
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=20241024091012.52f2pugeaxd4xrul@master \
--to=richard.weiyang@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=jannh@google.com \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=vbabka@suse.cz \
/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.