summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorMatthew Wilcox (Oracle) <willy@infradead.org>2021-06-29 02:00:28 +0200
committerMatthew Wilcox (Oracle) <willy@infradead.org>2021-09-27 15:27:31 +0200
commitb1baabd995ab8e830dbf647fe731b51e12b8cedd (patch)
tree28af00ad39b65d707888c40fe48b5a088bdd70dc /mm
parentmm/memcg: Convert mem_cgroup_move_account() to use a folio (diff)
downloadlinux-b1baabd995ab8e830dbf647fe731b51e12b8cedd.tar.xz
linux-b1baabd995ab8e830dbf647fe731b51e12b8cedd.zip
mm/memcg: Add folio_lruvec()
This replaces mem_cgroup_page_lruvec(). All callers converted. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: David Howells <dhowells@redhat.com> Acked-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'mm')
-rw-r--r--mm/compaction.c2
-rw-r--r--mm/memcontrol.c9
-rw-r--r--mm/swap.c3
-rw-r--r--mm/workingset.c3
4 files changed, 11 insertions, 6 deletions
diff --git a/mm/compaction.c b/mm/compaction.c
index bfc93da1c2c7..37dfdf2b2287 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1022,7 +1022,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
if (!TestClearPageLRU(page))
goto isolate_fail_put;
- lruvec = mem_cgroup_page_lruvec(page);
+ lruvec = folio_lruvec(page_folio(page));
/* If we already hold the lock, we can skip some rechecking */
if (lruvec != locked) {
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index c17681defeec..ea4f879d2771 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1154,9 +1154,10 @@ void lruvec_memcg_debug(struct lruvec *lruvec, struct page *page)
*/
struct lruvec *lock_page_lruvec(struct page *page)
{
+ struct folio *folio = page_folio(page);
struct lruvec *lruvec;
- lruvec = mem_cgroup_page_lruvec(page);
+ lruvec = folio_lruvec(folio);
spin_lock(&lruvec->lru_lock);
lruvec_memcg_debug(lruvec, page);
@@ -1166,9 +1167,10 @@ struct lruvec *lock_page_lruvec(struct page *page)
struct lruvec *lock_page_lruvec_irq(struct page *page)
{
+ struct folio *folio = page_folio(page);
struct lruvec *lruvec;
- lruvec = mem_cgroup_page_lruvec(page);
+ lruvec = folio_lruvec(folio);
spin_lock_irq(&lruvec->lru_lock);
lruvec_memcg_debug(lruvec, page);
@@ -1178,9 +1180,10 @@ struct lruvec *lock_page_lruvec_irq(struct page *page)
struct lruvec *lock_page_lruvec_irqsave(struct page *page, unsigned long *flags)
{
+ struct folio *folio = page_folio(page);
struct lruvec *lruvec;
- lruvec = mem_cgroup_page_lruvec(page);
+ lruvec = folio_lruvec(folio);
spin_lock_irqsave(&lruvec->lru_lock, *flags);
lruvec_memcg_debug(lruvec, page);
diff --git a/mm/swap.c b/mm/swap.c
index 5679ce5bc362..65a74c89e7cf 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -293,7 +293,8 @@ void lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_pages)
void lru_note_cost_page(struct page *page)
{
- lru_note_cost(mem_cgroup_page_lruvec(page),
+ struct folio *folio = page_folio(page);
+ lru_note_cost(folio_lruvec(folio),
page_is_file_lru(page), thp_nr_pages(page));
}
diff --git a/mm/workingset.c b/mm/workingset.c
index d5b81e4f4cbe..3deb408a240d 100644
--- a/mm/workingset.c
+++ b/mm/workingset.c
@@ -397,6 +397,7 @@ out:
*/
void workingset_activation(struct page *page)
{
+ struct folio *folio = page_folio(page);
struct mem_cgroup *memcg;
struct lruvec *lruvec;
@@ -411,7 +412,7 @@ void workingset_activation(struct page *page)
memcg = page_memcg_rcu(page);
if (!mem_cgroup_disabled() && !memcg)
goto out;
- lruvec = mem_cgroup_page_lruvec(page);
+ lruvec = folio_lruvec(folio);
workingset_age_nonresident(lruvec, thp_nr_pages(page));
out:
rcu_read_unlock();