[v2,4/7] mm: huge_memory: use more folio api in __split_huge_page_tail()

Message ID 20231110033324.2455523-5-wangkefeng.wang@huawei.com
State New
Headers
Series [v2,1/7] fs/proc/page: remove unneeded PageTail && PageSlab check |

Commit Message

Kefeng Wang Nov. 10, 2023, 3:33 a.m. UTC
  Use more folio APIs to save six compound_head() calls in
__split_huge_page_tail().

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/huge_memory.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
  

Comments

Matthew Wilcox Nov. 10, 2023, 6:20 p.m. UTC | #1
On Fri, Nov 10, 2023 at 11:33:21AM +0800, Kefeng Wang wrote:
> Use more folio APIs to save six compound_head() calls in
> __split_huge_page_tail().
> 
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>

Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
  
Kefeng Wang Nov. 11, 2023, 10 a.m. UTC | #2
On 2023/11/11 2:20, Matthew Wilcox wrote:
> On Fri, Nov 10, 2023 at 11:33:21AM +0800, Kefeng Wang wrote:
>> Use more folio APIs to save six compound_head() calls in
>> __split_huge_page_tail().
>>
>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> 
> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> 

Thanks, Hi Andrew, please consider only take this one,
I will think more about other part as Matthew suggested.
  

Patch

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 3f74a063f7d1..2b03c55ea425 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2509,13 +2509,13 @@  static void __split_huge_page_tail(struct folio *folio, int tail,
 	clear_compound_head(page_tail);
 
 	/* Finally unfreeze refcount. Additional reference from page cache. */
-	page_ref_unfreeze(page_tail, 1 + (!PageAnon(head) ||
-					  PageSwapCache(head)));
+	page_ref_unfreeze(page_tail, 1 + (!folio_test_anon(folio) ||
+					  folio_test_swapcache(folio)));
 
-	if (page_is_young(head))
-		set_page_young(page_tail);
-	if (page_is_idle(head))
-		set_page_idle(page_tail);
+	if (folio_test_young(folio))
+		folio_set_young(new_folio);
+	if (folio_test_idle(folio))
+		folio_set_idle(new_folio);
 
 	folio_xchg_last_cpupid(new_folio, folio_last_cpupid(folio));