Re: [patch v2] mm, thp: always specify ineligible vmas as nh in smaps

From: Michal Hocko
Date: Wed Sep 26 2018 - 02:06:33 EST


On Tue 25-09-18 15:04:06, Andrew Morton wrote:
> On Tue, 25 Sep 2018 14:45:19 -0700 (PDT) David Rientjes <rientjes@xxxxxxxxxx> wrote:
>
> > > > It is also used in
> > > > automated testing to ensure that vmas get disabled for thp appropriately
> > > > and we used "nh" since that is how PR_SET_THP_DISABLE previously enforced
> > > > this, and those tests now break.
> > >
> > > This sounds like a bit of an abuse to me. It shows how an internal
> > > implementation detail leaks out to the userspace which is something we
> > > should try to avoid.
> > >
> >
> > Well, it's already how this has worked for years before commit
> > 1860033237d4 broke it. Changing the implementation in the kernel is fine
> > as long as you don't break userspace who relies on what is exported to it
> > and is the only way to determine if MADV_NOHUGEPAGE is preventing it from
> > being backed by hugepages.
>
> 1860033237d4 was over a year ago so perhaps we don't need to be
> too worried about restoring the old interface. In which case
> we have an opportunity to make improvements such as that suggested
> by Michal?

Yeah, can we add a way to export PR_SET_THP_DISABLE to userspace
somehow? E.g. /proc/<pid>/status. It is a process wide thing so
reporting it per VMA sounds strange at best.

This would also keep a sane (and currently documented) semantic for
the smaps flag to be really
hg - huge page advise flag
nh - no-huge page advise flag
--
Michal Hocko
SUSE Labs