zygote and it's children, including system_server and all app processes,
currently start in root cgroup. Most app threads eventually join either
bg_noninteractive or foreground cgroups, but we can't depend on that.
This change puts system_server and all app processes in the system
default cgroup aka foreground instead.
See also bug
6376294 which will provide a more general way of configuring cgroups.
Excerpt of ps -P -t before fix. Note that app u0_a7 has some threads in root cgroup:
USER PID PPID VSIZE RSS PCY WCHAN PC NAME
root 91 1 441308 35052
ffffffff 400d4bf8 S zygote
root 1838 91 441308 35052
c009c0c4 400d5bdc S ReferenceQueueD
root 1840 91 441308 35052
c009c0c4 400d5bdc S FinalizerDaemon
root 1842 91 441308 35052
c009c0c4 400d5bdc S FinalizerWatchd
u0_a7 1378 91 461036 28676
ffffffff 400d59b0 S com.google.android.calendar
u0_a7 1380 1378 461036 28676
c009c0c4 400d5bdc S GC
u0_a7 1383 1378 461036 28676
c00827fc 400d5494 S Signal Catcher
u0_a7 1384 1378 461036 28676
c0408d14 400d569c S JDWP
u0_a7 1385 1378 461036 28676
c009c0c4 400d5bdc S Compiler
u0_a7 1386 1378 461036 28676
c009c0c4 400d5bdc S ReferenceQueueD
u0_a7 1387 1378 461036 28676
c009c0c4 400d5bdc S FinalizerDaemon
u0_a7 1388 1378 461036 28676
c009c0c4 400d5bdc S FinalizerWatchd
u0_a7 1389 1378 461036 28676 fg
c035ac7c 400d4ad4 S Binder_1
u0_a7 1390 1378 461036 28676 fg
c035ac7c 400d4ad4 S Binder_2
u0_a7 1393 1378 461036 28676
c009c0c4 400d5bdc S pool-1-thread-1
u0_a7 1395 1378 461036 28676 bg
c009c0c4 400d5bdc S AsyncTask #1
u0_a7 1410 1378 461036 28676
c009c0c4 400d5bdc S pool-2-thread-1
u0_a7 1411 1378 461036 28676 bg
c009c0c4 400d5bdc S AsyncTask #2
u0_a7 1428 1378 461036 28676
c01258cc 400d59b0 S AsyncQueryWorke
u0_a7 1469 1378 461036 28676 bg
c009c0c4 400d5bdc S AsyncTask #3
u0_a7 1563 1378 461036 28676
c009c0c4 400d5bdc S pool-3-thread-1
u0_a7 1564 1378 461036 28676 bg
c009c0c4 400d5bdc S AsyncTask #4
After the fix, now only kernel workers and native system services run in root cgroup:
USER PID PPID VSIZE RSS PCY WCHAN PC NAME
root 91 1 441304 35048
ffffffff 4007abf8 S zygote
root 1490 91 441304 35048
c009c0c4 4007bbdc S ReferenceQueueD
root 1491 91 441304 35048
c009c0c4 4007bbdc S FinalizerDaemon
root 1493 91 441304 35048
c009c0c4 4007bbdc S FinalizerWatchd
u0_a7 1335 91 460032 32124 bg
ffffffff 4007b9b0 S com.google.android.calendar
u0_a7 1337 1335 460032 32124 bg
c009c0c4 4007bbdc S GC
u0_a7 1338 1335 460032 32124 bg
c00827fc 4007b494 S Signal Catcher
u0_a7 1341 1335 460032 32124 bg
c0408d14 4007b69c S JDWP
u0_a7 1342 1335 460032 32124 bg
c009c0c4 4007bbdc S Compiler
u0_a7 1343 1335 460032 32124 bg
c009c0c4 4007bbdc S ReferenceQueueD
u0_a7 1344 1335 460032 32124 bg
c009c0c4 4007bbdc S FinalizerDaemon
u0_a7 1345 1335 460032 32124 bg
c009c0c4 4007bbdc S FinalizerWatchd
u0_a7 1346 1335 460032 32124 fg
c035ac7c 4007aad4 S Binder_1
u0_a7 1347 1335 460032 32124 fg
c035ac7c 4007aad4 S Binder_2
u0_a7 1351 1335 460032 32124 bg
c009c0c4 4007bbdc S AsyncTask #1
u0_a7 1380 1335 460032 32124 bg
c01258cc 4007b9b0 S AsyncQueryWorke
u0_a7 1417 1335 460032 32124 bg
c009c0c4 4007bbdc S AsyncTask #2
u0_a7 1452 1335 460032 32124 bg
c009c0c4 4007bbdc S AsyncTask #3
u0_a7 1555 1335 460032 32124 bg
c01258cc 4007b9b0 S Thread-134
u0_a7 1691 1335 460032 32124 bg
c009c0c4 4007bbdc S pool-3-thread-1
u0_a7 1692 1335 460032 32124 bg
c009c0c4 4007bbdc S AsyncTask #4
Not shown, but system_server also runs in fg (it already did; this change
didn't affect that).
Change-Id: I516960a102c9d59fc9bfb5888d90a7645d178dcf