Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59d1d256 authored by Johannes Weiner's avatar Johannes Weiner Committed by Linus Torvalds
Browse files

mm: memcg: remove mem_cgroup_move_account_page_stat()



It used to disable preemption and run sanity checks but now it's only
taking a number out of one percpu counter and putting it into another.
Do this directly in the callsite and save the indirection.

Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7af467e8
Loading
Loading
Loading
Loading
+12 −16
Original line number Diff line number Diff line
@@ -3744,16 +3744,6 @@ void mem_cgroup_split_huge_fixup(struct page *head)
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */

static void mem_cgroup_move_account_page_stat(struct mem_cgroup *from,
					      struct mem_cgroup *to,
					      unsigned int nr_pages,
					      enum mem_cgroup_stat_index idx)
{
	/* Update stat data for mem_cgroup */
	__this_cpu_sub(from->stat->count[idx], nr_pages);
	__this_cpu_add(to->stat->count[idx], nr_pages);
}

/**
 * mem_cgroup_move_account - move account of the page
 * @page: the page
@@ -3799,13 +3789,19 @@ static int mem_cgroup_move_account(struct page *page,

	move_lock_mem_cgroup(from, &flags);

	if (!anon && page_mapped(page))
		mem_cgroup_move_account_page_stat(from, to, nr_pages,
			MEM_CGROUP_STAT_FILE_MAPPED);
	if (!anon && page_mapped(page)) {
		__this_cpu_sub(from->stat->count[MEM_CGROUP_STAT_FILE_MAPPED],
			       nr_pages);
		__this_cpu_add(to->stat->count[MEM_CGROUP_STAT_FILE_MAPPED],
			       nr_pages);
	}

	if (PageWriteback(page))
		mem_cgroup_move_account_page_stat(from, to, nr_pages,
			MEM_CGROUP_STAT_WRITEBACK);
	if (PageWriteback(page)) {
		__this_cpu_sub(from->stat->count[MEM_CGROUP_STAT_WRITEBACK],
			       nr_pages);
		__this_cpu_add(to->stat->count[MEM_CGROUP_STAT_WRITEBACK],
			       nr_pages);
	}

	mem_cgroup_charge_statistics(from, page, anon, -nr_pages);