Message ID | 20221212225529.22493-1-sidhartha.kumar@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [mm-stable] mm/hugetlb: set head flag before setting compound_order in __prep_compound_gigantic_folio | expand |
On 12.12.22 23:55, Sidhartha Kumar wrote: > folio_set_compound_order() checks if the passed in folio is a large folio. > A large folio is indicated by the PG_head flag. Call __folio_set_head() > before setting the order. > > Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> > Reported-by: David Hildenbrand <david@redhat.com> > --- > Hi David, > I tested this by doing: > > echo 10 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages > echo 0 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages Thanks, that should be good enough. > > and checking dmesg. Let me know if there are other ways of testing > you would like to see run. > > Hi Andrew, > This can be folded into d1c6095572d0cf00c0cd30378639ff9387b34edd > mm/hugetlb: convert hugetlb prep functions to folios. > > However, there is still ongoing discussion with this patch series, > specifically with patch 1 9fd330582b2f mm: add folio dtor and order setter > functions, so I'm not sure if this series should be a part of the 6.2 merge > window. I am planning to send a v6 within the next few days to implement > the suggested changes. Whatever is in mm-stable is supposed to go upstream as-is and even the commit ids will remain stable, meaning we an only queue fixes on top. Therefore, mm-stable now contains: commit c45bc55a99957b20e4e0333bcd42e12d1833a7f5 (mm/mm-stable) Author: Sidhartha Kumar <sidhartha.kumar@oracle.com> Date: Mon Dec 12 14:55:29 2022 -0800 mm/hugetlb: set head flag before setting compound_order in __prep_compound_gigantic_folio folio_set_compound_order() checks if the passed in folio is a large folio. A large folio is indicated by the PG_head flag. Call __folio_set_head() before setting the order. Link: https://lkml.kernel.org/r/20221212225529.22493-1-sidhartha.kumar@oracle.com Fixes: d1c6095572d0 ("mm/hugetlb: convert hugetlb prep functions to folios") Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reported-by: David Hildenbrand <david@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> So, best send any future changes against mm-stable instead of sending out a v6.
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 8c6fe2286814..7cdbcc22587b 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1805,10 +1805,10 @@ static bool __prep_compound_gigantic_folio(struct folio *folio, int nr_pages = 1 << order; struct page *p; - /* we rely on prep_new_hugetlb_folio to set the destructor */ - folio_set_compound_order(folio, order); __folio_clear_reserved(folio); __folio_set_head(folio); + /* we rely on prep_new_hugetlb_folio to set the destructor */ + folio_set_compound_order(folio, order); for (i = 0; i < nr_pages; i++) { p = folio_page(folio, i);
folio_set_compound_order() checks if the passed in folio is a large folio. A large folio is indicated by the PG_head flag. Call __folio_set_head() before setting the order. Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reported-by: David Hildenbrand <david@redhat.com> --- Hi David, I tested this by doing: echo 10 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages echo 0 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages and checking dmesg. Let me know if there are other ways of testing you would like to see run. Hi Andrew, This can be folded into d1c6095572d0cf00c0cd30378639ff9387b34edd mm/hugetlb: convert hugetlb prep functions to folios. However, there is still ongoing discussion with this patch series, specifically with patch 1 9fd330582b2f mm: add folio dtor and order setter functions, so I'm not sure if this series should be a part of the 6.2 merge window. I am planning to send a v6 within the next few days to implement the suggested changes. mm/hugetlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)