Messages in this thread | | | Date | Tue, 30 May 2017 14:21:14 +0100 | From | Roman Gushchin <> | Subject | Re: [PATCH] mm: bump PGSTEAL*/PGSCAN*/ALLOCSTALL counters in memcg reclaim |
| |
On Tue, May 30, 2017 at 02:24:36PM +0200, Michal Hocko wrote: > On Mon 29-05-17 14:01:41, Roman Gushchin wrote: > > Historically, PGSTEAL*/PGSCAN*/ALLOCSTALL counters were used to > > account only for global reclaim events, memory cgroup targeted reclaim > > was ignored. > > > > It doesn't make sense anymore, because the whole reclaim path > > is designed around cgroups. Also, per-cgroup counters can exceed the > > corresponding global counters, what can be confusing. > > The whole reclaim is designed around cgroups but the source of the > memory pressure is different. I agree that checking global_reclaim() > for PGSTEAL_KSWAPD doesn't make much sense because we are _always_ in > the global reclaim context but counting ALLOCSTALL even for targetted > memcg reclaim is more confusing than helpful. We usually consider this > counter to see whether the kswapd catches up with the memory demand > and the global direct reclaim is indicator it doesn't. The similar > applies to other counters as well. > > So I do not think this is correct. What is the problem you are trying to > solve here anyway.
This is a follow-up patch after the discussion here: https://lkml.org/lkml/2017/5/16/706.
I can agree with you, that a per-cgroup ALLOCSTALL is something different from a global one, and it's better to keep them separated.
But what about PGSTEAL*/PGSCAN* counters, isn't it better to make them reflect __all__ reclaim activity, no matter what was a root cause?
Thanks!
Roman
| |