Message ID | 20211026220635.35187-1-mike.kravetz@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | hugetlb: remove unnecessary set_page_count in prep_compound_gigantic_page | expand |
On Tue, Oct 26, 2021 at 6:06 PM Mike Kravetz <mike.kravetz@oracle.com> wrote: > > In commit 7118fc2906e29 ("hugetlb: address ref count racing in > prep_compound_gigantic_page"), page_ref_freeze is used to atomically > zero the ref count of tail pages iff they are 1. The unconditional > call to set_page_count(0) was left in the code. This call is after > page_ref_freeze so it is really a noop. > > Remove redundant and unnecessary set_page_count call. > > Fixes: 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page") > Suggested-by: Pasha Tatashin <pasha.tatashin@soleen.com> > Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com> Thanks, Pasha
On Tue, Oct 26, 2021 at 03:06:35PM -0700, Mike Kravetz wrote: > In commit 7118fc2906e29 ("hugetlb: address ref count racing in > prep_compound_gigantic_page"), page_ref_freeze is used to atomically > zero the ref count of tail pages iff they are 1. The unconditional > call to set_page_count(0) was left in the code. This call is after > page_ref_freeze so it is really a noop. > > Remove redundant and unnecessary set_page_count call. > > Fixes: 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page") > Suggested-by: Pasha Tatashin <pasha.tatashin@soleen.com> > Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
On Tue, Oct 26, 2021 at 03:06:35PM -0700, Mike Kravetz wrote: > In commit 7118fc2906e29 ("hugetlb: address ref count racing in > prep_compound_gigantic_page"), page_ref_freeze is used to atomically > zero the ref count of tail pages iff they are 1. The unconditional > call to set_page_count(0) was left in the code. This call is after > page_ref_freeze so it is really a noop. > > Remove redundant and unnecessary set_page_count call. > > Fixes: 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page") > Suggested-by: Pasha Tatashin <pasha.tatashin@soleen.com> > Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Oscar Salvador <osalvador@suse.de> > --- > mm/hugetlb.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 906fe8a3b93d..88047a367080 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1795,7 +1795,6 @@ static bool __prep_compound_gigantic_page(struct page *page, unsigned int order, > } else { > VM_BUG_ON_PAGE(page_count(p), p); > } > - set_page_count(p, 0); > set_compound_head(p, page); > } > atomic_set(compound_mapcount_ptr(page), -1); > -- > 2.31.1 > >
On Wed, Oct 27, 2021 at 6:06 AM Mike Kravetz <mike.kravetz@oracle.com> wrote: > > In commit 7118fc2906e29 ("hugetlb: address ref count racing in > prep_compound_gigantic_page"), page_ref_freeze is used to atomically > zero the ref count of tail pages iff they are 1. The unconditional > call to set_page_count(0) was left in the code. This call is after > page_ref_freeze so it is really a noop. > > Remove redundant and unnecessary set_page_count call. > > Fixes: 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page") > Suggested-by: Pasha Tatashin <pasha.tatashin@soleen.com> > Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Muchun Song <songmuchun@bytedance.com> Thanks.
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 906fe8a3b93d..88047a367080 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1795,7 +1795,6 @@ static bool __prep_compound_gigantic_page(struct page *page, unsigned int order, } else { VM_BUG_ON_PAGE(page_count(p), p); } - set_page_count(p, 0); set_compound_head(p, page); } atomic_set(compound_mapcount_ptr(page), -1);
In commit 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page"), page_ref_freeze is used to atomically zero the ref count of tail pages iff they are 1. The unconditional call to set_page_count(0) was left in the code. This call is after page_ref_freeze so it is really a noop. Remove redundant and unnecessary set_page_count call. Fixes: 7118fc2906e29 ("hugetlb: address ref count racing in prep_compound_gigantic_page") Suggested-by: Pasha Tatashin <pasha.tatashin@soleen.com> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> --- mm/hugetlb.c | 1 - 1 file changed, 1 deletion(-)