linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-api@vger.kernel.org
Subject: Re: [RFC PATCH] mm, proc: report PR_SET_THP_DISABLE in proc
Date: Thu, 4 Oct 2018 11:46:37 +0200	[thread overview]
Message-ID: <20181004094637.GG22173@dhcp22.suse.cz> (raw)
In-Reply-To: <alpine.DEB.2.21.1810040209130.113459@chino.kir.corp.google.com>

On Thu 04-10-18 02:15:38, David Rientjes wrote:
> On Thu, 4 Oct 2018, Michal Hocko wrote:
> 
> > > > > > So how about this? (not tested yet but it should be pretty
> > > > > > straightforward)
> > > > > 
> > > > > Umm, prctl(PR_GET_THP_DISABLE)?
> > > > 
> > > > /me confused. I thought you want to query for the flag on a
> > > > _different_ process. 
> > > 
> > > Why would we want to check three locations (system wide setting, prctl 
> > > setting, madvise setting) to determine if a heap can be backed by thp?
> > 
> > Because we simply have 3 different ways to control THP? Is this a real
> > problem?
> > 
> 
> And prior to the offending commit, there were three ways to control thp 
> but two ways to determine if a mapping was eligible for thp based on the 
> implementation detail of one of those ways.

Yes, it is really unfortunate that we have ever allowed to leak such an
internal stuff like VMA flags to userspace.

> If there are three ways to 
> control thp, userspace is still in the dark wrt which takes precedence 
> over the other: we have PR_SET_THP_DISABLE but globally sysfs has it set 
> to "always", or we have MADV_HUGEPAGE set per smaps but PR_SET_THP_DISABLE 
> shown in /proc/pid/status, etc.
> 
> Which one is the ultimate authority?

Isn't our documentation good enough? If not then we should document it
properly.

> There's one way to specify it: in a 
> single per-mapping location that reveals whether that mapping is eligible 
> for thp or not.  So I think it would be a very sane extension so that 
> smaps reveals if a mapping can be backed by hugepages or not depending on 
> the helper function thp uses itself to determine if it can fault 
> hugepages.  I don't think we should have three locations to check and then 
> try to resolve which one takes precedence over the other for each 
> userspace implementation (and perhaps how the kernel implementation 
> evolves).

But we really have three different ways to disable thp. Which one has
caused the end result might be interesting/important because different
entities might be under control. You either have to contact your admin
for the global one, or whomever has launched you for the prctl thing. So
the distinction might be important.

Checking 3 different places and the precedence rules is not really
trivial but I do not see any reason why this couldn't be implemented in
a library so the user doesn't really have to scratch head.

If you really insist to have per-vma thing then all right but do not
conflate vma flags and the higher level logic and make it its own line
in the smaps output and make sure it reports only THP able VMAs.
-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2018-10-04  9:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <alpine.DEB.2.21.1809241054050.224429@chino.kir.corp.google.com>
2018-09-24 18:25 ` [patch] mm, thp: always specify ineligible vmas as nh in smaps Vlastimil Babka
2018-09-24 19:17   ` David Rientjes
2018-09-24 19:30     ` [patch v2] " David Rientjes
2018-09-24 19:56       ` Michal Hocko
2018-09-24 20:02         ` Michal Hocko
2018-09-24 20:43           ` Vlastimil Babka
2018-09-25  5:50             ` Michal Hocko
2018-09-25 19:52             ` David Rientjes
2018-09-25 20:29               ` Michal Hocko
2018-09-25 21:45                 ` David Rientjes
2018-09-25 22:04                   ` Andrew Morton
2018-09-26  0:55                     ` David Rientjes
2018-09-26  6:06                     ` Michal Hocko
2018-10-02 11:28                       ` [RFC PATCH] mm, proc: report PR_SET_THP_DISABLE in proc Michal Hocko
2018-10-02 20:29                         ` David Rientjes
2018-10-03  7:36                           ` Michal Hocko
2018-10-03 22:51                             ` David Rientjes
2018-10-04  5:58                               ` Michal Hocko
2018-10-04  9:15                                 ` David Rientjes
2018-10-04  9:46                                   ` Michal Hocko [this message]
2018-10-04 18:34                                     ` David Rientjes
2018-10-09  8:33                                       ` Michal Hocko
2018-10-15 15:03                                         ` Michal Hocko
2018-10-15 22:25                                           ` David Rientjes
2018-10-16 10:48                                             ` Michal Hocko
2018-10-16 21:24                                               ` David Rientjes
2018-10-17  7:05                                                 ` Michal Hocko
2018-10-17 19:59                                                   ` David Rientjes
2018-10-18  7:00                                                     ` Michal Hocko
2018-11-14 13:23                                                       ` Michal Hocko
2018-11-14 21:41                                                         ` David Rientjes
2018-11-15  9:02                                                           ` Michal Hocko
2018-11-15  9:22                                                             ` Michal Hocko
2018-11-19 22:05                                                             ` David Rientjes
2018-11-20  7:48                                                               ` Michal Hocko
2018-10-03 17:33                           ` Mike Rapoport
2018-09-25 21:50               ` [patch v3] mm, thp: always specify disabled vmas as nh in smaps David Rientjes
2018-09-26  6:12                 ` Michal Hocko
2018-09-26  7:17                   ` Michal Hocko
2018-09-26  8:40                 ` Vlastimil Babka

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=20181004094637.GG22173@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.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;
as well as URLs for NNTP newsgroup(s).