lkml.org 
[lkml]   [2008]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 11/11] memcg: show reclaim_stat
* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2008-12-02 18:05:25]:

> On Mon, 1 Dec 2008 21:19:49 +0900 (JST)
> KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:
>
> > added following four field to memory.stat file.
> >
> > - recent_rotated_anon
> > - recent_rotated_file
> > - recent_scanned_anon
> > - recent_scanned_file
> >
> > it is useful for memcg reclaim debugging.
> >
> I'll put this under CONFIG_DEBUG_VM.
>

I think they'll be useful even outside for tasks that need to take
decisions, it will be nice to see what sort of reclaim is going on. I
would like to see them outside, there is no cost associated with them
and assuming we'll not change the LRU logic very frequently, we don't
need to be afraid of breaking ABI either :)

> Thanks,
> -Kame
>
> >
> > Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> > ---
> > mm/memcontrol.c | 25 +++++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > Index: b/mm/memcontrol.c
> > ===================================================================
> > --- a/mm/memcontrol.c
> > +++ b/mm/memcontrol.c
> > @@ -1799,6 +1799,31 @@ static int mem_control_stat_show(struct
> >
> > cb->fill(cb, "inactive_ratio", mem_cont->inactive_ratio);
> >
> > + {
> > + int nid, zid;
> > + struct mem_cgroup_per_zone *mz;
> > + unsigned long recent_rotated[2] = {0, 0};
> > + unsigned long recent_scanned[2] = {0, 0};
> > +
> > + for_each_online_node(nid)
> > + for (zid = 0; zid < MAX_NR_ZONES; zid++) {
> > + mz = mem_cgroup_zoneinfo(mem_cont, nid, zid);
> > +
> > + recent_rotated[0] +=
> > + mz->reclaim_stat.recent_rotated[0];
> > + recent_rotated[1] +=
> > + mz->reclaim_stat.recent_rotated[1];
> > + recent_scanned[0] +=
> > + mz->reclaim_stat.recent_scanned[0];
> > + recent_scanned[1] +=
> > + mz->reclaim_stat.recent_scanned[1];
> > + }
> > + cb->fill(cb, "recent_rotated_anon", recent_rotated[0]);
> > + cb->fill(cb, "recent_rotated_file", recent_rotated[1]);
> > + cb->fill(cb, "recent_scanned_anon", recent_scanned[0]);
> > + cb->fill(cb, "recent_scanned_file", recent_scanned[1]);
> > + }
> > +
> > return 0;
> > }
> >
> >
> >
> > --
> > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > the body to majordomo@kvack.org. For more info on Linux MM,
> > see: http://www.linux-mm.org/ .
> > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
> >
>

--
Balbir


\
 
 \ /
  Last update: 2008-12-03 15:21    [W:0.363 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site