From: Mike Kravetz <mike.kravetz@oracle.com>
To: Xueshi Hu <xueshi.hu@smartx.com>
Cc: David Hildenbrand <david@redhat.com>,
muchun.song@linux.dev, corbet@lwn.net, akpm@linux-foundation.org,
n-horiguchi@ah.jp.nec.com, osalvador@suse.de, linux-mm@kvack.org
Subject: Re: [PATCH v2 1/4] mm/hugetlb: fix the inconsistency of /proc/sys/vm/nr_huge_pages
Date: Fri, 25 Aug 2023 14:15:19 -0700 [thread overview]
Message-ID: <20230825211519.GA3730@monkey> (raw)
In-Reply-To: <77540220-e1ca-a87f-51ce-905782c5ac91@smartx.com>
On 08/25/23 12:02, Xueshi Hu wrote:
> On 8/10/23 15:34, David Hildenbrand wrote:
> > On 10.08.23 02:17, Mike Kravetz wrote:
> > > On 08/08/23 17:13, Xueshi Hu wrote:
> > > > On 8/8/23 15:58, David Hildenbrand wrote:
> > > > > On 08.08.23 04:28, Xueshi Hu wrote:
> > > > > > On 8/7/23 23:15, David Hildenbrand wrote:
> > > > > > > On 06.08.23 09:48, Xueshi Hu wrote:
> > >
> > > Sorry for jumping in late, I was away for a while.
> > >
> > > Hu and myself discussed this previously in,
> > > https://lore.kernel.org/linux-mm/20230802182031.GA4762@monkey/T/#r1bdc8eeebafa08699fda5b15f247f3f966ddd090
> > >
> > > The documentation around what is displayed with the hugetlb proc/sys
> > > interfaces is at best confusing and at worst wrong in places.
> > >
> > > One source of confusion is use of term 'persistent hugetlb pages'. The
> > > documentation does not define this term. However, there is this
> > > definition in the code:
> > > #define persistent_huge_pages(h) (h->nr_huge_pages -
> > > h->surplus_huge_pages)
> > >
> > > All of the write/update interfaces modify the number of persistent
> > > hugetlb
> > > pages as defined by the code (#define). Only one read/show interface
> > > displays the number of persistent hugetlb pages as defined by the code
> > > (#define). That is /proc/sys/vm/nr_hugepages (and sysctl).
> >
> > Yes.
> >
> > >
> > > When thinking about this more, I am 'guessing' that when the
> > > documentation was
> > > originally written the term 'persistent hugetlb pages' did not refer
> > > to the
> > > #define in the code. Rather, it was just the number of allocated
> > > hugetlb pages
> > > that 'persisted' until modified by the admin/user.
> > >
> > > There is little doubt the documentation could/should be updated.
> >
> > Absolutely.
> >
> > >
> > > The question is 'Should we change the /proc/sys/vm/nr_hugepages (and
> > > sysctl)
> > > interfaces to be consistent with all the other read/show interfaces?
> > >
> > > The argument for changing is that consistency is good. Why have one
> > > interface
> > > that is not like the others?
> > >
> > > The reason for not changing is that this is the oldest interface. The
> > > information/interfaces originally available in /proc were created in
> > > /sys.
> > > And, as mentioned in the documentation the /proc interfaces were kept
> > > for backward compatibility. Unfortunately, the meaning of nr_hugepages
> > > was changed the /sys interfaces were created. Sigh!!!
> >
> > Indeed, they were designed to be different and to just leave the /proc
> > interface alone.
> >
> > >
> > > In the thread mentioned above, I was in agreement with Hu about changing
> > > /proc/sys/vm/nr_hugepages to be consistent with other read/show
> > > interfaces.
> > > Now, I am not sure.
> >
> > My take would be to just leave /proc/sys/vm/nr_hugepages alone. Maybe
> > pr_warn_once() when the interface is used to guide people away from that
> > legacy interface + clarify the docs.
> >
> > Your call. :)
> >
> Considering /proc/sys/vm/nr_hugepages may be widely used, and it not total
> equivalent to the interfaces under /sys. What about just clarifying the
> docs?
I believe just updating the docs with clarification may be the best approach.
We need to say that /proc/sys/vm/nr_hugepages and sysctl (vm.nr_hugepages)
display the number of persistent hugetlb pages in the default pool. And, we
should probably define 'persistent' as well.
With that, this patch should be dropped. Without patch 1, patch 2 is not
necessary. However, some cleanup (possible elimination) of max_huge_pages
could be done in the future.
Patch 3 is documentation updates which we agree need to be performed. I can
assist here if you would like.
Patch 4 is most critical as it is a bug fix. Perhaps this can/should be sent
separately.
--
Mike Kravetz
next prev parent reply other threads:[~2023-08-25 21:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-06 7:48 [PATCH v2 0/4] mm/hugetlb: fix /sys and /proc fs dealing with persistent hugepages Xueshi Hu
2023-08-06 7:48 ` [PATCH v2 1/4] mm/hugetlb: fix the inconsistency of /proc/sys/vm/nr_huge_pages Xueshi Hu
2023-08-07 15:15 ` David Hildenbrand
2023-08-08 2:28 ` Xueshi Hu
2023-08-08 7:58 ` David Hildenbrand
2023-08-08 9:13 ` Xueshi Hu
2023-08-10 0:17 ` Mike Kravetz
2023-08-10 7:34 ` David Hildenbrand
2023-08-10 22:15 ` Mike Kravetz
2023-08-25 4:02 ` Xueshi Hu
2023-08-25 21:15 ` Mike Kravetz [this message]
2023-08-26 2:51 ` Xueshi Hu
2023-08-06 7:48 ` [PATCH v2 2/4] mm/hugeltb: clean up hstate::max_huge_pages Xueshi Hu
2023-08-07 15:17 ` David Hildenbrand
2023-08-06 7:48 ` [PATCH v2 3/4] mm/hugeltb: fix nodes huge page allocation when there are surplus pages Xueshi Hu
2023-08-06 7:48 ` [PATCH v2 4/4] docs: hugetlbpage.rst: make the meaning of persistent hugetlb pages clear Xueshi Hu
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=20230825211519.GA3730@monkey \
--to=mike.kravetz@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=david@redhat.com \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=osalvador@suse.de \
--cc=xueshi.hu@smartx.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.