5bb91ab5530dd002f6021b2177dc2bcf5467eebd |
|
18-Mar-2016 |
Martijn Coenen <maco@google.com> |
Don't use mem cgroups for pid accounting. Commit b82bab66 introduced the use of memory cgroups for keeping track of forked PIDs; it basically creates a separate memory cgroup for every process forked from zygote. Each such memory cgroup which also have its own LRU with (in)active file and anonymous pages. The current theory is this could potentially introduce two problems: 1) kswapd runs longer because it has to iterate over the LRUs of all mem cgroups, instead of over the LRUs of a single root mem cgroup; 2) the way kswapd reclaims things will be different also - I think it will tend to bias reclaim to smaller mem cgroups, and process private pages will end up on ZRAM swap much sooner. Until we figure this out, fall back to the CPU accounting cgroup for keeping track of forked PIDs. This leaves us with a single root mem cgroup again. We can also keep userspace lmkd enabled because it only requires the root mem cgroup. Bug: 27381069 Change-Id: Ife397a6ac232761f2adfe6f5056582be0d1b4ff1
/system/core/libprocessgroup/processgroup.cpp
|
623b56af5da59fb57abcb2d984762669c82f57e9 |
|
08-Feb-2016 |
Martijn Coenen <maco@google.com> |
Fix libprocessgroup SELinux denials. libprocessgroup checks whether it can use memory cgroups for keeping track of forked processes by seeing whether /dev/memcg/apps is writable. However, on systems with memory cgroups disabled, SELinux (correctly) no longer classifies this directory as a cgroup, and starts denying zygote access. To fix this, first check whether /dev/memcg/apps/tasks exists to see if the cgroup is mounted; only then check whether we can write to the directory. Bug: 27046965 Change-Id: I6e44cd62d8c396e20ceb162c50606b3e86f2cb3e
/system/core/libprocessgroup/processgroup.cpp
|
b82bab66f318896ebad80c1feee2347c58e3ce37 |
|
21-Jan-2016 |
Martijn Coenen <maco@google.com> |
Reuse mem cgroups for tracking forked PIDs. It turns out we were using the CPU accounting cgroups for keeping track of processes that were forked by an app without the framework's knowledge, so we could kill all of them reliably (see b/15313911 for context). Since we want to use memory cgroups for other purposes, we might as well use memory cgroups for tracking forked PIDs if they're enabled. This also gets us automatic cleanup of empty mem cgroups. Also, removed old mem cgroup mount point that is no longer used, as well as cgroup release agent code that we're not using. Change-Id: I69d5cc31c162ffa49ef6945755f41381e306cc8b
/system/core/libprocessgroup/processgroup.cpp
|
d50393057a6551c3bb498ed3a3bb7bd9eeb48225 |
|
16-Jun-2015 |
Yusuke Sato <yusukes@google.com> |
processgroup: change the polling interval for killProcessGroup() to make the function faster on average. Since killing a process takes about 40-60ms on a recent device, the previous logic tends to sleep too long. This CL does not significantly change the total timeout (old code: 204ms, new code: 200ms). Bug: 21813611 Change-Id: Ica44b2437ccccaebadcf585d7a09d993ce71a499
/system/core/libprocessgroup/processgroup.cpp
|
0badbd6565fea17be39d82eba858fa76d28920a4 |
|
29-Dec-2014 |
Elliott Hughes <enh@google.com> |
Fix missing #includes in system/core. Change-Id: I4736e8c4f7bb8bb03640d26d58243efaa67dc75c
/system/core/libprocessgroup/processgroup.cpp
|
fcc8115dcf33b547facab9c6f2f4739f85ab69c1 |
|
21-Nov-2014 |
Chih-Hung Hsieh <chh@google.com> |
Fix format string Make a format string match the type of the parameter it represents Change-Id: I0af88636448084b56450996ea9dafdba3c1fd2a3 Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org
/system/core/libprocessgroup/processgroup.cpp
|
758aeb7dadfcd29b11e8648d784ea56f31be05f3 |
|
17-Nov-2014 |
Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> |
Make mkdirAndChown do what it claims to do Currently, mkdirAndChown takes parameters for mode, uid and gid, but ignores them and hardcodes 0750, AID_SYSTEM, AID_SYSTEM instead. This doesn't matter much because so far its only invocation passes exactly those values as parameters -- but clang complains about unused parameters. Might as well make the function do what it claims to do. Change-Id: I5a8056be3278a0c5d0a576dbc061288aa0956a35 Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
/system/core/libprocessgroup/processgroup.cpp
|
67f46cb0e137edbf4a6f7014ca8a3a58484016d1 |
|
15-Oct-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #18000467: processgroup truncates buffer Change-Id: I3d98a4da9c47d83d25a11ff0ef94cfcab1feabea
/system/core/libprocessgroup/processgroup.cpp
|
2c5e7e102bc2059d22f8457db68c567b64cec963 |
|
14-Oct-2014 |
Dianne Hackborn <hackbod@google.com> |
Maybe fix issue #17969789: Shamu FR: Runtime restart while scrolling Instagram It looks like there were a couple problems in the code: - It would not 0-terminate the string it read, to make sure we didn't see garbage at the end. - It didn't reduce buf_len as it processes data in the buffer, so if we need to read more we will increase the buffer length to be longer than the actual available data. Also put in some logs about every thing we kill, so we can see what is going on when debugging. And add a special check for us trying to kill pid 0 for any reason, since doing so seem to be terminal to the caller. Change-Id: I2fe29bfef08938b8a2eb182475c0705c14d8d84f
/system/core/libprocessgroup/processgroup.cpp
|
c15dd044705aa86f63b2642c1439d5f943a80d18 |
|
20-Aug-2014 |
Colin Cross <ccross@android.com> |
processgroup: close directories opened by removeAllProcessGroups() removeAllProcessGroups and removeUidProcessGroups were calling opendir, but never called closedir. This would leave a leaked file descriptor for every /acct/uid_* directory that existed at boot. Change-Id: Ia08eccd42d6ad7a6c1c78402519ac2e53b4fc83a
/system/core/libprocessgroup/processgroup.cpp
|
cf8d1c22f7e239f502a7d209e2255d2997dbeb8b |
|
03-Jun-2014 |
Colin Cross <ccross@android.com> |
Add libprocessgroup libprocessgroup will allow Zygote to place processes in a cgroup, and then kill the process and all forked processes later. lmkd will also kill all forked processes. Bug: 15313911 Change-Id: I20404d0dbe448f1c475d2f4c61cccca462f9e544
/system/core/libprocessgroup/processgroup.cpp
|