All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Kravetz <mike.kravetz@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>,
	songmuchun@bytedance.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] mm/hugetlb: fix incorrect update of max_huge_pages
Date: Tue, 16 Aug 2022 16:34:47 -0700	[thread overview]
Message-ID: <Yvwpl/RD9tLr6HJE@monkey> (raw)
In-Reply-To: <20220816162024.60087b143995d9e21413fc52@linux-foundation.org>

On 08/16/22 16:20, Andrew Morton wrote:
> On Tue, 16 Aug 2022 15:52:47 -0700 Mike Kravetz <mike.kravetz@oracle.com> wrote:
> 
> > On 08/16/22 21:05, Miaohe Lin wrote:
> > > There should be pages_per_huge_page(h) / pages_per_huge_page(target_hstate)
> > > pages incremented for target_hstate->max_huge_pages when page is demoted.
> > > Update max_huge_pages accordingly for consistency.
> > > 
> > > Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> > > ---
> > >  mm/hugetlb.c | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> > > index ea1c7bfa1cc3..e72052964fb5 100644
> > > --- a/mm/hugetlb.c
> > > +++ b/mm/hugetlb.c
> > > @@ -3472,7 +3472,8 @@ static int demote_free_huge_page(struct hstate *h, struct page *page)
> > >  	 * based on pool changes for the demoted page.
> > >  	 */
> > >  	h->max_huge_pages--;
> > > -	target_hstate->max_huge_pages += pages_per_huge_page(h);
> > > +	target_hstate->max_huge_pages +=
> > > +		pages_per_huge_page(h) / pages_per_huge_page(target_hstate);
> > 
> > Thanks!
> > 
> > That is indeed incorrect.  However the miscalculation should not have any 
> > consequences.  Correct?  The value is used when initially populating the
> > pools.  It is never read and used again.  It is written to in
> > set_max_huge_pages if someone changes the number of hugetlb pages.
> > 
> > I guess that is a long way of saying I am not sure why we care about trying
> > to keep max_huge_pages up to date?  I do not think it matters.
> > 
> > I also thought, if we are going to adjust max_huge_pages here we may
> > also want to adjust the node specific value: h->max_huge_pages_node[node].
> > There are a few other places where the global max_huge_pages is adjusted
> > without adjusting the node specific value.
> > 
> > The more I think about it, the more I think we should explore just
> > eliminating any adjustment of this/these values after initially
> > populating the pools.
> 
> I'm thinking we should fix something that is "indeed incorrect" before
> going on to more extensive things?

Sure, I am good with that.

Just wanted to point out that the incorrect calculation does not have
any negative consequences.  Maybe prompting Miaohe to look into the more
extensive cleanup.
-- 
Mike Kravetz

  reply	other threads:[~2022-08-16 23:35 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-16 13:05 [PATCH 0/6] A few fixup patches for hugetlb Miaohe Lin
2022-08-16 13:05 ` [PATCH 1/6] mm/hugetlb: fix incorrect update of max_huge_pages Miaohe Lin
2022-08-16 22:52   ` Mike Kravetz
2022-08-16 23:20     ` Andrew Morton
2022-08-16 23:34       ` Mike Kravetz [this message]
2022-08-17  1:53         ` Miaohe Lin
2022-08-17  2:28   ` Muchun Song
2022-08-16 13:05 ` [PATCH 2/6] mm/hugetlb: fix WARN_ON(!kobj) in sysfs_create_group() Miaohe Lin
2022-08-16 22:55   ` Mike Kravetz
2022-08-17  2:31   ` Muchun Song
2022-08-17  2:39     ` Miaohe Lin
2022-08-16 13:05 ` [PATCH 3/6] mm/hugetlb: fix missing call to restore_reserve_on_error() Miaohe Lin
2022-08-16 23:31   ` Mike Kravetz
2022-08-17  1:59     ` Miaohe Lin
2022-08-16 13:05 ` [PATCH 4/6] mm: hugetlb_vmemmap: add missing smp_wmb() before set_pte_at() Miaohe Lin
2022-08-17  2:53   ` Muchun Song
2022-08-17  8:41     ` Miaohe Lin
2022-08-17  9:13       ` Yin, Fengwei
2022-08-17 11:21       ` Muchun Song
2022-08-18  1:14         ` Yin, Fengwei
2022-08-18  1:55           ` Miaohe Lin
2022-08-18  2:00             ` Yin, Fengwei
2022-08-18  2:47               ` Muchun Song
2022-08-18  7:52                 ` Miaohe Lin
2022-08-18  7:59                   ` Muchun Song
2022-08-18  8:32                     ` Yin, Fengwei
2022-08-18  8:40                       ` Muchun Song
2022-08-18  8:54                         ` Yin, Fengwei
2022-08-18  9:18                           ` Muchun Song
2022-08-18 12:58                             ` Miaohe Lin
2022-08-18 23:53                               ` Yin, Fengwei
2022-08-19  3:19                               ` Muchun Song
2022-08-19  7:26                                 ` Miaohe Lin
2022-08-18  1:15   ` Yin, Fengwei
2022-08-20  8:12   ` Muchun Song
2022-08-22  8:45     ` Miaohe Lin
2022-08-22 10:23       ` Muchun Song
2022-08-23  1:42         ` Miaohe Lin
2022-08-16 13:05 ` [PATCH 5/6] mm/hugetlb: fix sysfs group leak in hugetlb_unregister_node() Miaohe Lin
2022-08-17  9:41   ` Yin, Fengwei
2022-08-18  1:00     ` Yin, Fengwei
2022-08-18  1:12   ` Yin, Fengwei
2022-08-16 13:05 ` [PATCH 6/6] mm/hugetlb: make detecting shared pte more reliable Miaohe Lin
2022-08-17 23:56   ` Mike Kravetz

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=Yvwpl/RD9tLr6HJE@monkey \
    --to=mike.kravetz@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=linmiaohe@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=songmuchun@bytedance.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.