* [PATCH v2] mm, memcg: add workingset_restore in memory.stat
@ 2020-05-04 13:17 Yafang Shao
2020-05-04 13:29 ` Michal Hocko
0 siblings, 1 reply; 3+ messages in thread
From: Yafang Shao @ 2020-05-04 13:17 UTC (permalink / raw)
To: akpm; +Cc: mhocko, hannes, linux-mm, Yafang Shao
There's a new workingset counter introduced in commit 1899ad18c607 ("mm:
workingset: tell cache transitions from workingset thrashing"). With the
help of this counter we can know the workingset is transitioning or
thrashing. To leverage the benifit of this counter to memcg, we should
introduce it into memory.stat. Then we could know the workingset of the
workload inside a memcg better.
Bellow is the verification of this new counter in memory.stat.
Read a file into the memory and then read it again to make these pages be
active. The size of this file is 1G. (memory.max is greater than file size)
The counters in memory.stat will be,
inactive_file 0
active_file 1073639424
workingset_refault 0
workingset_activate 0
workingset_restore 0
workingset_nodereclaim 0
Trigger the memcg reclaim by setting a lower value to memory.high, and
then some pages will be demoted into inactive list, and then some pages
in the inactive list will be evicted into the storage.
inactive_file 498094080
active_file 310063104
workingset_refault 0
workingset_activate 0
workingset_restore 0
workingset_nodereclaim 0
Then recover the memory.high and read the file into memory again. As a
result of it, the transitioning will occur. Bellow is the result of this
transitioning,
inactive_file 498094080
active_file 575397888
workingset_refault 64746
workingset_activate 64746
workingset_restore 64746
workingset_nodereclaim 0
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.com>
---
Documentation/admin-guide/cgroup-v2.rst | 3 +++
mm/memcontrol.c | 2 ++
2 files changed, 5 insertions(+)
diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
index bcc80269bb6a..0733b659e757 100644
--- a/Documentation/admin-guide/cgroup-v2.rst
+++ b/Documentation/admin-guide/cgroup-v2.rst
@@ -1329,6 +1329,9 @@ PAGE_SIZE multiple when read back.
workingset_activate
Number of refaulted pages that were immediately activated
+ workingset_restore
+ Number of transitioning of refaulted pages
+
workingset_nodereclaim
Number of times a shadow node has been reclaimed
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 5beea03dd58a..0395e479995b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1451,6 +1451,8 @@ static char *memory_stat_format(struct mem_cgroup *memcg)
memcg_page_state(memcg, WORKINGSET_REFAULT));
seq_buf_printf(&s, "workingset_activate %lu\n",
memcg_page_state(memcg, WORKINGSET_ACTIVATE));
+ seq_buf_printf(&s, "workingset_restore %lu\n",
+ memcg_page_state(memcg, WORKINGSET_RESTORE));
seq_buf_printf(&s, "workingset_nodereclaim %lu\n",
memcg_page_state(memcg, WORKINGSET_NODERECLAIM));
--
2.18.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] mm, memcg: add workingset_restore in memory.stat
2020-05-04 13:17 [PATCH v2] mm, memcg: add workingset_restore in memory.stat Yafang Shao
@ 2020-05-04 13:29 ` Michal Hocko
2020-05-04 13:40 ` Yafang Shao
0 siblings, 1 reply; 3+ messages in thread
From: Michal Hocko @ 2020-05-04 13:29 UTC (permalink / raw)
To: Yafang Shao; +Cc: akpm, hannes, linux-mm
On Mon 04-05-20 09:17:39, Yafang Shao wrote:
[...]
> diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
> index bcc80269bb6a..0733b659e757 100644
> --- a/Documentation/admin-guide/cgroup-v2.rst
> +++ b/Documentation/admin-guide/cgroup-v2.rst
> @@ -1329,6 +1329,9 @@ PAGE_SIZE multiple when read back.
> workingset_activate
> Number of refaulted pages that were immediately activated
>
> + workingset_restore
> + Number of transitioning of refaulted pages
> +
I believe something like the following would be more comprehensible
"Number of restored pages which have been detected as an active
workingset before they got reclaimed."
> workingset_nodereclaim
> Number of times a shadow node has been reclaimed
>
--
Michal Hocko
SUSE Labs
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] mm, memcg: add workingset_restore in memory.stat
2020-05-04 13:29 ` Michal Hocko
@ 2020-05-04 13:40 ` Yafang Shao
0 siblings, 0 replies; 3+ messages in thread
From: Yafang Shao @ 2020-05-04 13:40 UTC (permalink / raw)
To: Michal Hocko; +Cc: Andrew Morton, Johannes Weiner, Linux MM
On Mon, May 4, 2020 at 9:29 PM Michal Hocko <mhocko@kernel.org> wrote:
>
> On Mon 04-05-20 09:17:39, Yafang Shao wrote:
> [...]
> > diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
> > index bcc80269bb6a..0733b659e757 100644
> > --- a/Documentation/admin-guide/cgroup-v2.rst
> > +++ b/Documentation/admin-guide/cgroup-v2.rst
> > @@ -1329,6 +1329,9 @@ PAGE_SIZE multiple when read back.
> > workingset_activate
> > Number of refaulted pages that were immediately activated
> >
> > + workingset_restore
> > + Number of transitioning of refaulted pages
> > +
>
> I believe something like the following would be more comprehensible
> "Number of restored pages which have been detected as an active
> workingset before they got reclaimed."
>
Thanks.
Will update it.
> > workingset_nodereclaim
> > Number of times a shadow node has been reclaimed
> >
> --
> Michal Hocko
> SUSE Labs
--
Thanks
Yafang
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-05-04 13:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-04 13:17 [PATCH v2] mm, memcg: add workingset_restore in memory.stat Yafang Shao
2020-05-04 13:29 ` Michal Hocko
2020-05-04 13:40 ` Yafang Shao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox