Commit 8760e27b authored by Kefeng Wang's avatar Kefeng Wang Committed by Peng Zhang
Browse files

mm: remove page_cpupid_xchg_last()

mainline inclusion
from mainline-v6.7-rc1
commit 8f0f4788b1247c2f92ecacd8f86ce0b379b807b9
category: other
bugzilla: https://gitee.com/openeuler/kernel/issues/I8JQWQ

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8f0f4788b1247c2f92ecacd8f86ce0b379b807b9

--------------------------------

Since all calls use folio_xchg_last_cpupid(), remove
page_cpupid_xchg_last().

Link: https://lkml.kernel.org/r/20231018140806.2783514-20-wangkefeng.wang@huawei.com


Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarZhangPeng <zhangpeng362@huawei.com>
parent 41f28dae
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -1685,9 +1685,9 @@ static inline bool __cpupid_match_pid(pid_t task_pid, int cpupid)

#define cpupid_match_pid(task, cpupid) __cpupid_match_pid(task->pid, cpupid)
#ifdef LAST_CPUPID_NOT_IN_PAGE_FLAGS
static inline int page_cpupid_xchg_last(struct page *page, int cpupid)
static inline int folio_xchg_last_cpupid(struct folio *folio, int cpupid)
{
	return xchg(&page->_last_cpupid, cpupid & LAST_CPUPID_MASK);
	return xchg(&folio->_last_cpupid, cpupid & LAST_CPUPID_MASK);
}

static inline int folio_last_cpupid(struct folio *folio)
@@ -1704,7 +1704,7 @@ static inline int folio_last_cpupid(struct folio *folio)
	return (folio->flags >> LAST_CPUPID_PGSHIFT) & LAST_CPUPID_MASK;
}

extern int page_cpupid_xchg_last(struct page *page, int cpupid);
int folio_xchg_last_cpupid(struct folio *folio, int cpupid);

static inline void page_cpupid_reset_last(struct page *page)
{
@@ -1716,7 +1716,7 @@ static inline int folio_xchg_access_time(struct folio *folio, int time)
{
	int last_time;

	last_time = page_cpupid_xchg_last(&folio->page,
	last_time = folio_xchg_last_cpupid(folio,
					   time >> PAGE_ACCESS_TIME_BUCKETS);
	return last_time << PAGE_ACCESS_TIME_BUCKETS;
}
@@ -1731,9 +1731,9 @@ static inline void vma_set_access_pid_bit(struct vm_area_struct *vma)
	}
}
#else /* !CONFIG_NUMA_BALANCING */
static inline int page_cpupid_xchg_last(struct page *page, int cpupid)
static inline int folio_xchg_last_cpupid(struct folio *folio, int cpupid)
{
	return page_to_nid(page); /* XXX */
	return folio_nid(folio); /* XXX */
}

static inline int folio_xchg_access_time(struct folio *folio, int time)
@@ -1785,11 +1785,6 @@ static inline void vma_set_access_pid_bit(struct vm_area_struct *vma)
}
#endif /* CONFIG_NUMA_BALANCING */

static inline int folio_xchg_last_cpupid(struct folio *folio, int cpupid)
{
	return page_cpupid_xchg_last(&folio->page, cpupid);
}

#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS)

/*
+3 −3
Original line number Diff line number Diff line
@@ -93,19 +93,19 @@ void lruvec_init(struct lruvec *lruvec)
}

#if defined(CONFIG_NUMA_BALANCING) && !defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS)
int page_cpupid_xchg_last(struct page *page, int cpupid)
int folio_xchg_last_cpupid(struct folio *folio, int cpupid)
{
	unsigned long old_flags, flags;
	int last_cpupid;

	old_flags = READ_ONCE(page->flags);
	old_flags = READ_ONCE(folio->flags);
	do {
		flags = old_flags;
		last_cpupid = (flags >> LAST_CPUPID_PGSHIFT) & LAST_CPUPID_MASK;

		flags &= ~(LAST_CPUPID_MASK << LAST_CPUPID_PGSHIFT);
		flags |= (cpupid & LAST_CPUPID_MASK) << LAST_CPUPID_PGSHIFT;
	} while (unlikely(!try_cmpxchg(&page->flags, &old_flags, flags)));
	} while (unlikely(!try_cmpxchg(&folio->flags, &old_flags, flags)));

	return last_cpupid;
}