linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Rik van Riel <riel@surriel.com>
To: Yang Shi <shy828301@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org,  kernel-team@fb.com,
	Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH] mm: align larger anonymous mappings on THP boundaries
Date: Tue, 09 Aug 2022 13:36:28 -0400	[thread overview]
Message-ID: <5389e4e0623a32799cc7aebf468420777578f37e.camel@surriel.com> (raw)
In-Reply-To: <CAHbLzkrdsHd1UhUAVr1MH3HzauyUT5Cy0VyRzeu123ohhKS8-g@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1735 bytes --]

On Tue, 2022-08-09 at 10:16 -0700, Yang Shi wrote:
> On Mon, Aug 8, 2022 at 1:47 PM Rik van Riel <riel@surriel.com> wrote:
> > 
> > Align larger anonymous memory mappings on THP boundaries by
> > going through thp_get_unmapped_area if THPs are enabled for
> > the current process.
> > 
> > With this patch, larger anonymous mappings are now THP aligned
> > when checking in /proc/PID/maps, but only when THP is enabled
> > for that process.
> > 
> > Signed-off-by: Rik van Riel <riel@surriel.com>
> > ---
> >  mm/mmap.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/mm/mmap.c b/mm/mmap.c
> > index c035020d0c89..3a9d19cec690 100644
> > --- a/mm/mmap.c
> > +++ b/mm/mmap.c
> > @@ -2229,6 +2229,9 @@ get_unmapped_area(struct file *file, unsigned
> > long addr, unsigned long len,
> >                  */
> >                 pgoff = 0;
> >                 get_area = shmem_get_unmapped_area;
> > +       } else if (test_bit(MMF_VM_HUGEPAGE, &current->mm->flags))
> > {
> 
> There is a kind of chicken & egg problem here, MMF_VM_HUGEPAGE is not
> going to be set if there is no THP eligible vma even though THP is
> enabled.

With THP enabled=always, we should always end up with getting
MMF_VM_HUGEPAGE set after the first VMA, but you are right that:

1) The first VMA might not get the proper alignment, and
2) with THP enabled=madvise we might get a whole bunch of
   mis-aligned VMAs on which a subsequent madvise would
   not create the desired THPs.

You are right that that condition should just be removed,
and we should decide alignment based on VMA size alone.

Let me send a v2.

-- 
All Rights Reversed.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

      reply	other threads:[~2022-08-09 17:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-08 20:46 Rik van Riel
2022-08-08 22:09 ` Andrew Morton
2022-08-09  0:59   ` Rik van Riel
2022-08-09 17:16 ` Yang Shi
2022-08-09 17:36   ` Rik van Riel [this message]

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=5389e4e0623a32799cc7aebf468420777578f37e.camel@surriel.com \
    --to=riel@surriel.com \
    --cc=akpm@linux-foundation.org \
    --cc=kernel-team@fb.com \
    --cc=linux-mm@kvack.org \
    --cc=shy828301@gmail.com \
    --cc=willy@infradead.org \
    /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