All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: 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 10:03:34 +0100	[thread overview]
Message-ID: <eb706dfd-9a08-4e64-ad34-f0191ea414e6@lucifer.local> (raw)
In-Reply-To: <20241024084222.17201-1-richard.weiyang@gmail.com>

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.

>
> 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.


  reply	other threads:[~2024-10-24  9:03 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 [this message]
2024-10-24  9:10   ` Wei Yang
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=eb706dfd-9a08-4e64-ad34-f0191ea414e6@lucifer.local \
    --to=lorenzo.stoakes@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=jannh@google.com \
    --cc=linux-mm@kvack.org \
    --cc=richard.weiyang@gmail.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.