)]}'
{
  "log": [
    {
      "commit": "fc4f698dca5997b0356de4d90d57e459b66eef15",
      "tree": "509c8c97ec6b0c839a195a7d9ce0ad6f5a15ec1d",
      "parents": [
        "1bff99f706a1b1a4c1799e0f037d9f59f303587a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Nov 09 16:00:38 2020 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Nov 10 17:57:41 2020 +0000"
      },
      "message": "Print CC collector object addresses on failing assertion\n\nTest: art/test/testrunner/testrunner.py\nBug: 139525088\nChange-Id: I499ab2de7caba5baacec3049ca954fbb2859edf0\n"
    },
    {
      "commit": "ae7168e19f886ed43ed200f9b0e769613df485f9",
      "tree": "0c7169d33b71d643957e1acdaffc0ff61d4526fb",
      "parents": [
        "5e8e5161e5f5a1e944f5bc6fd2ef893e0a33551b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Oct 09 15:13:29 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 12 15:42:21 2020 +0000"
      },
      "message": "Remove unused image space order argument\n\nBug: 160683548\nTest: Treehugger\nChange-Id: I249d2891b645fa103106ee946f014b9ce362cbda\n"
    },
    {
      "commit": "6732b8057061ee753a9ff7cc6d79c2edd0a33168",
      "tree": "f807889b8ec8bca772ce05b212a99f596c6ff160",
      "parents": [
        "bfe8fc80767511676eae739e0924377dfc6c6089"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Oct 09 14:21:27 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 12 09:11:34 2020 +0000"
      },
      "message": "Remove the ability to generate an image in image_space.cc\n\nIn mainline, on-device signing will create image space upon APEX update.\n\nBug: 160683548\nTest: m test-art-host-gtest \u0026\u0026 art/test.py --host -r\nChange-Id: I6498336512040c922a545d6362acec3326220f77\n"
    },
    {
      "commit": "fd061070700817add2c15149e4098bab4eb8ccdd",
      "tree": "af2e90ad8cf7850be8a690a4c9b6b1292e0231ba",
      "parents": [
        "2e299f4d0eb8e2fd432c98b83f3f3c6ddd09c0f5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 01 13:51:56 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 09 10:23:21 2020 +0000"
      },
      "message": "Remove unused code from dalvik.system.VMDebug.\n\nTest: m\nBug: 165361458\nChange-Id: Ic2cc2515a0af79d4541c16c0b3057980ada2a869\n"
    },
    {
      "commit": "4717175e40a19e79af904dfb7b7dd13f046debd7",
      "tree": "426f040eacf5a8305f8bb8d504bd509824d984c8",
      "parents": [
        "1faacf59b9f74e9d2de4e0331ef0cdfcf132225d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 31 15:03:20 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 07 07:29:59 2020 +0000"
      },
      "message": "Move code item to the data pointer and remove code_item_offset.\n\nThis saves 4 bytes on 32bit and 8 bytes on 64bit on ArtMethod.\n\nAlso update nterp to directly fetch the code item from the data pointer.\n\nTest: test.py\nBug: 112676029\n\nChange-Id: Ic01f43c7ccf2cbce1ec517478e81362232d36371\n"
    },
    {
      "commit": "2d4552035130474bdad7f7f30ffe50bc5f9d5d85",
      "tree": "d82bad85eababe43271fa9a98694891ad3c6da2b",
      "parents": [
        "4db5ea400d1a641c830542f056ab14578fdabebd"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 28 16:22:10 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 28 18:16:00 2020 +0000"
      },
      "message": "A few more inclusive language updates\n\nBased on:\n  https://source.android.com/setup/contribute/respectful-code\n\n#inclusivefixit\n\nBug: 161336379\nBug: 161896447\nTest: art/test.py --host --64\nChange-Id: Ieb9af8f5abde2d2e75a2d490e4d3d5c621859a7c\n"
    },
    {
      "commit": "346fd964a826cfb5626582452b7519c04aee2f8a",
      "tree": "49fb6cf2ab865391ba4027389b0049474df38c7b",
      "parents": [
        "d3ee902ed06b635eedebc796543a67299eb6cd05"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 27 16:51:00 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 28 11:13:37 2020 +0000"
      },
      "message": "More inclusive language in the runtime\n\nTest: m\nBug: 161896447\nBug: 161850439\nBug: 161336379\nChange-Id: Iabc29fa43b4b5a403699d6bca95e9a2cb8945d77\n"
    },
    {
      "commit": "3c98d6989b3556bd81f67d69190561a16dfc22b8",
      "tree": "df0af80b708bbae14b093ae763d4773329e23062",
      "parents": [
        "6395908ae441946b5241906dff5aec2099444179"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 27 16:25:54 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 28 10:49:20 2020 +0000"
      },
      "message": "Inclusive language fixes in ART\u0027s garbage collector.\n\nUpdate language to comply with Android’s inclusive language guidance.\nSee https://source.android.com/setup/contribute/respectful-code for\nreference.\n\n#inclusivefixit\n\nTest: Build ART and run ART tests\nBug: 161336379\nBug: 161896447\nChange-Id: Ib4aef98db2a9fd1031a076af0eab3fcb4cf6afef\n"
    },
    {
      "commit": "b5a0e91e38dfd10bf6c532e071a8712cb7cca957",
      "tree": "8af1d8fa25900cdb807925a61880c06937eb618c",
      "parents": [
        "0740eeb24d47105cb7131a248450aedb9ef70bcd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 23 10:54:47 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 27 17:23:02 2020 +0000"
      },
      "message": "Suppress explicit gc logging in libcore tests\n\nThese logs are so frequent it is difficult to read the output logs. On\na recent run I got ~86% of the lines in the output were the explicit\nGC logs. This bloated the log file to ~80 mb, making examining it with\na web-browser difficult. This change should drastically reduce the\nsize.\n\nTest: manual\nBug: 161420453\nChange-Id: I2cdc77814891d125f6a6bb69decd2c68b3fa0f5b\n"
    },
    {
      "commit": "aacf977a3b3af644a7e2eb58d8e56a23d1f3d215",
      "tree": "6a595bf88f3124e61c826bcd72520dd406664f1e",
      "parents": [
        "4ef451aecd4008ccee2ebf6136a70ed6a5c14717"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 22 21:51:00 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 23 13:18:06 2020 +0000"
      },
      "message": "Reword some comments to be more inclusive\n\nAlso corrects a typo s/He/We/.\n\nBug: 161336379\nBug: 161850439\nBug: 161896447\nTest: m\nChange-Id: Ie8e37310eb777b7ee41a13f8894e99795c29a98a\n"
    },
    {
      "commit": "ce0d0079e89e0238a334fdadba09c43940e3adcb",
      "tree": "0213e15afbccc9fecd29c5fed28947180820c762",
      "parents": [
        "fb2967e927e03e153a2e3d700d208f743a47d43e"
      ],
      "author": {
        "name": "Pin-Chuan Liu",
        "email": "flash.liu@mediatek.com",
        "time": "Fri May 29 11:57:36 2020 +0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Jun 12 20:04:31 2020 +0000"
      },
      "message": "separate madvise calling from critical section\n\nmadvise at large space could spend more time,\nand let critical section takes longer\n\nseparate it out to speed up.\n\nBug: 158620760\nBug: 158861776\nTest: art/test.py --host\nChange-Id: I6adfb0e1f962c2fbf6ee559c56755285761b4220\n"
    },
    {
      "commit": "9974e3cdc1564edc3143b90d7bb2a416f1f887e7",
      "tree": "4f9746e6b237b2a17cc1e2543a141817d4946c19",
      "parents": [
        "2d19902c3d140c7b9b1d7ae905bd1023a4e649a1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 10 16:27:06 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:06:12 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum).\n\nPass enums by value instead of const reference.\n\nDo not generate operator\u003c\u003c sources for headers that have no\nenums or no declarations of operator\u003c\u003c. Do not define the\noperator\u003c\u003c for flag enums; these were unused anyway.\n\nAdd generated operator\u003c\u003c for some enums in nodes.h . Change\nthe operator\u003c\u003c for ComparisonBias so that the graph\nvisualizer can use it but do not use the generated\noperator\u003c\u003c yet as that would require changing checker tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ifd4c455c2fa921a9668c966a13068d43b9c6e173\n"
    },
    {
      "commit": "3337c7d7d61a49e83c839f06b51d6e9cda82d972",
      "tree": "fed39cc24f8dd1b9273f452dda2d1d0ca811f4b2",
      "parents": [
        "c5588c48b07b482ce4ce42267a5c55100c000ba0",
        "3d189432e6ce22f6b16a2ba3ebb082e58b247041"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon May 18 19:36:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 18 19:36:34 2020 +0000"
      },
      "message": "Revert^4 \"Handle OOM situation in java-heap more aggressively\" am: 3d189432e6\n\nChange-Id: I83c90ce4c7a5639dd722106b5b905a0167c36642\n"
    },
    {
      "commit": "3d189432e6ce22f6b16a2ba3ebb082e58b247041",
      "tree": "8a7d0141d228783563e80bbcc66277e7c41c437e",
      "parents": [
        "52173968b88ff0a989b5ea1788e0929333ac9181"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Sat May 16 00:57:59 2020 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon May 18 19:18:20 2020 +0000"
      },
      "message": "Revert^4 \"Handle OOM situation in java-heap more aggressively\"\n\nThis reverts commit 685c84775f7dfe23197b080e4730435fd80e6d27.\n\nReason for revert: Retrying with some changes in the failing art-tests\n\nChange-Id: I2b03f17da74c11adba8a27b8e9488bfae3374085\n"
    },
    {
      "commit": "1eb8f3215f54f6fdd14c64281387a1a9c5209dc0",
      "tree": "ec598b879b072957e1cd2e66f018bfc3dbb1b851",
      "parents": [
        "f78ea222e4b831feec4b0a6b00861a6f36d8e583",
        "883c1346b87537ed93f7d4fd88bbbb041c14d320"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 22:42:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 15 22:42:28 2020 +0000"
      },
      "message": "Revert^2 \"Remove test_per_src from ART tests.\" am: 883c1346b8\n\nChange-Id: I981e30295803d91ad09c73aa276399ed9bbaba70\n"
    },
    {
      "commit": "883c1346b87537ed93f7d4fd88bbbb041c14d320",
      "tree": "efb8205d15d677d3e3fdf90f0ae09c4a2eba9a4f",
      "parents": [
        "612809740453427ce4c9211062794dde3823ab6d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 11 23:30:29 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 18:06:16 2020 +0100"
      },
      "message": "Revert^2 \"Remove test_per_src from ART tests.\"\n\nSecond attempt at this, which fixes the asan failures.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nAdded a gtest_main.cc with the gtest isolated main function,\nand ART-specific initialization.\n\nBug: 147819342\n\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nTest: art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: I515c911bb7d44285495802fc66cd732fc8e6d8df\n"
    },
    {
      "commit": "61e03026a6248e237e1d39776e5a03b51add4c45",
      "tree": "4b8329fdb8aa0d1aa0057820b05d0ef6ed062692",
      "parents": [
        "76ed7871efbf58fc74542a94717a1248f2d341d3",
        "58520dfba31d6eeef75f5babff15e09aa28e5db8"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 13 19:47:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 13 19:47:27 2020 +0000"
      },
      "message": "Revert \"Use MADV_FREE to reclaim pages of freed regions\" am: 58520dfba3\n\nChange-Id: I19941af064c3c63ac1320686caaa84b4c589d57c\n"
    },
    {
      "commit": "58520dfba31d6eeef75f5babff15e09aa28e5db8",
      "tree": "eb09e871c318fa9a01923e9afd31f70bdbb5e468",
      "parents": [
        "bc89ed42d6128c27819e5403f6ceca5c18892e23"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 13 17:08:43 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 19:34:11 2020 +0000"
      },
      "message": "Revert \"Use MADV_FREE to reclaim pages of freed regions\"\n\nThis reverts commit 315f1b21a51a67e5d9c9ec3a04f1887931061e10.\n\nReason for revert: Regression in PSS (b/155678984). Also MPTS test report a low hit ratio (20%), which doesn\u0027t justify the change, at least in the current format. A workaround will be to bring back marking pages back and only madv_free first few regions which are expected to be allocated soon. The rest of the regions should probably be reclaimed with MADV_DONTNEED. Also, for a GC happening when the app is in background should probably reclaim all regions with MADV_DONTNEED.\n\nTest: art/test/testrunner/testrunner.py\nBug: 155678984\nBug: 74447417\nBug: 140130889\nChange-Id: I3c4bc4648a3b12062957a51ee716742eb9944747\n"
    },
    {
      "commit": "863e22af2fdf74ee88b529d2e77ca535c3dbe453",
      "tree": "525c0df18926ed4c246dfb200d188714f0187462",
      "parents": [
        "009934bcf76dd4550306cd286528b84298864200",
        "5868adaefe72cc8bcdcd8325c40f712375a506d1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 13 08:15:59 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 13 08:15:59 2020 +0000"
      },
      "message": "Move implementations from class_root.h to -inl.h . am: 5868adaefe\n\nChange-Id: I115f87949b5f0662f2dec587e0edafcb36da3ab2\n"
    },
    {
      "commit": "5868adaefe72cc8bcdcd8325c40f712375a506d1",
      "tree": "a1d4328902c4e860fe69c4e4bb34052de2530df3",
      "parents": [
        "5a62af5dc9e9bafeffcac7820e1a5b7586e58477"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 12 11:50:34 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 13 08:00:22 2020 +0000"
      },
      "message": "Move implementations from class_root.h to -inl.h .\n\nMake it possible to include the definition of enum ClassRoot\nwithout pulling in a lot of other headers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: Ic90fdd70bfe0c5428a5c9a0d7901ea7e15b03488\n"
    },
    {
      "commit": "c8fd17506cfcf470b14afd794149e462d3767cda",
      "tree": "a6ebc3acfc8ce849366157888ef4473bcd6502ac",
      "parents": [
        "ef0d76a61d965b02738716d5b63f042b94cfd839",
        "2750a9884d7579f301c7ff65a6daaf8520af7902"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon May 11 16:40:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 11 16:40:25 2020 +0000"
      },
      "message": "Report time spent doing madvise in GC performance dump am: 2750a9884d\n\nChange-Id: Ib4c65bbb1665be04cdbbd0bc9676cf2346540deb\n"
    },
    {
      "commit": "2750a9884d7579f301c7ff65a6daaf8520af7902",
      "tree": "61d1a265feb729fa285344694bee8d91fb437fb4",
      "parents": [
        "62dd4e83ba8cdf519168de32c5eff138efdda134"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu May 07 17:23:33 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon May 11 16:28:31 2020 +0000"
      },
      "message": "Report time spent doing madvise in GC performance dump\n\nReport amount of time spent in madvise for reclaiming pages at the end\nof GC cycles.\n\nTest: mpts\nBug: 140130889\nChange-Id: I1d05ac8c8d5ddfe03cc15b9847c8fdd1673dd24c\n"
    },
    {
      "commit": "e2f5925cb6d7c412b37098557db0734b97a66b55",
      "tree": "37d074010f7195da3d0b3b14fae6ede2d796bf38",
      "parents": [
        "6ff795b15ecfacc1ad57f41d8802df8f3fed5195",
        "a977689a7a8d49a66fa1e2d9de80344dc8b7588a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 08 22:59:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 22:59:25 2020 +0000"
      },
      "message": "Remove extra logging added to debug am: a977689a7a\n\nChange-Id: Ie53a37a8f36606ac98c2487051b44ba89a19fb11\n"
    },
    {
      "commit": "a977689a7a8d49a66fa1e2d9de80344dc8b7588a",
      "tree": "83d19609af06b18e14068ec301de608ec46b0133",
      "parents": [
        "94a810be73cea8f7c34df572fbdf5d2fbb2d6f87"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu May 07 19:51:03 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 08 22:48:26 2020 +0000"
      },
      "message": "Remove extra logging added to debug\n\nBug: 140119552\nTest: art/test/testrunner/testrunner.py\nChange-Id: I3b5f6b8208b17d4ebcab3b5f9fd7949103e06e45\n"
    },
    {
      "commit": "23fec240155b680ed86d8bb58c8c1e76441c8a5f",
      "tree": "8660e84bc54cd9ac5b248d20d5fa17679bd8a05b",
      "parents": [
        "f7b75d7c3912c916e39a526c6a2b57f67b507a99",
        "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 07:44:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 07:44:28 2020 +0000"
      },
      "message": "Revert \"Remove test_per_src from ART tests.\" am: fc5e2ef08c\n\nChange-Id: Id26d4c949cc0b99da1ce995a435ddf5b845830fa\n"
    },
    {
      "commit": "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522",
      "tree": "4c1d538f5faf72617e9088b8f99a368b999b32dd",
      "parents": [
        "685c84775f7dfe23197b080e4730435fd80e6d27"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 00:08:42 2020 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 07:25:07 2020 +0000"
      },
      "message": "Revert \"Remove test_per_src from ART tests.\"\n\nThis reverts commit 8103e479d8f8447584582b2b70752029f7087776.\n\nReason for revert: asan run fails in multiple ways\n\nTest: ran ./art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: Ib9f2887436a664b64c6410f56a25ae2dd0e0aab4\n"
    },
    {
      "commit": "f7b75d7c3912c916e39a526c6a2b57f67b507a99",
      "tree": "7a82c947bed5e1a95b01453b33707b59c1a768f4",
      "parents": [
        "e420b75f962b4636e3d1dea9c47e93b61e2508c2",
        "685c84775f7dfe23197b080e4730435fd80e6d27"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu May 07 18:48:12 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 07 18:48:12 2020 +0000"
      },
      "message": "Revert \"Revert^2 \"Handle OOM situation in java-heap more aggressively\"\" am: 685c84775f\n\nChange-Id: Ifd161e8230e542c34cd640764833d669f9d0d3d9\n"
    },
    {
      "commit": "685c84775f7dfe23197b080e4730435fd80e6d27",
      "tree": "55bcbf10fc620bf4c914a40f25b199787068b328",
      "parents": [
        "8103e479d8f8447584582b2b70752029f7087776"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 06 22:26:23 2020 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu May 07 18:30:22 2020 +0000"
      },
      "message": "Revert \"Revert^2 \"Handle OOM situation in java-heap more aggressively\"\"\n\nThis reverts commit 04a46f9ea4639b070fb9541810d11bc731862284.\n\nReason for revert: art-tests still failing\n\nChange-Id: If1c1096319efcfe2031cde38669f3fb1679d597d\n"
    },
    {
      "commit": "e420b75f962b4636e3d1dea9c47e93b61e2508c2",
      "tree": "1bc201ff916fcc67531687c8b2b4825b01c66948",
      "parents": [
        "97fb36c9870c4122bba3eea7b05351a90a1953c9",
        "8103e479d8f8447584582b2b70752029f7087776"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 07 16:15:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 07 16:15:05 2020 +0000"
      },
      "message": "Remove test_per_src from ART tests. am: 8103e479d8\n\nChange-Id: Ie100d1e3b8e2830809f934536b4d56c20add927b\n"
    },
    {
      "commit": "8103e479d8f8447584582b2b70752029f7087776",
      "tree": "53b2be70d195b785fc1d79b6151e42925b4981fe",
      "parents": [
        "6a8f8c52da06de506b75fa524a56a30794849261"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 21:36:49 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 07 14:45:38 2020 +0100"
      },
      "message": "Remove test_per_src from ART tests.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nBug: 147819342\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nChange-Id: Id295af00d08b24baa2e421b0f3313df0b2e56fe9\n"
    },
    {
      "commit": "d18dcbb1bee6a26ed53f412475d64d2686ca972f",
      "tree": "837316270c48a8ac018eba6c26f2dc6e6a4b91b5",
      "parents": [
        "ddf96f573084f8fc00f5f01f101e06dbb8d6230b",
        "d20e51dcd0fc4b2b229c5b6a5e9b500ae042bc61"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu May 07 09:51:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 07 09:51:23 2020 +0000"
      },
      "message": "\"Move ICU from ART APEX to i18n APEX\" Attempt 2 am: d20e51dcd0\n\nChange-Id: I6f664d2006a4125bac0a616724004b313e3afa1b\n"
    },
    {
      "commit": "d20e51dcd0fc4b2b229c5b6a5e9b500ae042bc61",
      "tree": "2ef7925b2e89c77cee31144a25932a198cd4b65e",
      "parents": [
        "a6653d304faa3bbd981507570a4ac1107760c6a7"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue May 05 16:01:19 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu May 07 09:34:47 2020 +0000"
      },
      "message": "\"Move ICU from ART APEX to i18n APEX\" Attempt 2\n\nThe change was previously submitted in https://r.android.com/1283897\n\n\"Calling @IntraCoreApi from core-icu4j should not cause Core platform API violation\"\nhttps://r.android.com/1299494\n\nBug: 138994281\nTest: m checkbuild on aosp_x86-userdebug\nTest: device boots\nChange-Id: Idb3e2450fca5d8300aef353fc1e4e99e24f04372\n"
    },
    {
      "commit": "00736ca8bd9b13db6b408e81872b91610926cb69",
      "tree": "6781c274783e69eb2ecd043a064745a64032e277",
      "parents": [
        "1a431e779e833d108a6b172449f4c5aefcc8e96b",
        "04a46f9ea4639b070fb9541810d11bc731862284"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 06 17:22:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 06 17:22:04 2020 +0000"
      },
      "message": "Revert^2 \"Handle OOM situation in java-heap more aggressively\" am: 04a46f9ea4\n\nChange-Id: Ibf1c5b4e5f074e65376e4f6ebe9d2799ac71fd87\n"
    },
    {
      "commit": "04a46f9ea4639b070fb9541810d11bc731862284",
      "tree": "4daf23a3e51fc02669610b78e8ecbf89aad92505",
      "parents": [
        "e6afa957bc0d6f089c4954e48455bd102a7ec240"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Apr 29 17:30:38 2020 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 06 17:00:43 2020 +0000"
      },
      "message": "Revert^2 \"Handle OOM situation in java-heap more aggressively\"\n\nThis reverts commit 95545423bf0982c28a23260d359ae6b1e1012dd6.\n\nReason for revert: Took care of the issues that this change could\ncause to ART tests\n(https://android-review.googlesource.com/c/platform/art/+/1298073).\n\nBug: 144525957\nTest: art/test/testrunner/testrunner.py\nChange-Id: I4e8d22fff3dff15ffd1385be2c6b0c648acd2229\n"
    },
    {
      "commit": "43b9b3b73c115a945dbdfc9f195d2e1ad7c43172",
      "tree": "5a52fd101734d8f907a6766cd5c471bbc7d4c6bc",
      "parents": [
        "612b2c4c511cb464e8eb5c03ed9c5bee85b33152",
        "4a48775376a4c0b180a7d32ad2cdf00bd0dca140"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 12:00:59 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 12:00:59 2020 +0000"
      },
      "message": "Revert \"Move ICU from ART APEX to i18n APEX\" am: 4a48775376\n\nChange-Id: Ia7ab1f739109e1331d0e62b845e736dbfdbedb51\n"
    },
    {
      "commit": "4a48775376a4c0b180a7d32ad2cdf00bd0dca140",
      "tree": "ef0bbb1281f6d4785e60f26cb420646c83eb6f6d",
      "parents": [
        "b5146a3b70b9bf15532d25d3b876354938976bc9"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "message": "Revert \"Move ICU from ART APEX to i18n APEX\"\n\nRevert \"Move v8 and libpac into i18n APEX\"\n\nRevert \"Move core-icu4j into I18n APEX\"\n\nRevert \"Move ICU from ART APEX into i18n APEX\"\n\nRevert \"Move core-icu4j into i18n APEX\"\n\nRevert \"Move libpac into i18n APEX\"\n\nRevert \"Add shared library into i18n APEX and add the required s...\"\n\nRevert \"Make com_android_i18n namespace visible\"\n\nRevert submission 1299494-i18nApex\n\nReason for revert: Breaking aosp_x86-eng on aosp-master\nReverted Changes:\nI30fc3735b:Move ICU from ART APEX to i18n APEX\nIcb7e98b5c:Calling @IntraCoreApi from core-icu4j should not c...\nIc7de63fe3:Move core-icu4j into I18n APEX\nI65b97bdba:Make com_android_i18n namespace visible\nIa4c83bc15:Move v8 and libpac into i18n APEX\nI10e6d4948:Move core-icu4j into i18n APEX\nI8d989cad7:Move ICU from ART APEX into i18n APEX\nI72216ca12:Move ICU into i18n APEX\nIef9dace85:Add shared library into i18n APEX and add the requ...\nI7d97a10ba:Move libpac into i18n APEX\nI90fff9c55:Move ICU from ART APEX into i18n APEX\n\nChange-Id: I516a8d290e3a3cc2b45d71ba5400364b0478a57a\n"
    },
    {
      "commit": "899840ee8ae54312b2ea5434d7dd65dbf01884db",
      "tree": "369594c414c6ce8e98084ad464e01aecaa4e23c8",
      "parents": [
        "145ec7013675fcdbe984883be6033a460dc1f1e0",
        "8419b82fa8d46362eb1369ec1876ee2d3c4bc29d"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue May 05 09:03:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 09:03:58 2020 +0000"
      },
      "message": "Move ICU from ART APEX to i18n APEX am: 8419b82fa8\n\nChange-Id: Ifaf81867eb07fddeb43c407f7c671adfba749149\n"
    },
    {
      "commit": "8419b82fa8d46362eb1369ec1876ee2d3c4bc29d",
      "tree": "dca0a5f4cd30c2882e404532eb06691a19624306",
      "parents": [
        "b6f4c79b06bb97651a7be1ac828d18ed18356603"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 20:42:07 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 08:52:20 2020 +0000"
      },
      "message": "Move ICU from ART APEX to i18n APEX\n\nIt involves a change of boot class path to use core-icu4j\nfrom i18n APEX.\n\nBug: 138994281\nTest: device boots\nTest: m build-art-target-tests\nTest: CtsJniTestCases\nTest: atest libnativeloader_test\nTest: ./art/test/testrunner/run_build_test_target.py -j80 art-test\nTest: art/build/apex/runtests.sh\nChange-Id: I30fc3735be760cba48856cd102852d2a6c796374\n"
    },
    {
      "commit": "acafa9f4b18ec194812c9275b5c924876a148117",
      "tree": "658354fce0c7165005f8fa6aebfab8cc353bb70e",
      "parents": [
        "f623a4ec38f1a631b2dceb1599922c7e5c73c096",
        "315f1b21a51a67e5d9c9ec3a04f1887931061e10"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 01 18:35:29 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 18:35:29 2020 +0000"
      },
      "message": "Use MADV_FREE to reclaim pages of freed regions am: 315f1b21a5\n\nChange-Id: Ibc3eff2cc93a41a4fa9f6793c9c34745ea4d96a6\n"
    },
    {
      "commit": "315f1b21a51a67e5d9c9ec3a04f1887931061e10",
      "tree": "4d736d750c5839395aac65a48bd3935a9831cdbc",
      "parents": [
        "0f5b2bf1aee7e08ce3b0dbf91ee528eb846d372f"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 12 18:10:32 2020 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 01 18:22:13 2020 +0000"
      },
      "message": "Use MADV_FREE to reclaim pages of freed regions\n\nIn order to release memory consumed by freed regions back to kernel we\nuse madvise(MADV_DONTNEED) syscall, which synchronously takes away all\nthe pages of the given memory range. As a side-effect, this also\nprovides us clean (zeroed-out) pages the next time region is used by\nan application thread as a TLAB. The downside is overhead of\nMADV_DONTNEED (it has to manipulate all the corresponding page-table\nentries). Furthermore, the application thread gets page fault each\ntime it moves from one page to the next while consuming the TLAB.\n\nMADV_FREE is another madvise option that also advises kernel to take\naway the pages, but only when there is memory pressure. It is a much\nmore light-weight operation than MADV_DONTNEED. Also, the application\nthread doesn\u0027t get the page fault overhead, if the page is not already\nreclaimed. However, a page which is not reclaimed by the kernel will\nhave stale data on it.\n\nThis change uses MADV_FREE for region-space\u0027s reclamation and ensures\nthat pages about to be used for new allocations are properly cleared.\n\nBug: 74447417\nBug: 140130889\nTest: Golem, mpts/greenday tests\nChange-Id: I1e4a75abed51844d5062685bf77871f609af5a65\n"
    },
    {
      "commit": "95dfceb69d47e804bd49fdc597c193cc2e9e6389",
      "tree": "ed5f7e4b65a6e3eca1c524f1f4e5bea3b8383b71",
      "parents": [
        "ecf99fd116bd8883f9d95ba31512acc816a4f080",
        "7e678d3c0f564e44638e27c411b2cc0ef8ee145a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Apr 30 20:38:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 20:38:58 2020 +0000"
      },
      "message": "Assert allocator-type is known on OOME am: 7e678d3c0f\n\nChange-Id: I5be531f42f774885e295fcfa5d8fadf410b1562a\n"
    },
    {
      "commit": "7e678d3c0f564e44638e27c411b2cc0ef8ee145a",
      "tree": "82789a1653ecfaabea517a56c2cba4fd59ca9203",
      "parents": [
        "bb3560d58538d7172b058853d471a876ddd86467"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Apr 28 16:17:49 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Apr 30 20:22:39 2020 +0000"
      },
      "message": "Assert allocator-type is known on OOME\n\nWe should always be using a known allocator-type. So instead of being\nconditional about this, assert it.\n\nThis change also simplifies updation of alloc entrypoints for CC\ncollector. Earlier we used to choose TLAB allocator on x86_64 targets\nto avoid a read-barrier in allocation path. Now that it\u0027s not there, we\ncan simplify to always use RegionTLAB allocator for CC.\n\nTest: art/test/testrunner/testrunner.py -t 004-ThreadStress\nBug: 154100060\nChange-Id: Ic692794c3dab80a67c2c4b3274adf00f879ad21b\n"
    },
    {
      "commit": "ba3ced0bd4335d31da741057a219acfc2d8dafda",
      "tree": "870e2ec6166b0a0184421b66451c8ee685ce8f96",
      "parents": [
        "86c61e4a6c3b043259d18b9049106f56ceb86575",
        "40082b6382046470f01c11ac05d76e1cdb20d0a9"
      ],
      "author": {
        "name": "Louis Chang",
        "email": "louischang@google.com",
        "time": "Wed Apr 29 17:21:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 17:21:38 2020 +0000"
      },
      "message": "Revert \"Reject OAT file in speed-profile if app image is rejected\" am: 40082b6382\n\nChange-Id: I2e34db2b081ea7809fff2adae10a0b2bd29ddf46\n"
    },
    {
      "commit": "40082b6382046470f01c11ac05d76e1cdb20d0a9",
      "tree": "1f6e6e2ab22522591a68d1ce4e508f898594f8cc",
      "parents": [
        "3f04ae5552f713c05f12b080f9a2efc5b3210c9d"
      ],
      "author": {
        "name": "Louis Chang",
        "email": "louischang@google.com",
        "time": "Wed Apr 29 08:19:12 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 16:54:07 2020 +0000"
      },
      "message": "Revert \"Reject OAT file in speed-profile if app image is rejected\"\n\nThis reverts commit 7c25b09f62eb87b72bd8a98a31ea10fd97050f82.\n\nReason for revert: b/155218105\n\nBug: 38313278\nChange-Id: Ic5cda4c7546b01aeef73278338fea434ba176e60\n"
    },
    {
      "commit": "c33e00fe597a4d65d20493901127a9288548b598",
      "tree": "76a1837dc436b147b3dcba40c058a535b51f6cb3",
      "parents": [
        "83500373ba299ee8362fce783320d97ae0e6d753",
        "95545423bf0982c28a23260d359ae6b1e1012dd6"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Apr 28 20:52:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 28 20:52:25 2020 +0000"
      },
      "message": "Revert \"Handle OOM situation in java-heap more aggressively\" am: 95545423bf\n\nChange-Id: Ib93ce05a45068987d978e9af35ad68ba7ba70f41\n"
    },
    {
      "commit": "95545423bf0982c28a23260d359ae6b1e1012dd6",
      "tree": "dfb166523d36beedb486314a5f43c07c6823b302",
      "parents": [
        "9bbed3c7d892c59606a729c56752fe782b1d8c48"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Apr 28 19:04:34 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 28 20:35:00 2020 +0000"
      },
      "message": "Revert \"Handle OOM situation in java-heap more aggressively\"\n\nThis reverts commit a698102d622e1cff97a30428878c8075059f396c.\n\nReason for revert: Causing ART-test failures. We need to take care of those tests before resubmitting. Revert will also help in tracking down b/154100060 (OOME in ThreadStress), which started occurring before this CL was merged.\n\nChange-Id: Ieb37d38f3c756a5252cc7f30d60cf82a7f95c49c\n"
    },
    {
      "commit": "09a7cde1ad32a7abfe28e8a6d1ef5b0effa6c17b",
      "tree": "bdbef77018171238dd224b6d359e6d123f636865",
      "parents": [
        "242e8c7616a56f71201c01bffe4b4af2095fd4b0",
        "7c25b09f62eb87b72bd8a98a31ea10fd97050f82"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Mon Apr 27 22:48:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 22:48:03 2020 +0000"
      },
      "message": "Reject OAT file in speed-profile if app image is rejected am: 7c25b09f62\n\nChange-Id: Ib9e7ed3439bfcdbc1849f5f0c080c12cce629f85\n"
    },
    {
      "commit": "7c25b09f62eb87b72bd8a98a31ea10fd97050f82",
      "tree": "b7a933b717ecee9a3243ec85bc176e05d16a1a60",
      "parents": [
        "a698102d622e1cff97a30428878c8075059f396c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Mon Apr 20 08:47:13 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 27 22:31:29 2020 +0000"
      },
      "message": "Reject OAT file in speed-profile if app image is rejected\n\nSpeed profile should always have an app image available. This change\nmakes ART refuse to load OAT files compiled with the speed-profile\ncompiler filter if the app image cannot be loaded. This will enable the\ncompiler to assume the existence of an app image and generate better\ncode in some cases.\n\nBug: 38313278\nTest: ./test/run-test --host 2231-oat-require-app-image\nChange-Id: I2ee6fa7c7dc1d42d1fe1511fc60a7c0542237bfa\n"
    },
    {
      "commit": "242e8c7616a56f71201c01bffe4b4af2095fd4b0",
      "tree": "44b41fc6c112f82945d20a9d14aea66714994a29",
      "parents": [
        "9f20b5137748b18a0dc135ca25b58640be01bfdc",
        "a698102d622e1cff97a30428878c8075059f396c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Apr 27 20:08:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 20:08:10 2020 +0000"
      },
      "message": "Handle OOM situation in java-heap more aggressively am: a698102d62\n\nChange-Id: I79aa8927268dcbf3be11cb51b5ac071975f49f7f\n"
    },
    {
      "commit": "a698102d622e1cff97a30428878c8075059f396c",
      "tree": "afeb8a0b82a19dc36d9a36d2c62c863aa2cd89bc",
      "parents": [
        "0240d2ba620e42d68fa9b6a6ca4ff01a0c79b8e3"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Apr 14 22:32:26 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Apr 27 19:56:18 2020 +0000"
      },
      "message": "Handle OOM situation in java-heap more aggressively\n\nCurrently we perform several rounds of GCs before throwing out-of-memory\nexception. Furthermore, even if a small amount of memory is reclaimed,\nwe call it success. This leads to janky app behavior and timeouts\nduring finalization.\nIn this change we perform the next GC type, and if that doesn\u0027t reclaim a\nminimum amount of free space, then perform a final GC cycle, which is\nfull-heap, including soft-references and evacuates all regions to be\nthorough. If that also failes, then we throw OOME.\n\nBug: 144525957\nTest: art/test/testrunner/testrunner.py\nChange-Id: I34af2250661f886c8c2ba32637ee37886e2021d7\n"
    },
    {
      "commit": "18d80064b8a93d4a5c08829301920e83be36a92e",
      "tree": "332adfd382ff03c3c8afa5ea3281ccfb35a7b899",
      "parents": [
        "320c9c4c553c98d6449da1aa23a29a8df1c5b12a",
        "30ac39834fbd7ea276f4dd497f158be03da86249"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 23 20:12:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 23 20:12:37 2020 +0000"
      },
      "message": "Improve printing for heap verification failures am: 30ac39834f\n\nChange-Id: I05b1fe8ddd90af635c0e2cf886e381c1c6c0a7a2\n"
    },
    {
      "commit": "30ac39834fbd7ea276f4dd497f158be03da86249",
      "tree": "3a4fe97f7ab7bad1501b9d583641f582b4c1d81c",
      "parents": [
        "6127ace4619f735a7f9555947329edddb9e627f9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 12:48:53 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 23 20:01:08 2020 +0000"
      },
      "message": "Improve printing for heap verification failures\n\nAvoid printing proc maps since they are already printed in the\ntombstone. Printing them again may cause truncated output.\n\nChange ordering to put important data first since the latter lines\nare more likely to get truncated.\n\nTest: test-art-host-gtest\nBug: 139805154\n\nChange-Id: I27a2da4831643fd2eb42f39900f3e3ed98acd04d\n"
    },
    {
      "commit": "f7b7a2526d4cf6f7d2be001a7975f7522cd6199f",
      "tree": "98c91edc4f6b5d2793b4800e188a672584880dbe",
      "parents": [
        "52f614041216b02282c01c91a4020c2e6f4c2134",
        "8ff314bbccbbc16b2b8c9f2804866e7e3f21f586"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Apr 09 02:12:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 09 02:12:21 2020 +0000"
      },
      "message": "Reduce kNotifyNativeInterval on host am: 32b24fdc34 am: 8ff314bbcc\n\nChange-Id: I54801bfb96131bd425f0ba7438a192eb982dd5ba\n"
    },
    {
      "commit": "32b24fdc3466d01f799e0ef39859b103d5c701bc",
      "tree": "c1ce634f8d89e508346e3b58e9a0ed6c7c9379e4",
      "parents": [
        "b495e7ffac8782dd2fc7c1a7fa7c69da71d98c1c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Mar 19 17:21:58 2020 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Apr 09 01:40:29 2020 +0000"
      },
      "message": "Reduce kNotifyNativeInterval on host\n\nBug: 149110389\nTest: TreeHugger\nChange-Id: I71fade32e638319f7988feee8024b89fb122c431\n"
    },
    {
      "commit": "683e674616ebde405fe897b84cf8052c51c8f498",
      "tree": "bcab3546c5a93ec589daefc89106921f6203c03e",
      "parents": [
        "ea6be19b59babd2d3ad5d44366e7b0d9025ea559",
        "0bd96507183158538a64bfdc38228cbdea6a1c0f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 20:03:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 03 20:03:43 2020 +0000"
      },
      "message": "Fix string deduplication for multi-image extensions. am: f4ba904ec0 am: 0bd9650718\n\nChange-Id: I2f6a9ef345301216b2e77ddf5183ff3939bc29ab\n"
    },
    {
      "commit": "f4ba904ec0ec5e6cefa79c4f598dc0a29b7d4143",
      "tree": "c3a19c1279c73d5d057bb09774b2465f32dc1d6f",
      "parents": [
        "cb62cd8665e8dd432cdc3b5adc8cdf6f36289d44"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 09:40:25 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 19:21:02 2020 +0000"
      },
      "message": "Fix string deduplication for multi-image extensions.\n\nTest: WITH_TIDY\u003d1 m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 153104371\nBug: 152037801\nChange-Id: Ib91e7a13047d7da78deb855a6713a1a5d9044463\n"
    },
    {
      "commit": "978a79618c8aebb969a8d89f9be77823271ce431",
      "tree": "60c9a1e01418c1e37d2c81331987f837b6177d04",
      "parents": [
        "f53ab2252aa1e09998c3e9004fae382f84c380ea",
        "8c881442c5faa400c3c588e74ab5b6b86c08646a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Apr 02 19:33:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 02 19:33:40 2020 +0000"
      },
      "message": "Change default heap-target-utilization to 0.75 am: 963c27f603 am: 8c881442c5\n\nChange-Id: I3417fab8dbf761b9ea5f61a782b577d4dbcec94d\n"
    },
    {
      "commit": "963c27f6035db91e99c08bb52101c8acfc0af4d3",
      "tree": "1ed6303e1bd61b9dd0b85ceec2b219c5e89c7de7",
      "parents": [
        "fbf53b5e38fef38a2bfdccb433e61d5d4ee802bc"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Apr 01 17:35:45 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Apr 02 18:54:36 2020 +0000"
      },
      "message": "Change default heap-target-utilization to 0.75\n\nOn high-memory devices we often use system properties to explicitly use\nmore relaxed heap-target-utilization. So changing the default value\nto a more conservative one for low-memory devices.\n\nBug: 152837465\nTest: art/test/testrunner/testrunner.py\nChange-Id: I03b6af27fe246683b0282cf1ee136b287dee729d\n"
    },
    {
      "commit": "1afc1f52fa7b5c90fe8b44ce0e32ed46fb11143f",
      "tree": "9e63fb938698d150e0ccf2087ff8ae66b241d568",
      "parents": [
        "e30f24631850837773493154e426ff0c4d55a374",
        "2e5b73b634a60bf617ce0e49cf059fe69199efcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:45:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 31 13:45:04 2020 +0000"
      },
      "message": "Deduplicate interned image strings. am: fdd4684836 am: 2e5b73b634\n\nChange-Id: I6a8f1ddae8bf8847a0bc1032e3afbaa08ae1fd93\n"
    },
    {
      "commit": "fdd46848364b5fdb7360cb3256bd9482d7ca3c28",
      "tree": "d3e47c9723155f6376e3782cc47658a295c1da1c",
      "parents": [
        "4ac8d96c332b014b72c2480aa1c83762e818daef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:16:12 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nChange-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\n"
    },
    {
      "commit": "e11d0f8be0d5e78c6c23dccf6e02da93c916c5b0",
      "tree": "9e3e54bb36442ad375942fe86d71f833796f65b8",
      "parents": [
        "e849d70c4016f0b61d7a28ee41d78a92390f015b",
        "1b536ca76e1c2af297f38ece2f8b1e3e1859c9df"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 19 00:56:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 00:56:13 2020 +0000"
      },
      "message": "[art] Remove boot complete marker am: 1b536ca76e\n\nChange-Id: I27f8a8cfba2542058e7463eca93543cd32e2b066\n"
    },
    {
      "commit": "1b536ca76e1c2af297f38ece2f8b1e3e1859c9df",
      "tree": "f1bbef3a55ece18930fe4ad4cf99c2ba305f0a9c",
      "parents": [
        "d1cda88b4cfd35c8c392bc162eaee75486d46f18"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 28 16:25:51 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 18 23:13:00 2020 +0000"
      },
      "message": "[art] Remove boot complete marker\n\nART doesn\u0027t load the boot image from /data anymore and the marker is\nuseless.\n\nTest: device boots\nBug: 143899228\n\n(cherry picked from commit e6f21c4597de7c4060ef5ad30d07ce9ef16d01ad)\n\nMerged-In: I3b60d24c87a8f88cf8fc4a032ebfbf55db74a944\nChange-Id: I999ef31b2edf6d9e4e7a03662ed7431e778c19b0\n"
    },
    {
      "commit": "ab4d2222a206f48a27178c52f0ee31c30170823f",
      "tree": "e6ea43aae99ce58fe6d1e4c03c32a5aa3db93dbf",
      "parents": [
        "735ab4ef26c250510f21fc2070e08d4ae7867916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 03 16:27:38 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 04 09:38:06 2020 +0000"
      },
      "message": "Fix boot image size check.\n\nTest: aosp_taimen-userdebug boots when built with\n      export DEXPREOPT_USE_ART_IMAGE\u003dtrue\n      and logcat shows no messages about failing to open\n      the app image services.art .\nBug: 150668267\nChange-Id: I800ef2e09e3a61fe4c8418ba4d66f54dd605495e\n"
    },
    {
      "commit": "6f5e72942c5b41ca0fad0dfedf8089cdc5221f6e",
      "tree": "1de211b1be8ef420db49b9cfb788255bf1d6c7c4",
      "parents": [
        "03e871678db7585a621740fb1ce65a75fdc44319"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 25 15:10:50 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 26 23:45:02 2020 +0000"
      },
      "message": "Only start timer in IncrementDisableThreadFlip when waiting\n\nIncrementDisableThreadFlip is a hot function in System Server when\nprocessing many binder transactions. There was code to track how much\ntime was spent waiting and log long waits. These days, long waits rarely\nhappen, but we were starting the timer even when we did not have to\nwait. This led to NanoTime() showing up high in profiles.\n\nThis changes moves the first call to NanoTime() until after we know we\nwill spend at least some time waiting. After this change, NanoTime() did\nnot show up in the profile at all.\n\nBug: 150326920\nTest: device boots\nChange-Id: I6dc4cee7d18a3fbd6d2f73281cddba407e481d67\n"
    },
    {
      "commit": "4cbb51a0c057249a500ca7fe3947401978f165d2",
      "tree": "af626569243ce560c45fe5c653ca61fae0cd6a0b",
      "parents": [
        "5d24c3d43152b36181fbf9819bfbe5589572f16b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 07 11:25:54 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 07 18:21:11 2020 +0000"
      },
      "message": "Fix ART code around JIT zygote.\n\n- The right image location for it now ends with a profile\n- Add profile locations to image spaces, so the JIT knows what to\n  compile\n- Remove now deprecated ApexImage related code.\n\nBug:119800099\nTest: boots, methods from framework gets compiled by zygote\nChange-Id: Ie31b62d0a25f1b50e266c1537c43307d7b29e138\n"
    },
    {
      "commit": "f6afcc9bd7f9b82df5e93d96d89c4c8da898e6f0",
      "tree": "e1f1e826dd510fb05c175f456e0b17671517bed2",
      "parents": [
        "8adb3258b902306d7ba2933e20f7435aa384d85e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 05 10:10:03 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 06 10:32:22 2020 +0000"
      },
      "message": "Update boot image extension compilation args.\n\nAnd in dex2oat check for boot image location with profile\nspecification. For app compilation, trim such boot image\nlocation to the leading components without profile spec.\nFor boot image extension, such location is currently an\nerror because it expects all dependencies to be satisfied\nfrom boot images; this may be relaxed in future.\n\nTest: aosp_taimen-userdebug boots.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\n      # Check /proc/\u003czygote64-pid\u003e/maps, see\n      #   \u003clarge\u003e rw-p ... [anon:dalvik-/nonx/boot-framework.art]\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.vdex (deleted)\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      #   \u003csmall\u003e rw-p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      # (No r.xp as we did not compile anything.)\nBug: 119800099\nChange-Id: Ie338a54d45967c790d08cbd1e53ecbcd2b217081\n"
    },
    {
      "commit": "89b85ebb4a0daf390701f1b395d1cd01239a75a1",
      "tree": "86d2a4dd300945e463040ceab48cffc20c6c57f7",
      "parents": [
        "198cf41c904b1368a3f745ce4bc57dfe2080b14d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 04 15:51:44 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 05 15:41:12 2020 +0000"
      },
      "message": "dex2oat: default to speed-profile if we have a profile.\n\nAnd move the check for /system/etc/boot-image.prof from\nAndroidRuntime.cpp to the deprecated GenerateImage() in\nart/runtime/gc/space/image_space.cc . If it\u0027s not found,\njust report the error and compile with the \"speed\" filter.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 119800099\nBug: 148928928\nChange-Id: I536ed7e6d7ebaa562cba3448a37c5d873bc0a682\n"
    },
    {
      "commit": "f9dfd77182296cd9161784bc0b9babf4f22a90c7",
      "tree": "8abbce5a0fc5cf7b46979cb6d47a19a6106d0297",
      "parents": [
        "c70b84e7680663c3a41a119570ecd5f708ce4d76"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 30 13:56:13 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 03 16:40:25 2020 +0000"
      },
      "message": "Update VMRuntime.isBootClassPathOnDisk()...\n\n... for the new boot image location specification.\nIn particular, use only the first component and, if there is\nno path, use path from the first boot class path component.\n\nTest: aosp_taimen-userdebug boots\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:boot-framework.art\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/system/framework/boot-framework.art\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\nBug: 119868597\nChange-Id: Ifae2a005b7c6b8625d744eca2df763e3f6f5d0fb\n"
    },
    {
      "commit": "c0e0e5e6334f7804c41e3a0436536161754dbb1c",
      "tree": "e84506016937e10438916fde9a91708a7d9ed093",
      "parents": [
        "e4207a7bf5b008df97b76b6df7a9930524c4c1cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 23 17:43:05 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 09:28:51 2020 +0000"
      },
      "message": "Compile boot image extensions in memory.\n\nAllow boot image location components for extensions to\nspecify a profile. If such extension is not found on disk,\nor the on-disk version fails validation (presumably because\nit\u0027s out of date), compile the extension in memory, passing\nmemfd file descriptors as output arguments to dex2oat.\n\nAlso fix GetPrimaryImageLocation() to check for the \u0027/\u0027 in\nthe first component instead of the full boot image location.\n\nTest: Additional tests in dex2oat_image_test\nTest: m test-art-host-gtest\nBug: 119800099\nChange-Id: I4d3c178defe311bf51153d4beb386eba208d75a5\n"
    },
    {
      "commit": "fc58809f7b932d86234130be15487017dc37b0cf",
      "tree": "d003dedec73d77473aff6b2039860bc76a69d898",
      "parents": [
        "d00f129f1b7148f01efe6e9283a72d6ec8f0edd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 23 15:39:08 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 29 23:31:10 2020 +0000"
      },
      "message": "Remove old JDWP implementation from ART\n\nThe old \u0027internal\u0027 JDWP implementation hasn\u0027t been used for a few\nreleases and it\u0027s a lot of code that\u0027s barely being tested and is at\nrisk of bit-rot. To simplify the runtime and remove potentially buggy\ncode this removes it.\n\nWe also needed to rewrite the DdmThreadNotification code since it\nrelied on the suspension functionality from the old debugger and was\ngenerally unsafe.\n\nTest: ./test.py --host\nTest: atest --test-mapping cts/tests/jdwp/TEST_MAPPING\nTest: atest --test-mapping cts/hostsidetests/jdwptunnel/TEST_MAPPING\nTest: Manual ddms\n\nBug: 119034743\n\nChange-Id: I775f310a009141296b730e4a6c2503506a329481\n"
    },
    {
      "commit": "4f9d62b549ef755c5b77d09b1da2a8403f58b376",
      "tree": "c3af4e8008e8214016b88bb9127157c912fa23e8",
      "parents": [
        "b885d8b631ad0a72ade32cb6b07a2ddd062a664b"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Jan 06 15:06:04 2020 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Jan 15 19:50:46 2020 +0000"
      },
      "message": "Utilize partially used TLABs\n\nCurrently, once a mutator tries to allocate an object bigger than the\nTLAB size, it attempts to acquire another TLAB. The previous TLAB is not\nutilized again. This leads to blocking GCs when mutators get created and\nkilled very frequently, as could happen in the case of Zygote.\n\nIn this change, we maintain a separate list of partially used TLABs\nwhich can be reused whenever any mutator attempts to allocate a new TLAB\nfrom region space.\n\nTest: forrest hermatic test\nBug: 146706834\nChange-Id: I8076663628e49fc10e33f30de937833f6812fdca\n"
    },
    {
      "commit": "c4bf6679e14a54fde5bc7a994f0f1d4e4564fa23",
      "tree": "84b91c9be72c197d1692d5daa091cd8842833fe6",
      "parents": [
        "4681f2034034435d47eb0b5ef03bde69a1e4dde6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 13 13:07:16 2020 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 13 13:14:00 2020 -0800"
      },
      "message": "Use ResetTlab instead of setting to null\n\nAdded a function ResetTlab to reset the TLAB to empty. This is\nin case the empty TLAB doesn\u0027t have null values.\n\nBug: 139805154\nTest: make\nChange-Id: Ife2225fc534999e53f2ecad41fc29e46c90a8817\n"
    },
    {
      "commit": "65c18a21e7cb0d48327788df498f15ae195e9e3c",
      "tree": "ba49c1f07e7cd2bc6d9ffbafc184bcad85e9ce45",
      "parents": [
        "c4d13ae39ec6f4b6b76b152818516081beb6bb56"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 23:37:13 2020 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 07 17:40:19 2020 +0000"
      },
      "message": "Revert^4 \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit ead89ef62768faa06fedd279b86bccbed1464673.\n\nPS1 is identical to Revert^2.\n\nThis fixes a shutdown issue caused by prematurely hanging when we\nblock while trying to acquire system mutexes during shutdown.\n\nOnly refuse to wake up after shutdown is well under way.\n\nBug: 140590186\nBug: 121302864\nTest: Build and boot AOSP.\nTest: art/test/testrunner/testrunner.py --host -b -t 1932-monitor-events-misc\nTest: art/test/testrunner/testrunner.py --host -b -t 004-ThreadStress\nTest: art/test/testrunner/testrunner.py --host -b -t 132-daemon-locks-shutdown\nTest: 132-daemon-locks-shutdown repeated with increased thread counts and multiple\nconcurrent tests.\n\nChange-Id: Ic19d32652a2a05c1ca843b3e9c6e29e6770262da\n"
    },
    {
      "commit": "ead89ef62768faa06fedd279b86bccbed1464673",
      "tree": "27e3bef919a0775f45c0dfc08b6a26d7688e8a98",
      "parents": [
        "8d94dddfd60ab8122b0abb1a0d90fb13d752a7b6"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 21:37:10 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 03 22:50:59 2020 +0000"
      },
      "message": "Revert^3 \"Add spin loop to mutex, overhaul monitor\"\"\n\nThis reverts commit 3d52abe40e619497b1b59cfce92c74b5a417add5.\n\nReason for revert: Causes asan build timeout; Apparently the runtime\ngoes away while we\u0027re holding a system mutex. We now sleep forever\nwithout releasing it.\n\nBug: 140590186\nBug: 121302864\nChange-Id: I9e4dcaf820815c751aa803473809955451988ebd\n"
    },
    {
      "commit": "3d52abe40e619497b1b59cfce92c74b5a417add5",
      "tree": "50c67eb9a980b1525f78e03d0941605bb9fa3887",
      "parents": [
        "eac38a141a95adc273059ba2f6ad26f073391ed3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 19 18:49:50 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 19:15:21 2020 +0000"
      },
      "message": "Revert^2 \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit d56f7d1086b16f32c0771a41a4afb376b5fd3076.\n\nReason for revert: PS2 fixes the problems I identified.\n\nPS1 is straight revert^2 of, and thus identical to aosp/1111800.\n\nPS2 in addition:\n- Reduces the size of the test, when not modified to run as benchmark.\n- Disables the test in slow-running configurations, which timed out.\n- Stops using the mutex recursion count, and instead reintroduces\n  one at the monitor level. The plan is to eliminate the one in mutex\n  in a future CL.\n- Avoids modifying various monitor fields in suspended state.\n  MonitorInfo, deflation, etc., may look at the state of a suspended\n  thread and expect not to race. I don\u0027t think the original code had\n  this completely correct either, but PS1 made it worse.\n- Documents some aspects of the code that confused me at times.\n- Avoids dereferencing the monitor owner Thread* unless it holds the\n  thread list lock, and thus knows that the thread won\u0027t go away.\n- Stores a Thread* instead of a thread_id with the monitor owner method\n  and dex pc information used for debugging. This is required to avoid\n  extra thread list lock acquisitions, since we need to dereference the\n  owner to get the thread id.\n- Makes the thread list Contains method public, again in order to\n  support the above. (This ignores C/C++ restrictions on dangling\n  pointer use. We already rely on violating those elsewhere, and\n  the committees are trying to get their story straight about this.)\n- Causes the spin loop to give up immediately if the process is\n  shutting down. This gets us to an actual idle state sooner in that\n  case, and should hopefully mitigate the shutdown issues somewhat.\n  (We tried not spinnning in \"suspended\" state, but that reintroduced\n  some performance issues.)\n- Makes runtime shutdown code more defensive. Clear fields pointing to\n  deallocated objects. Always wait for quiescence AFTER all threads\n  are suspended.\n- Consistently checks for a runtime that\u0027s shutting down or missing\n  after waking up from a futex wait, thus avoiding touching deallocated\n  memory. I believe this was the cause of b/121302864, which PS1\n  managed to aggravate.\n- SleepForever() was a very light sleeper, waking up once a second.\n  Fix that, so the daemon threads we leak on runtime shutdown cost\n  us less.\n- Remove a data race from the \"was the runtime deleted\" logic.\n\nBug: 140590186\nBug: 121302864\nTest: Build and boot AOSP.\nTest: art/test/testrunner/testrunner.py --host -b -t 1932-monitor-events-misc\nTest: art/test/testrunner/testrunner.py --host -b -t 132-daemon-locks-shutdown\nTest: art/test/testrunner/testrunner.py --host -b -t 004-ThreadStress\n\nChange-Id: I6667c61beed2ba68c84cd4c0821fb8e21e188bbc\n"
    },
    {
      "commit": "acd7060266dac5dbbba1698df4ae086754e8a2bf",
      "tree": "b624b4daf68361ecdb08fb113940da6ad4c2cae0",
      "parents": [
        "60d9775f9a56c6c4d18706528f0a31ac3707ea2c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 17:46:25 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 18 17:06:09 2019 +0000"
      },
      "message": "Update target footprint on process state switch\n\nTest: Greenday/MPTS test\nBug: 145161943\nChange-Id: I519fda7e15ca1acc68c5958ef67f1aae56c53662\n"
    },
    {
      "commit": "001e5b33ba7065dde0b85450830b605733ae1685",
      "tree": "0123782401f1bceedf7227d16fa6ce6d20a97f64",
      "parents": [
        "5c0177215ee88a9372b883d06661e25a8f6105de"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 15:30:33 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 16:36:42 2019 -0800"
      },
      "message": "Remove illegal PreObjectAlloc call\n\nWe were incorrectly calling PreObjectAlloc with\nRoles::uninterruptible_. Due to its location this generally won\u0027t\ncause any issues but the call is not allowed nor needed.\n\nTest: ./test.py --host\nBug: 146436130\nChange-Id: I9672e679f4683eb3151d149aa918ce7fcb482b69\n"
    },
    {
      "commit": "d0036ac18efcd7774775d521ae11178933041b95",
      "tree": "175db5c419006e3c146d92ef278100233dd2a827",
      "parents": [
        "69944683c33a316c9ed325ed686d9f81ad3665dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 11:47:12 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 11 10:03:05 2019 +0000"
      },
      "message": "Single-image boot image extensions.\n\nAllow boot image extensions to be compiled into a single\nart/oat/vdex triplet for any number of input dex files.\nSupport argument --image-fd so that this can be done with\nfile descriptors. This is intended for creating a boot\nimage extension in memory when starting zygote.\n\nRemove the possibility to specify multiple oat or image\nfiles. It was unused and untested.\n\nTest: New test in dex2oat_image_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I78e5410642a5df14c0891d87f27eefcb02156764\n"
    },
    {
      "commit": "0fce03f02c6aa57eca9dbe83a7f107d548892f1d",
      "tree": "a331bca640565c154faaa2960732a45b31d6c089",
      "parents": [
        "542e393976e4875e11b6e291191fbb77941bb524"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 08:55:13 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 21:18:59 2019 +0000"
      },
      "message": "Add scoped trace to VisitDexCacheArrays\n\nDiagnose how expensive dex cache relocation is.\n\nBug: 116052292\nTest: manual\n\nChange-Id: I032b72de0db61932bc6e6c4da2a910ce9b2d1939\n"
    },
    {
      "commit": "dd09f7114ccdbe4cefd76c37f2db8b899a991923",
      "tree": "64075014f0a0bee915ff34f4b22284abc61c222c",
      "parents": [
        "9561faf10d2e23f322da03743a30843296971fd0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 06 12:37:10 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Dec 06 16:55:36 2019 +0000"
      },
      "message": "Fix oatdump for boot image extensions.\n\nFix the ParseCheckBootImage() to check the first component\nof a multi-component boot image parameter.\n\nFix oatdump to fail nicely instead of aborting when it\nfails to load any image.\n\nFix error message for boot image component count mismatch.\n\nTest: m dump-oat (fails; check error message and exit)\nTest: Manually run one of the `m dump-oat` commands with\n      fixed --image argument (adding the primary image).\nChange-Id: I4e143e3415b1239f6afee5fa18899a1724519155\n"
    },
    {
      "commit": "b7bf843b04046f2758998c019e947611d0208217",
      "tree": "0a6033402ebde2859267c865dc4e14cde9170835",
      "parents": [
        "726e2dd6db60968b36c1d03feab236edc8fa806b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 03 13:18:50 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 06 10:57:08 2019 +0000"
      },
      "message": "Use provided dex filenames in oat file.\n\nRemove OatFile::RemoveRelativeEncodedDexFileLocation() and\nuse the provided `dex_filenames\u0027 (see below) if not empty,\nwithout checking for prefix match or host/target build type.\n\nAlso add extra primary/multi-dex location checking when\nopening an oat file. Since some tests were already creating\noat files from multiple dex files, rewrite the interface to\nbetter support that option, replacing the old argument\n`abs_dex_location` with `dex_filenames` that can provide\npaths to multiple dex files.\n\nTest: m test-art-host\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I36a9abca72872c41e4c10fdacbeadf551ca740dc\n"
    },
    {
      "commit": "726e2dd6db60968b36c1d03feab236edc8fa806b",
      "tree": "78b379652ed945f44051856a27e1597b6c7a65db",
      "parents": [
        "e3f775bace85f4fe02dfd4042091d2f7d6fcbc25"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 11:03:34 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 11:41:39 2019 -0800"
      },
      "message": "Read thread-local mark-stack inside critical section\n\nReading thread-local mark-stack outside mark_stack_lock_\u0027s critical\nsection (CS) and then adding it to pooled_mark_stacks_ vector in the CS\nleads to concurrency issue. A destroying mutator reads its mark-stack\nand then waits on mark_stack_lock_ as concurrently running GC-thread\nrevokes the mutator\u0027s mark-stack. Eventually, when mutator resumes, it\nadds the same mark-stack again to the pooled_mark_stacks_ vector.\n\nTherefore, reading the thread-local mark-stack should also be performed\ninside the mark_stack_lock_\u0027s CS.\n\nTest: art/test/testrunner/testrunner.py\nBug: 140119552\nChange-Id: I1daf7131e380699cd6bfcc8bfe2f2db52b661bd6\n"
    },
    {
      "commit": "9317031cd016e02a26cdeea8045df9925b33ffe2",
      "tree": "b1278f6d99c2e4c1375c1d9031d552c9875a4e3c",
      "parents": [
        "a0b4631f73547b44bff5c0c01b605d867cd083cc"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 04 13:46:11 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 01:53:26 2019 +0000"
      },
      "message": "Move thread-local mark-stack revocation outside SOA\n\nRevoking mark-stack inside a ScopedObjectAccess scope could potentially\ncall checkpoints in its destructor, which may trigger read-barrier,\nafter the mark-stack is revoked.\n\nTest: art/test/testrunner/testrunner.py --target\nBug: 140119552\nChange-Id: I90d62cbf5edbaf953de73aeb2b3b59612b6897d3\n"
    },
    {
      "commit": "a0b4631f73547b44bff5c0c01b605d867cd083cc",
      "tree": "c3463a2d168385e9441801002e96d43dd42f30c3",
      "parents": [
        "13e951d2bf4f989b0c561b96eed967e8f84d64ea"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 04 22:06:48 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 00:50:37 2019 +0000"
      },
      "message": "Revert submission\n\nReason for revert: b/140119552 has been fixed. The change no longer needed.\n\nChange-Id: I66c4744d8d72992bf01042a5043bd3dcfbbbe005\n"
    },
    {
      "commit": "13e951d2bf4f989b0c561b96eed967e8f84d64ea",
      "tree": "68edc727335048994abf31fc5cdf5bd5c6743b93",
      "parents": [
        "1caa1270a53fa08ab9c6934d5bdd2da79c7bf89e"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Nov 01 16:48:28 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 04 23:25:06 2019 +0000"
      },
      "message": "Fix mallinfo result interpretation\n\nWe assumed that mallinfo.hblkhd represents the amount of memory\nin large blocks allocated directly with mmap. That appears to be\nthe intended interpretation for glibc, but not jemalloc.\n\nIn the jemalloc case, remove the attempt to sanity check and repair\nthe uordblks field based on this information. The bug requiring it\nthere was fixed long ago. Based on old notes, the check may still be\nrequired for glibc. Out of an abundance of caution, leave it there for\nnow.\n\nAdd a conditional sanity check of the argument for\nRegisterNativeAllocation().\n\nThis was externally reported through unofficial channels.\n\nTest: Build and boot AOSP.\nChange-Id: I5d10f239057ed3efeb39f28e8c7d87849ee60ff0\n"
    },
    {
      "commit": "c6ca1170904c9f5bbdf0ee5b12d6d4cb093739fc",
      "tree": "b87de8f1391ed8ff0763f9d02f110edd032d7a91",
      "parents": [
        "be52a17c0f6af1c7563d8b9736ac4ace9b7ae0f0"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 27 15:47:02 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 18:22:10 2019 +0000"
      },
      "message": "Assert mutator doesn\u0027t get mark-stack assigned once destroyed\n\nWrite a non-null value to thread-local mark-stack pointer when\na mutator revokes the previously assigned thread-local mark-stack\nso that we can catch the mutator if it ever invokes the read-barrier\nor executes the flip function, both of which may assign mark-stack\nto the mutator.\n\nTest: art/test/testrunner/testrunner.py\nBug:140119552\nChange-Id: I82f43c8a3aab6dacb0f6bd35471fc2cdd969b154\n"
    },
    {
      "commit": "047081a1509762879a9eb51981982af65f419bac",
      "tree": "d4a4460d88c4ccda074017f25f7869b7a1bc780c",
      "parents": [
        "f585c1e4f8b011b7399668800da53ec726fbeb40"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 27 02:51:25 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 04:23:51 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Revoke CC\u0027s thread-local mark stack in ~Thread\"\"\n\nThis reverts commit add69acb7db965bd8d817a185e962e5474f690d1.\n\nBug: 140119552\nReason for revert: Causes b/144408451\n\nChange-Id: Ifaa78a3a13cbcc0524fa0fb8e25d377b6fd6ed2b\n"
    },
    {
      "commit": "f585c1e4f8b011b7399668800da53ec726fbeb40",
      "tree": "bd7a532ba4fdca8bc037a1b5faaef491a37f98e1",
      "parents": [
        "f92f6f12f3be976afb8f2ac8e8bbeaef72ef8b33"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Nov 25 10:41:23 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 02:32:51 2019 +0000"
      },
      "message": "Protect/Unprotect regions (region space) only in debug build\n\nDuring performance analysis it was observed that the\nallocation-intensive workloads get negatively impacted by the region\nprotect/unprotect. Therefore, we enable this only on debug builds.\n\nSome of the most affected benchmarks on Golem are as follows:\n\nBenchmark                           | armv8 | armv7 |  x64  |  x32\n------------------------------------------------------------------\nBinaryTrees                         |   8%  |   8%  |  13%  |  12%\nMicroAllocThreeFinalThrice          |  13%  |   8%  |  27%  |  30%\nMicroAllocThreeFinalTwice           |  13%  |   9%  |  32%  |  30%\nMicroAllocThreeFinal                |  13%  |   8%  |  33%  |  30%\nMicroAllocTwoFinal                  |  11%  |   9%  |  32%  |  31%\nMicroAllocOneFinal                  |  11%  |   9%  |  33%  |  31%\nMicroAllocBaseline                  |  12%  |   9%  |  33%  |  34%\nKotlinMicroTree                     | -0.4% |  0.7% |   8%  |   9%\nKotlinMicroMap                      |   6%  |   3%  | 0.7%  |   1%\nKotlinImgProc-CheckerboardMultiply  |   5%  |  0.5% |   0%  |-0.5%\nSplay                               |   5%  |   4%  |   2%  |   3%\nMicroLazyInitSingleThreadedSlow     |   8%  |  -2%  |  17%  |   7%\nMicroLazyInitImmutableSlow          |   5%  |  -2%  |  24%  |   8%\n\nTest: golem benchmarking\nBug:140130889\nChange-Id: I6be646bcc069d59625112c1b9ab91bbbc5f9f627\n"
    },
    {
      "commit": "dc540dfffb6863177143d024dd6f491775d77585",
      "tree": "91a2fe20c625790cead209c36ed4a45e0cf97c06",
      "parents": [
        "882d41435982c518506f544ab79a9fa0a90cc78f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 15 17:11:44 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 25 23:00:08 2019 +0000"
      },
      "message": "Add ScopedAllowThreadSuspension\n\nAdd a way to temporarily re-allow thread suspension. This makes it\ncleaner to do the pre alloc visitor stuff in heap-inl.\n\nTest: test-art-host\nChange-Id: Ifbb2725923df84e8e0bd073d415e99cb8090e681\n"
    },
    {
      "commit": "da3653f1424236c4778cf3806861d04f2ba9b07e",
      "tree": "6c0056048e04698b25d4ce0ea664417eb5a951c2",
      "parents": [
        "0ac78cf94fac523ab9bea0a42edac8eb8c09a05d"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Nov 25 10:07:56 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 25 19:37:04 2019 +0000"
      },
      "message": "Fix reinterpret cast in ImmuneSpaceCaptureRefsVisitor\n\nTest: art/test/testrunner/testrunner.py\nBug:145134481\nChange-Id: I5795aa22939fdc8b958f2298a196e63e28d5883e\n"
    },
    {
      "commit": "0ac78cf94fac523ab9bea0a42edac8eb8c09a05d",
      "tree": "5aa7e192fc054f2837de61e660446ef33c317197",
      "parents": [
        "80f1c2850a6cc501c42ff1cfa306ec725e2bf61f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 15:46:19 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 17:53:48 2019 +0000"
      },
      "message": "Fix vtable relocation for boot image extension.\n\nCheck relocated reference against destination address\nrange rather than source address range.\n\nTest: No crashes seen when framework is compiled as\n      a boot image extension (cherry-pick WIP CLs).\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nChange-Id: Ica5d898c80db7817a511d64046f3a84830cb2a45\n"
    },
    {
      "commit": "cb177da21e46df1ef58a537e87df0e042ed1418b",
      "tree": "f9a192a3949cc8d8f649865d1c7b5d30d539ea6a",
      "parents": [
        "78a44b9863cc88da3f546b39f9cf3081561b5c51"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Nov 21 16:40:06 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 22 03:03:42 2019 +0000"
      },
      "message": "Convert \u0027thread to mark-stack map empty\u0027 assertion into a CHECK\n\nUsing LOG(FATAL) doesn\u0027t print threads\u0027 headers, which is needed to\nidentify the thread(s) which has a mark-stack assigned.\n\nBug:144408451\nTest: art/test/testrunner/testrunner.py --host\nChange-Id: Ib273dd866e00f231ab67d9da7cad14659cbb7c6b\n"
    },
    {
      "commit": "a8f39186b26f66671c5e960e7f7a3b7ce231eab1",
      "tree": "231b20d3394af6305d89ecdefea34d755d622ee0",
      "parents": [
        "e61f16af3976ca8c0ab82cd3f21e5dff66225520"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 10:08:58 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 13:35:02 2019 +0000"
      },
      "message": "Clean up some image tests.\n\nMake ImageSpaceLoadingTest\u003cfalse,.,.\u003e use a custom image\nlocation based on ScratchFile to avoid accidentally finding\na pre-compiled boot image in default location.\n\nAdd -Xnoimage-dex2oat to Dex2oatImageTest to avoid useless\ndex2oat invocations that just slow down the test. Suppress\nerror messages from image loading that is supposed to fail.\nCompile only 3 dex files in TestModesAndFilters to make the\ntest faster (29s-\u003e20s on host).\n\nTest: m test-art-host-gtest\nChange-Id: Ia92e85f056027003d2fb50aa871c9fae7a5fdc01\n"
    },
    {
      "commit": "55d9aaad5d5ec9729ce7522eb88b0c69a0b3342d",
      "tree": "7e21d1f7f777aaf524660e7d1386a31adf71c306",
      "parents": [
        "505e56bb5519ac5ebc50ab1cc79509aa0de640cb"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Nov 19 19:02:34 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 20 19:01:14 2019 +0000"
      },
      "message": "Assert no-thread-mark-stack mapping after switching to shared mode\n\nBug:144408451\nTest: art/test/testrunner/testrunner.py --host -t 004-ThreadStress\nChange-Id: I6e7eddb138ba90a2c4bef7a39e48036ff5184e38\n"
    },
    {
      "commit": "986914bfd60c1cace9726e9029598d72cbf279e1",
      "tree": "556e5549254e4d5b280a63451fa8673ab36fba7b",
      "parents": [
        "5697faba0e910374da285f5f848d2aaf7ee6ffec"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:12:25 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 17:15:48 2019 +0000"
      },
      "message": "Revert^4 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 2f8c1ac61b0c611d67badea70261c851ed19b82a.\n\nIf there were pending tasks to jit compile a method which is made\nobsolete the JIT would CHECK fail, since the newly obsolete method is\nmarked DontCompile. This didn\u0027t happen with non-structural\nredefinition since in that case the \u0027valid\u0027 ArtMethod always remains\nthe same.\n\nTo fix this we just have the JitTask check if the method it\u0027s\ncompiling is compilable and fail if it\u0027s not.\n\nReason for revert: Fixed JIT check failure.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ib867b2de13bb4c2978b4538a5851c647caf0e1cc\n"
    },
    {
      "commit": "d56f7d1086b16f32c0771a41a4afb376b5fd3076",
      "tree": "41e048cb90e749ffb7e6496db841d4ca80628b5b",
      "parents": [
        "9965feffb2f55ff1e6dfacd396f65e642c22b799"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 19 06:03:11 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 10:28:55 2019 +0000"
      },
      "message": "Revert \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit 0d508a01106746e0d8865752850f4f03bcce1e01.\n\nReason for revert: Preparing revert, in case the art/ci/host-x86_64-cdex-fast failure recurs.\n\nBug: 140590186\n\nChange-Id: I404b6ee498ff4eda73ec3b8fc4bf8e92efb2705f\n"
    },
    {
      "commit": "2f8c1ac61b0c611d67badea70261c851ed19b82a",
      "tree": "97f87c13f69d033cf3f4120af66a7c5391c2da35",
      "parents": [
        "96d8585ebb9e21fc27a59ddd4173ca62ad93c194"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:09:31 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:11:18 2019 +0000"
      },
      "message": "Revert^3 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20.\n\nReason for revert: Seems to be failing with `Check failed: method-\u003eIsCompilable()`\n\nTest: None\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ida9228fa171ae16d803b5ad4438e233a2ed4ffb2\n"
    },
    {
      "commit": "8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20",
      "tree": "5aabe6d6af38514af0822ab9529a39f542aaa175",
      "parents": [
        "0d508a01106746e0d8865752850f4f03bcce1e01"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 18 17:52:55 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 18 20:19:43 2019 +0000"
      },
      "message": "Revert^2 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit d0e354e54da2f2e79b6fc2ff0e13d53c74976b08.\n\nWe were incorrectly continuing to use an ObjPtr over a suspend point\n(in this case a CollectGarbageInternal). This led for the ObjPtr to be\ninvalidated. Instead we should have been using a Handle (that already\nexists).\n\nReason for revert: Fixed stale ObjPtr use.\n\nTest: ./test.py --host\nTest: ./test/testrunner/run_build_test_target.py -j80 art-debug-gc\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: Ied9856a707d377e97d34c7450376caf2a0b83255\n"
    },
    {
      "commit": "0d508a01106746e0d8865752850f4f03bcce1e01",
      "tree": "727e9b6a420c3ff1206e97a9ab0369b9947cd797",
      "parents": [
        "25d536e67fc69e0413298989f1b21b6fdcece682"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 30 16:14:32 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Nov 18 18:06:50 2019 +0000"
      },
      "message": "Add spin loop to mutex, overhaul monitor\n\nSince Linux context switch overhead is typically larger than a\nmicrosecond, this may greatly reduce the overhead of waiting for a\nmutex that is only briefly held by another thread. Rather than going\nto sleep and having to be woken back up again, at a cost of several\nmicroseconds, we just spin, hopefully for much less than microsecond,\nuntil the mutex becomes available. It does waste some CPU cycles\nwhen spinning fails, either because the lock is held too long, or\nwe are being scheduled against the thread holding the lock. But we\nexpect those to be unlikely.\n\nWe test the lock only a few times, with pauses in between. It\u0027s\nunclear that\u0027s beneficial; we should perhaps just loop reading\nthe variable. In general, this needs further tuning.\n\nAdd a test that mutual exclusion works, which can also be run as\nlock microbenchmark.\n\nThe old monitor implementation did not benefit much from this, because\nit used mutex only as a low-level lock to protect the monitor data\nstructure. Instead use monitor_lock_ as the actual lock providing\nmutual exclusion for the monitor, i.e. hold onto it while the monitor\nis fatlocked.  Among other things, this requires that the monitor_lock_\nalways be acquired by, or explicitly on behalf of, the thread holding\nthe monitor.\n\nThis in turn makes it really hard to deflate a monitor held by another\nthread. Just stop doing that, since it was unclear whether that\u0027s\nactually beneficial.\n\nThe main advantages of the monitor change are:\n- Half the number of mutex acquisitions.\n- Easier to effectively spin.\n- No possibility of blocking while trying to release a monitor.\n\nNo longer compute owner method and dex pc values on monitor entry\nunless we\u0027re tracing. This was expensive and increased lock hold times\nsufficiently that it often made spinning ineffective.\n\nHave mutex acquisition call futex wait in a loop between updating\nwaiter count. The old way resulted in extra futex wakeups in highly\ncontended situations.\n\nConditionally disable frame size warning for Heap::PreZygoteFork().\nOtherwise the platform doesn\u0027t build with ART_USE_FUTEXES \u003d 0, which\nwe needed for testing.\n\nBased on the new test, this appears to get us about a decimal order\nof magnitude in inflated contended locking performance. Single-threaded\nor scalable applications (i.e. most) should be unaffected. But it should\nprevent applications that do encounter contention from \"falling off a\ncliff\", or at least greatly reduce the height of the cliff. And it\nshould make performance more repeatable by making it less dependent on\nwhether a monitor happens to get inflated.\n\nBug: 111835365\nBug: 140590186\nTest: Successfully built and ran monitor tests. Boots AOSP.\nTest: Build platform with ART_USE_FUTEXES \u003d 0.\nTest: Check contention messages in log after booting AOSP.\nTest: Check systrace output while partially running new test.\n\nChange-Id: Iff7457fff59efcb24e25d35a4ef71b67b8a9082a\n"
    },
    {
      "commit": "d0e354e54da2f2e79b6fc2ff0e13d53c74976b08",
      "tree": "743c595ef2cd94f89b487974e698d18c7d297330",
      "parents": [
        "c0200a984cacb6c0911d046a018cd11c7d20646b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:37:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:38:15 2019 +0000"
      },
      "message": "Revert \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 283bb322de84ac570b987c65a1015e2dbcbfad7c.\n\nReason for revert: Test flakes\n\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: I2259c030f03a72f6b7bcda10288bd23cb3258164\n"
    }
  ],
  "next": "283bb322de84ac570b987c65a1015e2dbcbfad7c"
}
