From: Xiaokang <xiaokang.qin@intel.com>
To: Dave Hansen <dave.hansen@intel.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Cc: "Yin, Fengwei" <fengwei.yin@intel.com>
Subject: Re: [PATCH] proc/smaps: add proportional size of anonymous page
Date: Tue, 11 Nov 2014 22:40:31 +0800 [thread overview]
Message-ID: <54621FDF.8090304@intel.com> (raw)
In-Reply-To: <5460EFC9.7060906@intel.com>
On 11/11/2014 01:03 AM, Dave Hansen wrote:
> On 11/10/2014 12:48 AM, Qin, Xiaokang wrote:
>> For some case especially under Android, anonymous page sharing is common, for example:
>> 70323000-70e41000 rw-p 00000000 fd:00 120004 /data/dalvik-cache/x86/system@framework@boot.art
>> Size: 11384 kB
>> Rss: 8840 kB
>> Pss: 927 kB
>> Shared_Clean: 5720 kB
>> Shared_Dirty: 2492 kB
>> Private_Clean: 16 kB
>> Private_Dirty: 612 kB
>> Referenced: 7896 kB
>> Anonymous: 3104 kB
>> PropAnonymous: 697 kB
>
> Please don't top post.
>
>> The only Anonymous here is confusing to me. What I really want to
>> know is how many anonymous page is there in Pss. After exposing
>> PropAnonymous, we could know 697/927 is anonymous in Pss.
>> I suppose the Pss - PropAnonymous = Proportional Page cache size for
>> file based memory and we want to break down the page cache into
>> process level, how much page cache each process consumes.
>
> Ahh, so you're talking about the anonymous pages that result from
> copy-on-write copies of private file mappings? That wasn't very clear
> from the description at all.
Yes, sorry for the unclear description.
>
> I'll agree that this definitely provides a bit of data that we didn't
> have before, albeit a fairly obscure one.
>
> But, what's the goal of this patch? Why are you doing this? Was there
> some application whose behavior you were not able to explain before, but
> can after this patch?
Under Android, when user switches the application the previous
application will not exit but switch to background so that next time
this application could be resumed to foreground very quickly.
So there may be many applications running at background and Android
introduces lowmemory killer to kill processes to free memory according
to oom_adj when memory is short. Some processes with high value of
oom_adj will be killed first like the background running non-critical
application. The memory used by these processes could be treated as
"free" because it could be freed by killing. Hence under Android the
"free" RAM is composed of: 1) memory using by non-critical application
that could be killed easily, 2) page cache, 3) physical free page. We
are using sum of Pss in smaps to measure the process consumed memory for
1) and get the info for 2) 3) from /proc/meminfo. Then we have the
problem that file based memory will be double accounted in 1) and 2). To
mitigate the double accounting issue here, we need to know the double
accounting part - proportional page cache size, and do the deduction.
If the goal is providing a "Proportional Page
> cache size", why do that in an indirect way? Have you explored doing
> the same measurement with /proc/$pid/pagemap? Is it possible with that
> interface?
>
I checked the flags in /proc/kpageflags but have no idea about what
flags should be used to identify the pagecache. It will be appreciated
if you could provide some advice.
--
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>
next prev parent reply other threads:[~2014-11-11 14:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-07 8:31 [PATCH] proc/smaps: add proportional size of anonymous page Xiaokang Qin
2014-11-07 21:34 ` Dave Hansen
2014-11-10 8:48 ` Qin, Xiaokang
2014-11-10 17:03 ` Dave Hansen
2014-11-11 14:40 ` Xiaokang [this message]
2014-11-11 15:22 ` Dave Hansen
2014-11-10 9:29 ` Xiaokang
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=54621FDF.8090304@intel.com \
--to=xiaokang.qin@intel.com \
--cc=dave.hansen@intel.com \
--cc=fengwei.yin@intel.com \
--cc=linux-mm@kvack.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;
as well as URLs for NNTP newsgroup(s).