[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMZfGtUkUq_8pnL9SY+aA=TBx5aJx0x+32qKQ5r+yB-q2STN6g@mail.gmail.com>
Date: Sat, 9 Jan 2021 12:07:21 +0800
From: Muchun Song <songmuchun@...edance.com>
To: Mike Kravetz <mike.kravetz@...cle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Naoya Horiguchi <n-horiguchi@...jp.nec.com>,
Andi Kleen <ak@...ux.intel.com>, mhocko@...e.cz,
Linux Memory Management List <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [External] Re: [PATCH v2 6/6] mm: hugetlb: remove VM_BUG_ON_PAGE
from page_huge_active
On Sat, Jan 9, 2021 at 6:24 AM Mike Kravetz <mike.kravetz@...cle.com> wrote:
>
> On 1/6/21 12:47 AM, Muchun Song wrote:
> > The page_huge_active() can be called from scan_movable_pages() which
> > do not hold a reference count to the HugeTLB page. So when we call
> > page_huge_active() from scan_movable_pages(), the HugeTLB page can
> > be freed parallel. Then we will trigger a BUG_ON which is in the
> > page_huge_active() when CONFIG_DEBUG_VM is enabled. Just remove the
> > VM_BUG_ON_PAGE.
> >
> > Fixes: 7e1f049efb86 ("mm: hugetlb: cleanup using paeg_huge_active()")
> > Signed-off-by: Muchun Song <songmuchun@...edance.com>
> > Reviewed-by: Mike Kravetz <mike.kravetz@...cle.com>
> > ---
> > mm/hugetlb.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> > index 67200dd25b1d..7a24ed28ec4f 100644
> > --- a/mm/hugetlb.c
> > +++ b/mm/hugetlb.c
> > @@ -1372,7 +1372,6 @@ struct hstate *size_to_hstate(unsigned long size)
> > */
> > bool page_huge_active(struct page *page)
> > {
> > - VM_BUG_ON_PAGE(!PageHuge(page), page);
> > return PageHead(page) && PagePrivate(&page[1]);
> > }
>
> After more thought, should that return statement be changed to?
> return PageHeadHuge(page) && PagePrivate(&page[1]);
Agree.
>
> We only want to test that PagePrivate flag for hugetlb head pages.
> Although, the possibility that the hugetlb page was freed and turned
> into another compound page in this race window is REALLY small.
Yeah. Thanks. I will update to PageHeadHuge().
> --
> Mike Kravetz
Powered by blists - more mailing lists