[PATCH 0/6] mm: memcontrol: clean up the LRU counts tracking

From: Johannes Weiner
Date: Thu Feb 28 2019 - 11:30:42 EST


[ Resend #2: Sorry about the spam, I mixed up the header fields in
git-send-email and I don't know who did and didn't receive the
garbled previous attempt.

Resend #1: Rebased on top of the latest mmots. ]

The memcg LRU stats usage is currently a bit messy. Memcg has private
per-zone counters because reclaim needs zone granularity sometimes,
but we also have plenty of users that need to awkwardly sum them up to
node or memcg granularity. Meanwhile the canonical per-memcg vmstats
do not track the LRU counts (NR_INACTIVE_ANON etc.) as you'd expect.

This series enables LRU count tracking in the per-memcg vmstats array
such that lruvec_page_state() and memcg_page_state() work on the enum
node_stat_item items for the LRU counters. Then it converts all the
callers that don't specifically need per-zone numbers over to that.

include/linux/memcontrol.h | 28 ---------------
include/linux/mm_inline.h | 2 +-
include/linux/mmzone.h | 5 ---
mm/memcontrol.c | 85 +++++++++++++++++++++++++-------------------
mm/vmscan.c | 2 +-
mm/workingset.c | 5 +--
6 files changed, 54 insertions(+), 73 deletions(-)