[-next,4/7] mm: convert xchg_page_access_time to xchg_folio_access_time()
Commit Message
Make xchg_page_access_time to take a folio, and rename it to
xchg_folio_access_time() since all callers with a folio.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
include/linux/mm.h | 7 ++++---
kernel/sched/fair.c | 2 +-
mm/huge_memory.c | 4 ++--
mm/mprotect.c | 2 +-
4 files changed, 8 insertions(+), 7 deletions(-)
Comments
On Tue, Oct 10, 2023 at 02:45:41PM +0800, Kefeng Wang wrote:
> Make xchg_page_access_time to take a folio, and rename it to
> xchg_folio_access_time() since all callers with a folio.
You're doing this the hard way, which makes life hard for the reviewrs.
patch 1. Introduce folio->_last_cpupid
patch 2: Add
static inline int folio_xchg_access_time(struct folio *folio, int time)
{
return xchg_page_access_time(&folio->page, time);
}
patch 3-n: Convert callers
Patch n+1: Remove xchg_page_access_time(), folding it into
folio_xchg_access_time().
Similarly for page_cpupid_xchg_last / folio_cpupid_xchg_last().
(why is this not called folio_xchg_last_cpupid?)
On 2023/10/10 20:27, Matthew Wilcox wrote:
> On Tue, Oct 10, 2023 at 02:45:41PM +0800, Kefeng Wang wrote:
>> Make xchg_page_access_time to take a folio, and rename it to
>> xchg_folio_access_time() since all callers with a folio.
>
> You're doing this the hard way, which makes life hard for the reviewrs.
>
> patch 1. Introduce folio->_last_cpupid
> patch 2: Add
>
> static inline int folio_xchg_access_time(struct folio *folio, int time)
> {
> return xchg_page_access_time(&folio->page, time);
> }
>
> patch 3-n: Convert callers
> Patch n+1: Remove xchg_page_access_time(), folding it into
> folio_xchg_access_time().
Ok, I will follow this way, thanks for your advise.
>
> Similarly for page_cpupid_xchg_last / folio_cpupid_xchg_last().
> (why is this not called folio_xchg_last_cpupid?)
Fine with me, will update.
Thanks.
>
>
@@ -1711,11 +1711,12 @@ static inline void page_cpupid_reset_last(struct page *page)
}
#endif /* LAST_CPUPID_NOT_IN_PAGE_FLAGS */
-static inline int xchg_page_access_time(struct page *page, int time)
+static inline int xchg_folio_access_time(struct folio *folio, int time)
{
int last_time;
- last_time = page_cpupid_xchg_last(page, time >> PAGE_ACCESS_TIME_BUCKETS);
+ last_time = page_cpupid_xchg_last(&folio->page,
+ time >> PAGE_ACCESS_TIME_BUCKETS);
return last_time << PAGE_ACCESS_TIME_BUCKETS;
}
@@ -1734,7 +1735,7 @@ static inline int page_cpupid_xchg_last(struct page *page, int cpupid)
return page_to_nid(page); /* XXX */
}
-static inline int xchg_page_access_time(struct page *page, int time)
+static inline int xchg_folio_access_time(struct folio *folio, int time)
{
return 0;
}
@@ -1722,7 +1722,7 @@ static int numa_hint_fault_latency(struct folio *folio)
int last_time, time;
time = jiffies_to_msecs(jiffies);
- last_time = xchg_page_access_time(&folio->page, time);
+ last_time = xchg_folio_access_time(folio, time);
return (time - last_time) & PAGE_ACCESS_TIME_MASK;
}
@@ -1912,8 +1912,8 @@ int change_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma,
if (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING &&
!toptier)
- xchg_page_access_time(&folio->page,
- jiffies_to_msecs(jiffies));
+ xchg_folio_access_time(folio,
+ jiffies_to_msecs(jiffies));
}
/*
* In case prot_numa, we are under mmap_read_lock(mm). It's critical
@@ -159,7 +159,7 @@ static long change_pte_range(struct mmu_gather *tlb,
continue;
if (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING &&
!toptier)
- xchg_page_access_time(&folio->page,
+ xchg_folio_access_time(folio,
jiffies_to_msecs(jiffies));
}