summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2013-06-21 16:53:03 -0700
committerColin Cross <ccross@android.com>2013-06-24 14:56:58 -0700
commit9a209c380278ca0da6ec7b3927c957b06b685a7a (patch)
tree303d0b66d4ecb76ceadaa354debeb07aa600fcd8
parentb46165ce8c58e4c325dae07bf898a6d8a109c70d (diff)
downloadextras-9a209c380278ca0da6ec7b3927c957b06b685a7a.tar.gz
librank: add flag to show only KSM pages
Passing -k will cause librank to only show KSM pages. The RSS column will approximate the memory used before KSM, and PSS will show the memory used after KSM. Change-Id: I62310b2cda97316b835cf7ebe51b5155872c37dc
-rw-r--r--librank/librank.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/librank/librank.c b/librank/librank.c
index 22985465..ec6a01ea 100644
--- a/librank/librank.c
+++ b/librank/librank.c
@@ -240,6 +240,7 @@ int main(int argc, char *argv[]) {
{"all", 0, 0, 'a'},
{"cached", 0, 0, 'c'},
{"nocached", 0, 0, 'C'},
+ {"ksm", 0, 0, 'k'},
{"help", 0, 0, 'h'},
{"pss", 0, 0, 'p'},
{"uss", 0, 0, 'u'},
@@ -251,7 +252,7 @@ int main(int argc, char *argv[]) {
{"perm", required_argument, 0, 'm'},
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, "acChm:pP:uvrsR", longopts, NULL);
+ c = getopt_long(argc, argv, "acChkm:pP:uvrsR", longopts, NULL);
if (c < 0) {
break;
}
@@ -268,6 +269,10 @@ int main(int argc, char *argv[]) {
required_flags = PM_PAGE_SWAPBACKED;
flags_mask = PM_PAGE_SWAPBACKED;
break;
+ case 'k':
+ required_flags = PM_PAGE_KSM;
+ flags_mask = PM_PAGE_KSM;
+ break;
case 'h':
usage(argv[0]);
exit(EXIT_SUCCESS);
@@ -431,6 +436,7 @@ static void usage(char *myname) {
" -m [r][w][x] Only list pages that exactly match permissions\n"
" -c Only show cached (storage backed) pages\n"
" -C Only show non-cached (ram/swap backed) pages\n"
+ " -k Only show pages collapsed by KSM\n"
" -h Display this help screen.\n",
myname);
}