)]}'
{
  "log": [
    {
      "commit": "787ddbc8a57b34d8d74dfd19b47ab5c816ae2af3",
      "tree": "60b4fa4598646e0b8a1cb74434801b76c432a5e4",
      "parents": [
        "47580ff76d9d9ecbaa9345a9aa02e95bd6bbce33"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Tue Oct 08 23:41:34 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Tue Oct 08 23:42:55 2024 +0000"
      },
      "message": "Reapply \"libprocessgroup: Combine all 3 ActivateControllers imple...\"\n\nThis reverts commit 0fa49253a484fc0c99d067ade57a4978059b3a95.\n\nChange-Id: I83121ff295caaabc0a2fd8a606ee2d52dacb0174\n"
    },
    {
      "commit": "a09ee8ece68376835e7dc96e439ec4854b90e46c",
      "tree": "13a76e8e591d6ce6afec92846165633b3dcb99dc",
      "parents": [
        "eb34156abe7fa7bbe3d964cd272d629922d46ff2"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Tue Oct 08 23:41:27 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Tue Oct 08 23:42:49 2024 +0000"
      },
      "message": "Reapply \"libprocessgroup: Remove cgroup.rc file\"\n\nThis reverts commit 972a2d30f8a3f260967b747592f4e8cdc560e01c.\n\nChange-Id: Icdf2824675e515ea3656b1c58ac55160ecc337df\n"
    },
    {
      "commit": "972a2d30f8a3f260967b747592f4e8cdc560e01c",
      "tree": "da7fbb7363fcfa5922a8707bba77d926b815e9f5",
      "parents": [
        "691ad736bb4088a634e2766334c17ae8a2bfbe79"
      ],
      "author": {
        "name": "Priyanka Advani (xWF)",
        "email": "padvani@google.com",
        "time": "Tue Oct 08 18:54:37 2024 +0000"
      },
      "committer": {
        "name": "Priyanka Advani (xWF)",
        "email": "padvani@google.com",
        "time": "Tue Oct 08 18:54:37 2024 +0000"
      },
      "message": "Revert \"libprocessgroup: Remove cgroup.rc file\"\n\nRevert submission 3212512\n\nReason for revert: Droidmonitor created revert due to b/372273614. Will be verifying through ABTD before submission.\n\nReverted changes: /q/submissionid:3212512\n\nChange-Id: I37568516e973cb940f1229d52f94b8dc801da2ab\n"
    },
    {
      "commit": "0fa49253a484fc0c99d067ade57a4978059b3a95",
      "tree": "ddd1f97b379e1688d64f0f3c4861c33fc315433e",
      "parents": [
        "5161033f660250858ac0088a70ec57f7b9b26745"
      ],
      "author": {
        "name": "Priyanka Advani (xWF)",
        "email": "padvani@google.com",
        "time": "Tue Oct 08 18:54:37 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 18:54:40 2024 +0000"
      },
      "message": "Revert \"libprocessgroup: Combine all 3 ActivateControllers imple...\"\n\nRevert submission 3212512\n\nReason for revert: Droidmonitor created revert due to b/372273614. Will be verifying through ABTD before submission.\n\nReverted changes: /q/submissionid:3212512\n\nChange-Id: I3dadc0b7bccfe28bb067a93df2acf2c3ea0f9920\n"
    },
    {
      "commit": "5161033f660250858ac0088a70ec57f7b9b26745",
      "tree": "e56db1be7b105646d164ea044d3a342dc8aba459",
      "parents": [
        "c31c5a75c8c275ca33bb44ba1faaf0e1f327a692"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Thu Aug 08 16:32:05 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Thu Oct 03 17:01:34 2024 +0000"
      },
      "message": "libprocessgroup: Combine all 3 ActivateControllers implementations into one\n\nRemove this code duplication and use just one interface.\n\nBug: 349105928\nChange-Id: Id8c7186d9665e9087a654f5781b7593b06349160\n"
    },
    {
      "commit": "ae4ce8ccc5933c8d1d557930021a0715bdaacf64",
      "tree": "d223081997c862325e59f2877579fc36a2171c8f",
      "parents": [
        "8dd9d4553453075cd8f6e2eebe34ade5b8df5b7a"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Thu Aug 08 16:11:21 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Thu Oct 03 17:01:34 2024 +0000"
      },
      "message": "libprocessgroup: Remove cgroup.rc file\n\nThe cgroup.rc file was introduced in 192aee782 (\"libprocessgroup: Add\nsupport for task profiles\") back with the initial support for task\nprofiles. It was intended to optimize performance associated with cgroup\noperations. However over time, supporting this file led to making\nlibprocessgroup code more complicated (such as the cgrouprc LLNDK\ninterface), and the file ended up getting mmaped into nearly every\nprocess on Android even though only a handful of them actually use it.\nReplacing this file with reading and parsing of cgroup information on\ndemand allows us to simplify and shrink libprocessgroup, and eliminates\nthousands of unused mappings without negatively affecting boot time or\nother performance metrics.\n\nBug: 349105928\nTest: Verified with memcg v2 and MaxActivationDepth 1 on Cuttlefish, Raven, and Mokey\nChange-Id: Ic3f01fdf7fda89a56ab80657e1cf4573156273e6\n"
    },
    {
      "commit": "ae0b2903872e1b8e8865230f332bf69690270104",
      "tree": "59dca0e8dbca813abe63b9abc286033f4b1814c8",
      "parents": [
        "780ea239f2fc14a324277a9beab99a4540919329"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Mon Aug 05 18:18:35 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Mon Aug 12 21:15:09 2024 +0000"
      },
      "message": "libprocessgroup: Convert libprocessgroup_util to static library\n\nTo avoid duplicate symbol linker error and prep for addition of json\ndescriptor reading and activation functions in upcoming changes.\n\nBug: 349105928\nTest: m\nChange-Id: I5cd663d6007ef330b872b8cf8ed046ee68b6d736\n"
    },
    {
      "commit": "28b37f27048679874f1e1185fe9f852d36872e73",
      "tree": "5653ed424ca801dd9b7fff78fe75f1a698d1d665",
      "parents": [
        "283b2037ce3ec675b10543a4d03dbaed174f2109"
      ],
      "author": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Fri Jun 07 18:34:19 2024 +0000"
      },
      "committer": {
        "name": "T.J. Mercier",
        "email": "tjmercier@google.com",
        "time": "Tue Jun 18 15:50:21 2024 +0000"
      },
      "message": "libprocessgroup: Add MaxActivationDepth\n\nCgroup v2 controllers can be enabled in a subtree of the shared\nhierarchy. That allows users to limit the number of cgroups with a\ncontroller enabled to less than the total number of cgroups. [1]\n\nThere are costs for each cgroup. Kernel memory is used for each cgroup,\nplus additional memory for each active controller in each cgroup. Some\nkernel operations scale with the number of cgroups (with a given\ncontroller enabled), so it can be desirable to minimize the number of\ncgroups with that controller enabled.\n\nThis change allows each v2 controller configuration to specify a maximum\nactivation depth, past which the controller will not be activated deeper\nin the Android cgroup v2 hierarchy. The hierarchy root is defined as\ndepth 0. MaxActivationDepth is the field name for this purpose for\ncontrollers in the Controllers array under Cgroups2 in cgroups.json.\n\nHere are two examples:\n\n\"MaxActivationDepth\": 1\nThis will activate the controller in every per-application cgroup, but\nnot in the per-process cgroups below.\n\n/sys/fs/cgroup                depth\u003d0  active\u003dtrue  (controller listed in cgroup.subtree_control)\n/sys/fs/cgroup/uid_0          depth\u003d1  active\u003dtrue  (controller NOT listed in cgroup.subtree_control)\n/sys/fs/cgroup/uid_0/pid_100  depth\u003d2  active\u003dfalse (controller NOT listed in cgroup.subtree_control)\n\nThis can also be used with\nPRODUCT_CGROUP_V2_SYS_APP_ISOLATION_ENABLED :\u003d true.\n\n\"MaxActivationDepth\": 1\nThis will activate the controller only at the app / system level, but\nnot in per-application cgroups below. This results in a total of only\n3 cgroups with the controller enabled (root, apps, system).\n\n/sys/fs/cgroup                         depth\u003d0  active\u003dtrue  (controller listed in cgroup.subtree_control)\n/sys/fs/cgroup/apps                    depth\u003d1  active\u003dtrue  (controller NOT listed in cgroup.subtree_control)\n/sys/fs/cgroup/apps/uid_10000          depth\u003d2  active\u003dfalse (controller NOT listed in cgroup.subtree_control)\n/sys/fs/cgroup/apps/uid_10000/pid_100  depth\u003d3  active\u003dfalse (controller NOT listed in cgroup.subtree_control)\n\n[1] https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#enabling-and-disabling\n\nBug: 346584259\nTest: Cuttlefish with memcg v2\nChange-Id: I62109ea935261c51fc30b2054c4d28d0360f7985\n"
    }
  ]
}
