apps forked from zygote run in default cgroup

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
1 file changed