linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Mike Kravetz <mike.kravetz@oracle.com>
To: Li Xinhai <lixinhai.lxh@gmail.com>, linux-mm@kvack.org
Cc: akpm@linux-foundation.org, Peter Xu <peterx@redhat.com>
Subject: Re: [PATCH] mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
Date: Tue, 29 Dec 2020 13:20:40 -0800	[thread overview]
Message-ID: <2b6534f5-2ffa-6325-6af1-8c067ba9c0bc@oracle.com> (raw)
In-Reply-To: <20201229042125.2663029-1-lixinhai.lxh@gmail.com>

On 12/28/20 8:21 PM, Li Xinhai wrote:
> The current code would unnecessarily expand the address range. Consider
> one example, (start, end) = (1G-2M, 3G+2M), and  (vm_start, vm_end) =
> (1G-4M, 3G+4M), the expected adjustment should be keep (1G-2M, 3G+2M)
> without expand. But the current result will be (1G-4M, 3G+4M). Actually,
> the range (1G-4M, 1G) and (3G, 3G+4M) would never been involved in pmd
> sharing.
> 
> After this patch, if pud aligned *start across vm_start, then we know the
> *start and vm_start are in same pud_index, and vm_start is not pud
> aligned, so don't adjust *start. Same logic applied to *end.
> 
> Fixes: commit 75802ca66354 ("mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible")
> Cc: Mike Kravetz <mike.kravetz@oracle.com>
> Cc: Peter Xu <peterx@redhat.com>
> Signed-off-by: Li Xinhai <lixinhai.lxh@gmail.com>

Thank you.  That does indeed fix an issue in the current code.

Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>

Andrew,
You asked about user-visible runtime effects.  The 'adjusted range' is used
for calls to mmu notifiers and cache(tlb) flushing.  Since the current code
unnecessarily expands the range in some cases, more entries than necessary
would be flushed.  This would/could result in performance degradation.
However, this is highly dependent on the user runtime.  Is there a combination
of vma layout and calls to actually hit this issue?  If the issue is hit, will
those entries unnecessarily flushed be used again and need to be unnecessarily
reloaded?  

-- 
Mike Kravetz


  parent reply	other threads:[~2020-12-29 21:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-29  4:21 Li Xinhai
2020-12-29 19:21 ` Andrew Morton
2020-12-29 21:20 ` Mike Kravetz [this message]
2020-12-31 17:56   ` Mike Kravetz
2021-01-02 11:56     ` Li Xinhai
2021-01-04  3:55       ` Mike Kravetz
2021-01-04  7:10         ` Li Xinhai
2021-01-04 18:59           ` Mike Kravetz
2021-01-05  2:10             ` Li Xinhai
2021-01-05  2:38               ` Li Xinhai
2021-01-05 18:20                 ` Mike Kravetz
2020-12-30 18:42 ` Peter Xu

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=2b6534f5-2ffa-6325-6af1-8c067ba9c0bc@oracle.com \
    --to=mike.kravetz@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=lixinhai.lxh@gmail.com \
    --cc=peterx@redhat.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