Merge "Add shmem through" into udc-dev
This commit is contained in:
@@ -28,7 +28,8 @@ public final class ProcfsMemoryUtil {
|
|||||||
"VmHWM:",
|
"VmHWM:",
|
||||||
"VmRSS:",
|
"VmRSS:",
|
||||||
"RssAnon:",
|
"RssAnon:",
|
||||||
"VmSwap:"
|
"RssShmem:",
|
||||||
|
"VmSwap:",
|
||||||
};
|
};
|
||||||
private static final String[] VMSTAT_KEYS = new String[] {
|
private static final String[] VMSTAT_KEYS = new String[] {
|
||||||
"oom_kill"
|
"oom_kill"
|
||||||
@@ -38,7 +39,7 @@ public final class ProcfsMemoryUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS,
|
* Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS,
|
||||||
* VmSwap fields in /proc/pid/status in kilobytes or null if not available.
|
* VmSwap, RssShmem fields in /proc/pid/status in kilobytes or null if not available.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
|
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
|
||||||
@@ -46,8 +47,9 @@ public final class ProcfsMemoryUtil {
|
|||||||
output[0] = -1;
|
output[0] = -1;
|
||||||
output[3] = -1;
|
output[3] = -1;
|
||||||
output[4] = -1;
|
output[4] = -1;
|
||||||
|
output[5] = -1;
|
||||||
Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output);
|
Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output);
|
||||||
if (output[0] == -1 || output[3] == -1 || output[4] == -1) {
|
if (output[0] == -1 || output[3] == -1 || output[4] == -1 || output[5] == -1) {
|
||||||
// Could not open or parse file.
|
// Could not open or parse file.
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -56,7 +58,8 @@ public final class ProcfsMemoryUtil {
|
|||||||
snapshot.rssHighWaterMarkInKilobytes = (int) output[1];
|
snapshot.rssHighWaterMarkInKilobytes = (int) output[1];
|
||||||
snapshot.rssInKilobytes = (int) output[2];
|
snapshot.rssInKilobytes = (int) output[2];
|
||||||
snapshot.anonRssInKilobytes = (int) output[3];
|
snapshot.anonRssInKilobytes = (int) output[3];
|
||||||
snapshot.swapInKilobytes = (int) output[4];
|
snapshot.rssShmemKilobytes = (int) output[4];
|
||||||
|
snapshot.swapInKilobytes = (int) output[5];
|
||||||
return snapshot;
|
return snapshot;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,6 +104,7 @@ public final class ProcfsMemoryUtil {
|
|||||||
public int rssInKilobytes;
|
public int rssInKilobytes;
|
||||||
public int anonRssInKilobytes;
|
public int anonRssInKilobytes;
|
||||||
public int swapInKilobytes;
|
public int swapInKilobytes;
|
||||||
|
public int rssShmemKilobytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Reads and parses selected entries of /proc/vmstat. */
|
/** Reads and parses selected entries of /proc/vmstat. */
|
||||||
|
|||||||
@@ -2290,7 +2290,8 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
managedProcess.processName, managedProcess.pid, managedProcess.oomScore,
|
managedProcess.processName, managedProcess.pid, managedProcess.oomScore,
|
||||||
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
|
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
|
||||||
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
|
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
|
||||||
gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices));
|
gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices,
|
||||||
|
snapshot.rssShmemKilobytes));
|
||||||
}
|
}
|
||||||
// Complement the data with native system processes. Given these measurements can be taken
|
// Complement the data with native system processes. Given these measurements can be taken
|
||||||
// in response to LMKs happening, we want to first collect the managed app stats (to
|
// in response to LMKs happening, we want to first collect the managed app stats (to
|
||||||
@@ -2309,7 +2310,8 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
-1001 /*Placeholder for native processes, OOM_SCORE_ADJ_MIN - 1.*/,
|
-1001 /*Placeholder for native processes, OOM_SCORE_ADJ_MIN - 1.*/,
|
||||||
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
|
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
|
||||||
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
|
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
|
||||||
gpuMemPerPid.get(pid), false /* has_foreground_services */));
|
gpuMemPerPid.get(pid), false /* has_foreground_services */,
|
||||||
|
snapshot.rssShmemKilobytes));
|
||||||
}
|
}
|
||||||
return StatsManager.PULL_SUCCESS;
|
return StatsManager.PULL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user