| From: Kefeng Wang <wangkefeng.wang@huawei.com> |
| Subject: mm/damon/vaddr: convert hugetlb related functions to use a folio |
| Date: Fri, 30 Dec 2022 15:08:49 +0800 |
| |
| Convert damon_hugetlb_mkold() and damon_young_hugetlb_entry() to |
| use a folio. |
| |
| Link: https://lkml.kernel.org/r/20221230070849.63358-9-wangkefeng.wang@huawei.com |
| Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> |
| Reviewed-by: SeongJae Park <sj@kernel.org> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/damon/vaddr.c | 20 ++++++++++---------- |
| 1 file changed, 10 insertions(+), 10 deletions(-) |
| |
| --- a/mm/damon/vaddr.c~mm-damon-vaddr-convert-hugetlb-related-functions-to-use-a-folio |
| +++ a/mm/damon/vaddr.c |
| @@ -335,9 +335,9 @@ static void damon_hugetlb_mkold(pte_t *p |
| { |
| bool referenced = false; |
| pte_t entry = huge_ptep_get(pte); |
| - struct page *page = pte_page(entry); |
| + struct folio *folio = pfn_folio(pte_pfn(entry)); |
| |
| - get_page(page); |
| + folio_get(folio); |
| |
| if (pte_young(entry)) { |
| referenced = true; |
| @@ -352,10 +352,10 @@ static void damon_hugetlb_mkold(pte_t *p |
| #endif /* CONFIG_MMU_NOTIFIER */ |
| |
| if (referenced) |
| - set_page_young(page); |
| + folio_set_young(folio); |
| |
| - set_page_idle(page); |
| - put_page(page); |
| + folio_set_idle(folio); |
| + folio_put(folio); |
| } |
| |
| static int damon_mkold_hugetlb_entry(pte_t *pte, unsigned long hmask, |
| @@ -490,7 +490,7 @@ static int damon_young_hugetlb_entry(pte |
| { |
| struct damon_young_walk_private *priv = walk->private; |
| struct hstate *h = hstate_vma(walk->vma); |
| - struct page *page; |
| + struct folio *folio; |
| spinlock_t *ptl; |
| pte_t entry; |
| |
| @@ -499,16 +499,16 @@ static int damon_young_hugetlb_entry(pte |
| if (!pte_present(entry)) |
| goto out; |
| |
| - page = pte_page(entry); |
| - get_page(page); |
| + folio = pfn_folio(pte_pfn(entry)); |
| + folio_get(folio); |
| |
| - if (pte_young(entry) || !page_is_idle(page) || |
| + if (pte_young(entry) || !folio_test_idle(folio) || |
| mmu_notifier_test_young(walk->mm, addr)) { |
| *priv->page_sz = huge_page_size(h); |
| priv->young = true; |
| } |
| |
| - put_page(page); |
| + folio_put(folio); |
| |
| out: |
| spin_unlock(ptl); |
| _ |