linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Rik van Riel <riel@redhat.com>
Cc: Ebru Akagunduz <ebru.akagunduz@gmail.com>,
	linux-mm@kvack.org, kirill@shutemov.name, mhocko@suse.cz,
	mgorman@suse.de, rientjes@google.com, sasha.levin@oracle.com,
	hughd@google.com, hannes@cmpxchg.org, vbabka@suse.cz,
	linux-kernel@vger.kernel.org, aarcange@redhat.com,
	keithr@alum.mit.edu, dvyukov@google.com
Subject: Re: [PATCH v2] mm: incorporate zero pages into transparent huge pages
Date: Mon, 23 Feb 2015 11:16:21 -0800	[thread overview]
Message-ID: <20150223111621.bc73004f51af2ca8e2847944@linux-foundation.org> (raw)
In-Reply-To: <54E5296C.5040806@redhat.com>

On Wed, 18 Feb 2015 19:08:12 -0500 Rik van Riel <riel@redhat.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 02/18/2015 06:31 PM, Andrew Morton wrote:
> > On Wed, 11 Feb 2015 23:03:55 +0200 Ebru Akagunduz
> > <ebru.akagunduz@gmail.com> wrote:
> > 
> >> This patch improves THP collapse rates, by allowing zero pages.
> >> 
> >> Currently THP can collapse 4kB pages into a THP when there are up
> >> to khugepaged_max_ptes_none pte_none ptes in a 2MB range.  This
> >> patch counts pte none and mapped zero pages with the same
> >> variable.
> > 
> > So if I'm understanding this correctly, with the default value of 
> > khugepaged_max_ptes_none (HPAGE_PMD_NR-1), if an application
> > creates a 2MB area which contains 511 mappings of the zero page and
> > one real page, the kernel will proceed to turn that area into a
> > real, physical huge page.  So it consumes 2MB of memory which would
> > not have previously been allocated?
> 
> This is equivalent to an application doing a write fault
> to a 2MB area that was previously untouched, going into
> do_huge_pmd_anonymous_page() and receiving a 2MB page.
> 
> > If so, this might be rather undesirable behaviour in some
> > situations (and ditto the current behaviour for pte_none ptes)?
> > 
> > This can be tuned by adjusting khugepaged_max_ptes_none,
> 
> The example of directly going into do_huge_pmd_anonymous_page()
> is not influenced by the tunable.
> 
> It may indeed be undesirable in some situations, but I am
> not sure how to detect those...

Here's a live one: https://bugzilla.kernel.org/show_bug.cgi?id=93111

Application does MADV_DONTNEED to free up a load of memory and then
khugepaged comes along and pages that memory back in again.  It seems a
bit silly to do this after userspace has deliberately discarded those
pages!

Presumably MADV_NOHUGEPAGE can be used to prevent this, but it's a bit
of a hand-grenade.  I guess the MADV_DONTNEED manpage should be updated
to explain all this?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2015-02-23 19:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-11 21:03 Ebru Akagunduz
2015-02-11 22:16 ` Andrea Arcangeli
2015-02-11 22:21   ` Kirill A. Shutemov
2015-02-11 22:33     ` Andrea Arcangeli
2015-02-16 11:50 ` Vlastimil Babka
2015-02-18 23:31 ` Andrew Morton
2015-02-19  0:08   ` Rik van Riel
2015-02-19  8:25     ` Vlastimil Babka
2015-02-23 19:16     ` Andrew Morton [this message]
2015-02-23 19:43       ` Rik van Riel
2015-02-23 21:45         ` Vlastimil Babka
2015-02-20 18:02   ` Andrea Arcangeli

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=20150223111621.bc73004f51af2ca8e2847944@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=aarcange@redhat.com \
    --cc=dvyukov@google.com \
    --cc=ebru.akagunduz@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=keithr@alum.mit.edu \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=riel@redhat.com \
    --cc=rientjes@google.com \
    --cc=sasha.levin@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox