History log of /system/extras/libpagemap/pm_process.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c641ee41319181e02e3a9afc2fc93d3989d1d41e 03-Dec-2015 Thierry Strudel <tstrudel@google.com> procrank: add proportional swap accounting am: 08ea6e722b
am: 6ca5d69923

* commit '6ca5d6992307ac6d063e4a7a1f0457afb88e033c':
procrank: add proportional swap accounting
08ea6e722b1f2d6359f54fe39c6bed82f524291c 21-Nov-2015 Thierry Strudel <tstrudel@google.com> procrank: add proportional swap accounting

Shared pages are reported in each of the sharing process swapped pages.
Compute a proportional swap usage to get a meaningful value of what each
process has in swap. Report also process unique pages swapped out.
In case ZRAM is used compute the compression ration and report the
actual RAM use of the swapped pages.

Bug: 25392275
Change-Id: I3a28c7812a09a02e1a604593615f5c6ad0340f9f
/system/extras/libpagemap/pm_process.c
72f4a2f30765fe17ba0dbf178c61fa953154108a 23-Sep-2015 Elliott Hughes <enh@google.com> Use %n to parse maps in libpagemap.

Bug: http://b/24212024
Change-Id: If00782c7af6fde30650045180512132ee5a8fd89
/system/extras/libpagemap/pm_process.c
1cd49841dce6c79a82db1582f8fcaf23325ec0e2 22-Apr-2015 daegeun.song <daegeun.song@lge.com> Do free and fclose when error occur.

Do free and fclose when error occur.

Change-Id: Ifc611579cf919eeb3fbbf1dff70e7f851a26e083
Signed-off-by: Daegeun Song <daegeun.song@lge.com>
/system/extras/libpagemap/pm_process.c
60f3c7cfc3781192ddc2e2c677e52d20ca7dd516 03-Sep-2014 Daniel Rosenberg <drosen@google.com> Revert "libpagemap: Mask off page shift to get page frame number"

This reverts commit 4bf06a51869f49d7ee3fb0163a2517ec5e33ba1f.

Bug: 17360804
Bug: 17332389
Change-Id: I7e4d55215f391f5b3f71388943e9d95e5eff6f81
/system/extras/libpagemap/pm_process.c
4bf06a51869f49d7ee3fb0163a2517ec5e33ba1f 29-Aug-2014 Daniel Rosenberg <drosen@google.com> libpagemap: Mask off page shift to get page frame number

see comment above pagemap_read() from the kernel

Bug: 17332389
Change-Id: Iaec9a2c8d2783f5c1e7ba06d9c7156305abe0453
Signed-off-by: Daniel Rosenberg <drosen@google.com>
/system/extras/libpagemap/pm_process.c
e2998ffe6f494f06b25aca372c1d35cd47390b98 17-Jun-2014 Colin Cross <ccross@android.com> libpagemap: support 64-bit kernel from 32-bit libpagemap

Use uint64_t and lseek64 to handle 64-bit virtual addresses
when libpagemap is compiled as a 32-bit library.

Change-Id: Ie4b6c7ef05aac604011f3ee28b059d9dfcd63edb
/system/extras/libpagemap/pm_process.c
d6c0e17d4fc53db1d123134866d8ec610288221a 17-Jun-2014 Colin Cross <ccross@android.com> fix libpagemap for x86_64

libpagemap was storing a virtual pfn in an int, which works on arm64
with 39 bits of virtual address space but fails on x86_64. Use an
unsigned long instead.

Fixes errors when running procrank on x86_64:
warning: could not read usage for 1

Change-Id: I171c8ee49faa51accf3c1bb69059d549aee04979
/system/extras/libpagemap/pm_process.c
bac600309b1aed0d55bee8c32c5031ba889ee517 15-May-2014 Colin Cross <ccross@android.com> libpagemap: handle zero length memory regions

/proc/pid/maps may report a zero-length memory region for a 4kB
PROT_GROWSDOWN region because it subtracts 4kB for the guard page.
Return 0 instead of -1 when this occurs, and set range_out to NULL
and len to 0. All existing callers of pm_process_pagemap_range
will not dereference range_out if len is 0.

Bug: 14683277
Change-Id: If405651ad034dda780b93fab2dc616e177a0b917
/system/extras/libpagemap/pm_process.c
d3fa8e5f889cd8fdcc9029af421ca755bd20ac1e 28-Aug-2013 Carton He <carton.he@marvell.com> libpagemap: fix memory leak in pm_process_destroy()

procrank/librank not impacted because they end quickly. But other
programs that use libpagemap and last for long time can easily see this
memory leak.

Change-Id: I8c9e9444555bef9145c9d89850987a29f15a9b3b
Signed-off-by: Carton He <carton.he@marvell.com>
/system/extras/libpagemap/pm_process.c
931563e96d9ff65d7d2a4642c8f26fb19e47be47 22-Jun-2013 Colin Cross <ccross@android.com> libpagemap: add pm_process_usage_flags

Add pm_process_usage flags to get memory usage by a process, only
counting pages with specified flags set.

Change-Id: I900b673ddbb5ae92312773a8670dd59769617268
/system/extras/libpagemap/pm_process.c
5d461218f8c38dadf831ccc52ac6e5153687cf17 16-May-2013 Colin Cross <ccross@android.com> libpagemap: fix reusing previous name for mappings with no name

Mappings that are not from a file do not have a name. The sscanf
will read all of the fields up to the name, and then leave name
untouched. This causes the previous name to be reused. Reset
name to an empty string before each call to sscanf.

Change-Id: Ib146732983eb074d0d4773be094efa0b672f5ed2
/system/extras/libpagemap/pm_process.c
76e6cb55fed01824e44306aa0485a3f8f122b228 21-Jan-2012 Selim Gurun <sgurun@google.com> Fix various issues in procrank.

Fixed these problems:
1. Page swapped bit was not extracted correctly.
2. Pages were ignored when page present bit is not set.
3. Bit operations were not correct.
4. There was a compiler warning about unsigned/signed comparision.
5. Line limit was too short for the map file. This was causing procrank
to generate a warning and remove the related process from results.

Change-Id: Ifed3913a49b15f59010cfa842090a13228074df9
/system/extras/libpagemap/pm_process.c
6620157c0f583c4c7a59d1d595589dbb2b3ae4b5 13-Jul-2011 Colin Cross <ccross@android.com> Handle EOF when reading /proc/<pid>/pagemap

Instead of handling maps with the name "[vectors]" specially,
silently ignore EOF when reading from /proc/<pid>/pagemap, which
occurs any time a a mapping is outside of the userspace range.

Change-Id: I674ade1eab6fd7732c6d9e120d0750cca5415b25
/system/extras/libpagemap/pm_process.c
5923f33ed7cf186ceac3541987efcc32beb29ab9 13-Jul-2011 Colin Cross <ccross@android.com> Ignore the vector page in /proc/<pid>/maps

In kernel 2.6.37, the vector page was added to /proc/<pid>/maps,
but because it is located above TASK_SIZE (usually 0xbf000000),
it is considered to be in the kernel's address space, not the
process', so it doesn't show up in /proc/<pid>/pagemap.

When the vector page is detected, using the name "[vectors]",
remove it from the map.

Change-Id: I5f0758bbe5d2b927056fa9fee684fea63dd0fa4b
/system/extras/libpagemap/pm_process.c
e16cb84e2324f05334d18dcf5956f20f44262b62 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/system/extras/libpagemap/pm_process.c
19ddb4b1680760e2d6863c3003976882ebd9d0fa 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/system/extras/libpagemap/pm_process.c
7341494707810f709855ea85ce03a8ec3ac8dbaf 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/system/extras/libpagemap/pm_process.c