From: Ying Han <yinghan@google.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>, Michal Hocko <mhocko@suse.cz>,
Balbir Singh <bsingharora@gmail.com>,
Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>, Mel Gorman <mel@csn.ul.ie>,
Pavel Emelyanov <xemul@openvz.org>,
linux-mm@kvack.org
Subject: Re: memcg: add mlock statistic in memory.stat
Date: Fri, 13 Jan 2012 14:27:53 -0800 [thread overview]
Message-ID: <CALWz4ize9VQxH0UUEe+hQ3T5deJHeSMUh9SPyG=vix=wkzKHFg@mail.gmail.com> (raw)
In-Reply-To: <20120113091006.43de8ca5.kamezawa.hiroyu@jp.fujitsu.com>
On Thu, Jan 12, 2012 at 4:10 PM, KAMEZAWA Hiroyuki
<kamezawa.hiroyu@jp.fujitsu.com> wrote:
> On Thu, 12 Jan 2012 11:13:00 -0800
> Ying Han <yinghan@google.com> wrote:
>
>> On Wed, Jan 11, 2012 at 7:21 PM, KAMEZAWA Hiroyuki
>> <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>> > On Wed, 11 Jan 2012 16:50:09 -0800
>> > Ying Han <yinghan@google.com> wrote:
>> >
>> >> On Wed, Jan 11, 2012 at 3:59 PM, KAMEZAWA Hiroyuki
>> >> <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>> >> > On Wed, 11 Jan 2012 15:17:42 -0800 (PST)
>> >> > Hugh Dickins <hughd@google.com> wrote:
>> >> >
>> >> >> On Wed, 11 Jan 2012, Ying Han wrote:
>> >> >>
>> >> >> > We have the nr_mlock stat both in meminfo as well as vmstat system wide, this
>> >> >> > patch adds the mlock field into per-memcg memory stat. The stat itself enhances
>> >> >> > the metrics exported by memcg, especially is used together with "uneivctable"
>> >> >> > lru stat.
>> >> >> >
>> >> >> > --- a/include/linux/page_cgroup.h
>> >> >> > +++ b/include/linux/page_cgroup.h
>> >> >> > @@ -10,6 +10,7 @@ enum {
>> >> >> > /* flags for mem_cgroup and file and I/O status */
>> >> >> > PCG_MOVE_LOCK, /* For race between move_account v.s. following bits */
>> >> >> > PCG_FILE_MAPPED, /* page is accounted as "mapped" */
>> >> >> > + PCG_MLOCK, /* page is accounted as "mlock" */
>> >> >> > /* No lock in page_cgroup */
>> >> >> > PCG_ACCT_LRU, /* page has been accounted for (under lru_lock) */
>> >> >> > __NR_PCG_FLAGS,
>> >> >>
>> >> >> Is this really necessary? KAMEZAWA-san is engaged in trying to reduce
>> >> >> the number of PageCgroup flags, and I expect that in due course we shall
>> >> >> want to merge them in with Page flags, so adding more is unwelcome.
>> >> >> I'd have thought that with memcg_ hooks in the right places,
>> >> >> a separate flag would not be necessary?
>> >> >>
>> >> >
>> >> > Please don't ;)
>> >> >
>> >> > NR_UNEIVCTABLE_LRU is not enough ?
>> >>
>> >> Seems not.
>> >>
>> >> The unevictable lru includes more than mlock()'d pages ( SHM_LOCK'd
>> >> etc). There are use cases where we like to know the mlock-ed size
>> >> per-cgroup. We used to archived that in fake-numa based container by
>> >> reading the value from per-node meminfo, however we miss that
>> >> information in memcg. What do you think?
>> >>
>> >
>> > Hm. The # of mlocked pages can be got sum of /proc/<pid>/? ?
>>
>> That is tough. Then we have to do the calculation by adding up all the
>> pids within a cgroup.
>>
>> > BTW, Roughly..
>> >
>> > (inactive_anon + active_anon) - rss = # of unlocked shm.
>> >
>> > cache - (inactive_file + active_file) = total # of shm
>> >
>> > Then,
>> >
>> > (cache - (inactive_file + active_file)) - ((inactive_anon + active_anon) - rss)
>> > = cache + rss - (sum of inactive/actige lru)
>> > = locked shm.
>> >
>> > Hm, but this works only when unmapped swapcache is small ;)
>>
>> We might be getting a rough number. But we have use cases relying on
>> more accurate output. Thoughts?
>>
> If we need mega-byte order accuracy, above will work enough.
> But ok, having stats seems useful because meminfo has it ;)
Thanks.
>
> For your input, I'd like to post an updated RFC patch to do page state accounting
> without additional bits to pc->flags, today. With that, you can rely on PG_mlocked.
>
> By that patch, I know we can make use of page-flags by some logic but am still
> looking for more efficient way...
Thank you for the heads up. It makes sense to me to look at your
patchset first, and then the mlock stat patch comes after that.
--Ying
>
> Thanks,
> -Kame
>
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-01-13 22:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-11 22:41 Ying Han
2012-01-11 23:17 ` Hugh Dickins
2012-01-11 23:59 ` KAMEZAWA Hiroyuki
2012-01-12 0:50 ` Ying Han
2012-01-12 3:21 ` KAMEZAWA Hiroyuki
2012-01-12 19:13 ` Ying Han
2012-01-13 0:10 ` KAMEZAWA Hiroyuki
2012-01-13 22:27 ` Ying Han [this message]
2012-01-12 12:54 ` Michal Hocko
2012-01-12 19:09 ` Ying Han
2012-01-12 20:44 ` Michal Hocko
2012-01-13 22:24 ` Ying Han
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALWz4ize9VQxH0UUEe+hQ3T5deJHeSMUh9SPyG=vix=wkzKHFg@mail.gmail.com' \
--to=yinghan@google.com \
--cc=bsingharora@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=mhocko@suse.cz \
--cc=riel@redhat.com \
--cc=xemul@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox