)]}'
{
  "log": [
    {
      "commit": "3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b",
      "tree": "77551c0a6d060e5a3723ad35d2ab101038f9328a",
      "parents": [
        "095d209342420563becfec6676b46a6c6b839107"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 12:22:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 16:30:13 2015 +0100"
      },
      "message": "ART: Clean up includes.\n\nReduce dependencies to improve incremental build times.\nBreak up circular dependency involving class_linker-inl.h.\n\nChange-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db\n"
    },
    {
      "commit": "4460a84be92b5a94ecfb5c650aef4945ab849c93",
      "tree": "2167b79cf593d5ff686aaf0e3bca3b7c571c6d69",
      "parents": [
        "4cfe74cb50b73f5f4b6dd32aabed55d044afe348"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 09 11:57:48 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 11 15:32:59 2015 -0700"
      },
      "message": "Rosalloc thread local allocation path without a cas.\n\nSpeedup on N4:\nMemAllocTest 3044 -\u003e 2396 (~21% reduction)\nBinaryTrees  4101 -\u003e 2929 (~26% reduction)\n\nBug: 9986565\nChange-Id: Ia1d1a37b9e001f903c3c056e8ec68fc8c623a78b\n"
    },
    {
      "commit": "3f3c6c030db14e47d3022f00403f46240623f339",
      "tree": "e1ed5312837ff53ce57279e2b30fbccb85666cfd",
      "parents": [
        "8542ff31bfa778a06316511672dc113a3f19ae5b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 20 14:16:06 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 20 14:16:06 2014 -0800"
      },
      "message": "Tune rosalloc buffer sizes.\n\nWe now use one-page buffers for size brackets 4-7, instead of two-page\nbuffers, and the first 8 size brackets for thread-local allocations,\ninstead of 11.\n\nNo slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and\nBinaryTrees.\n\n(cherrypick commit c4cd95fa37b7138a0fa26d07c235aa409542aecd)\n\nBug: 18377775\nChange-Id: I311f3adf9cab660d258833b17df7e6d905f73c72\n"
    },
    {
      "commit": "d7576328811e5103e99d31f834a857522cc1463f",
      "tree": "5c20cecc09ca8786434b663cbfcad31e56c7ac72",
      "parents": [
        "b7ce2074ef43ff221cdec6ddba953f0b0c67447b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 24 22:13:45 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 19:47:07 2014 -0800"
      },
      "message": "ART: Fix valgrind\n\nAllow ValgrindMallocSpace wrapper for RosAlloc.Requires refactoring,\nas ValgrindMallocSpace was bound to the signature of DlMallocSpace.\n\nAlso turn of native stack dumping when running under Valgrind to\nwork around b/18119146.\n\nRitzperf before and after\nMean               3190.725   3082.475\nStandard Error     11.68407   10.37911\nMode               3069       2980\nMedian             3182.5     3051.5\nVariance           16382.117  12927.125\nStandard Deviation 127.99264  113.69751\nKurtosis           1.1065632  0.3657799\nSkewness           0.9013805  0.9117792\nRange              644        528\nMinimum            2991       2928\nMaximum            3635       3456\nCount              120        120\n\nBug: 18119146\nChange-Id: I25558ea7cb578406011dede9d3d0bdbfee4ff4d5\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "59c07060a6fbb93e455b44f00098cafb8e7e26cc",
      "tree": "e6db8fc4af24aa1704be0cd516d27340ae3ecae5",
      "parents": [
        "b2a7ec2ad3f24c4094185cbf87bd0a39f727ffe7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 13:03:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 15:01:21 2014 -0700"
      },
      "message": "Work around ICE bugs with MIPS GCC and O1.\n\nAlso, work around GCC warning bugs where array accesses with explicit\nbounds checks are flagged as being out-of-bounds. Significantly, clean-up\nthe HandleScope so the array accesses don\u0027t appear out-of-bounds at compile\ntime.\n\nChange-Id: I5d66567559cc1f97cd0aa02c0df8575ebadbfe3d\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "58553c7fd89ce69857017322444265469bb6af62",
      "tree": "fd479699cb7919c82e4c05fbc7a249b01262befe",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 16:25:55 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 17:20:13 2014 -0700"
      },
      "message": "Add allocation tracking allocators to ROSAlloc\n\nUsed to monitor native memory usage, results are approximately\n12-100KB memory per app.\n\nChange-Id: If5a46cd8d543851948a8cb69487f3044965b44ce\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "f37a88b8e6db6c587fa449a12e40cb46be1689fc",
      "tree": "2e1d8b20e87796e1ad5d682dcce2a52a37f20123",
      "parents": [
        "9531f62ef260cbd0d0512e4c96f5d5dd2f4fdbb2"
      ],
      "author": {
        "name": "Zuo Wang",
        "email": "zuo.wang@intel.com",
        "time": "Thu Jul 10 04:26:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 11 18:32:07 2014 -0700"
      },
      "message": "ART: Compacting ROS/DlMalloc spaces with semispace copy GC\n\nCurrent semispace copy GC is mainly associated with bump pointer\nspaces. Though it squeezes fragmentation most aggressively, an extra\ncopy is required to re-establish the data in the ROS/DlMalloc space to allow\nCMS GCs to happen afterwards. As semispace copy GC is still stop-the-world,\nthis not only introduces unnecessary overheads but also longer response time.\nResponse time indicates the time duration between the start of transition\nrequest and the start of transition animation, which may impact the user\nexperience.\n\nUsing semispace copy GC to compact the data in a ROS space to another ROS(or\nDlMalloc space to another DlMalloc) space solves this problem. Although it\nsqueezes less fragmentation, CMS GCs can run immediately after the compaction.\n\nWe apply this algorithm in two cases:\n1) Right before throwing an OOM if -XX:EnableHSpaceCompactForOOM is passed in\nas true.\n2) When app is switched to background if the -XX:BackgroundGC option has value\nHSpaceCompact.\n\nFor case 1), OOMs are significantly delayed in the harmony GC stress test,\nwith compaction ratio up to 0.87. For case 2), compaction ratio around 0.5 is\nobserved in both built-in SMS and browser. Similar results have been obtained\non other apps as well.\n\nChange-Id: Iad9eabc6d046659fda3535ae20f21bc31f89ded3\nSigned-off-by: Wang, Zuo \u003czuo.wang@intel.com\u003e\nSigned-off-by: Chang, Yang \u003cyang.chang@intel.com\u003e\nSigned-off-by: Lei Li \u003clei.l.li@intel.com\u003e\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\n"
    },
    {
      "commit": "654dd48e2230e16bfaa225decce72b52642e2f78",
      "tree": "af06c5db6159159ffd701c0bbd43440e86ddf1fb",
      "parents": [
        "adce33da293b0eeaaf52673338770f22be71ca5d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jul 09 12:54:32 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 10 10:50:04 2014 -0700"
      },
      "message": "Improve the OOME fragmentation message.\n\nChange-Id: I390d3622f8d572ec7e34ea6dff9e1e0936e81ac1\n"
    },
    {
      "commit": "a5b5c55c8585b7ce915f0c7e1f66d121a7f7a078",
      "tree": "be7436ff11debe0ca7ef63503436127f4fdc4a5b",
      "parents": [
        "5de52242f3934f1604083d7215cdde1d0cc8ba7a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 24 14:48:59 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 09 17:29:18 2014 -0700"
      },
      "message": "Add notion of released vs empty pages to ROSAlloc.\n\nA notion of released vs empty pages helps get a more accurate view of\nhow much memory was released during heap trimming. Otherwise we get\nthat the same pages possibly get madvised multiple times without\ngetting dirtied.\n\nAlso enabled heap trimming of rosalloc spaces even when we care about\njank. This is safe to do since the trimming process only acquires\nlocks for short periods of time.\n\nDalvik PSS reduces from ~52M to ~50M after boot on N4.\n\nBug: 9969166\n\nChange-Id: I4012e0a2554f413d18efe1a0371fe18d1edabaa9\n"
    },
    {
      "commit": "a1c1c71e24c93a720bbf13de129c75a9a0bde37a",
      "tree": "7c86b8684123587894997077680fdc7324954f9c",
      "parents": [
        "9462a31caedefac3e04bd4aa5088e050ed188b30"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 23 17:53:09 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 23 17:55:22 2014 -0700"
      },
      "message": "Use reader lock of bulk free lock when not freeing.\n\nShould help reduce contention observed in systrace.\n\nChange-Id: Iadb81728d4ba797c3a68acea795b15d7f212e89b\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "5fcfa7d9d97246f7eb48a74356cb00ec2cbc0181",
      "tree": "6518529391c29cd21d38befd5dcc12922f194ede",
      "parents": [
        "30b65201aa9c953433dbde1288e9b1b883042cd1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 11:43:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 11:43:06 2014 -0700"
      },
      "message": "Move RoS allocator to use unordered_set.\n\nWork-around existing stlport issues for the target. This will go away when the\ntarget is using libc++.\n\nChange-Id: I8f213ecd9dc7d93d17f4a0d7e84182c12af6ca1b\n"
    },
    {
      "commit": "0651d41e41341fb2e9ef3ee41dc1f1bfc832dbbb",
      "tree": "ad060fe7f37f4958d15d15d868e0cf6fb074d2cb",
      "parents": [
        "adcfc69aa94cc1d406ef78e194b1ac36e389ad95"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 29 14:37:57 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 30 15:23:36 2014 -0700"
      },
      "message": "Add thread unsafe allocation methods to spaces.\n\nUsed by SS/GSS collectors since these run with mutators suspended and\nonly allocate from a single thread. Added AllocThreadUnsafe to\nBumpPointerSpace and RosAllocSpace. Added AllocThreadUnsafe which uses\ncurrent runs as thread local runs for a thread unsafe allocation.\nAdded code to revoke current runs which are the same idx as thread\nlocal runs.\n\nChanged:\nThe number of thread local runs in each thread is now the the number\nof thread local runs in RosAlloc instead of the number of size\nbrackets.\n\nTotal GC time / time on EvaluateAndApplyChanges.\nTLAB SS:\nBefore: 36.7s / 7254\nAfter: 16.1s / 4837\n\nTLAB GSS:\nBefore: 6.9s / 3973\nAfter: 5.7s / 3778\n\nBug: 8981901\n\nChange-Id: Id1d264ade3799f431bf7ebbdcca6146aefbeb632\n"
    },
    {
      "commit": "59e676038383cbbf5997601bc16b04b8d1cdca68",
      "tree": "e3aa628c32a81da9d3acf56f8a6901943d3f2bfc",
      "parents": [
        "4d2143539beb0d714135c28ece2d1903bd40feb9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 17:15:12 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 17:15:12 2014 -0700"
      },
      "message": "Rosalloc: fix signature for 64b\n\nChange-Id: I56df1df0118a0aa1584e51fb574902f7eb88cd80\n"
    },
    {
      "commit": "73d1e17b3afc7d5e56184f90bf819dc64956448a",
      "tree": "6fee546dcebc0c8979a62be7e75c337f79b2ac2e",
      "parents": [
        "e8256e7773a230337c3d137cbf0365f737820405"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 17:53:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 25 14:08:49 2014 -0700"
      },
      "message": "Enable reading page map without lock in RosAlloc::BulkFree\n\nEnabling this flag greatly reduces how much time was spent in the GC.\nIt was not done previously since it was regressing MemAllocTest. With\nthese RosAlloc changes, the benchmark score no longer regresses after\nwe enable the flag.\n\nChanged Run::AllocSlot to only have one mode of allocation. The new\nmode is finding the first free bit in the bitmap. This was\npreviously the slow path but is now the fast path. Some optimizations\nwhich enabled this include always having the alloc bitmap bits which\ncorrespond to invalid slots be set to 1. This prevents us from needing\na bound check since we will never end up allocating there.\n\nChanged revoking thread local buffer to point to an invalid run. The\ninvalid run is just a run which always has all the allocation bits set\nto 1. When a thread attempts to do a thread local allocation from here\nit will always fail and go slow path. This eliminates the need for a\nnull check for revoked runs.\n\nChanged zeroing of memory to happen during free, AllocPages should\nalways return zeroed memory. Added prefetching which happens when we\nallocate a run.\n\nSome refactoring to reduce duplicated code.\n\nErgonomics changes: Changed kStickyGcThroughputAdjustment to 1.0,\nthis helps reduce GC time.\n\nMeasurements (3 samples per benchmark):\nBefore: MemAllocTest scores: 3463, 3445, 3431\nEvaluateAndApplyChanges score | total GC time\nIter 1: 3485, 23.602436s\nIter 2: 3434, 22.499882s\nIter 3: 3483, 23.253274s\n\nAfter: MemAllocTest scores: 3495, 3417, 3409\nEvaluateAndApplyChanges score | total GC time:\nIter 1: 3375, 17.463462s\nIter 2: 3358, 16.185188s\nIter 3: 3367, 15.822312s\n\nBug: 8788501\nBug: 11790317\nBug: 9986565\nChange-Id: Ifd273a054824028dabed27c07c081dde1816f93c\n"
    },
    {
      "commit": "8585bad7be19ee4901333f7d02d1d4d3f04877d4",
      "tree": "be30d58fc4fd71a4fcbdffa0d19a4bf9aaaa4c50",
      "parents": [
        "82b1a81890970a8b07f9132aeae537a6c43df6b0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 17:53:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 22 10:57:22 2014 -0700"
      },
      "message": "Return bytes freed from RosAlloc.\n\nThere was a problem with how RosAlloc space sweeping worked caused by\nusing the object size in the FreeList call, this won\u0027t work well with\nclass unloading since the object\u0027s class may be freed before the\nobject.\n\nBug: 13989231\nChange-Id: I3df439c312310720fd34249334dec85030166fe9\n"
    },
    {
      "commit": "d9a88de76de4c81ad75340b824df64a68c739351",
      "tree": "c73fdb6fc236152b330407a30ce885463799bccd",
      "parents": [
        "b7a691f6398c55dacb3531d921e8cb298c3c8b8d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 07 13:52:31 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 07 16:07:04 2014 -0700"
      },
      "message": "Implement rosalloc page trimming without suspending threads.\n\nAlso, making it more efficient by not going through the chunks smaller\nthan the page size by not using InspectAll().\n\nChange-Id: I79ceb0374cb8aba5f6b8dde1afbace9af98b6cff\n"
    },
    {
      "commit": "c93c530efc175954160c3834c93961a1a946a35a",
      "tree": "32a389e2b4cfc3296075aed23f353b8d3042c9a5",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 16:15:37 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 12:17:56 2014 -0700"
      },
      "message": "Revoke rosalloc thread-local buffers at the checkpoint.\n\nIn the mark sweep collector, rosalloc thread-local buffers were\nrevoked during the pause. Now, they are revoked at the thread\ncheckpoint, as opposed to during the pause, which appears to help\nreduce the pause time.\n\nIn Ritz MemAllocTest, the average sticky pause time went down ~20%\n(925 us -\u003e 724 us).\n\nBug: 13394464\nBug: 9986565\nChange-Id: I104992a11b46d59264c0b9aa2db82b1ccf2826bc\n"
    },
    {
      "commit": "661974a5561e5ccdfbac8cb5d8df8b7e6f3483b8",
      "tree": "02e428694277d85a98505f8e814aba378fc7651c",
      "parents": [
        "3cd52df3d740f8a656233b199dfcaab165f415ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 09 11:23:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 12:44:22 2014 -0800"
      },
      "message": "Fix valgrind gtests and memory leaks.\n\nAll tests pass other than image_test which passes if some bad reads\nare disabled (buzbee working on this).\n\nChange-Id: Ifd6b6e3aed0bc867703b6e818353a9f296609422\n"
    },
    {
      "commit": "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac",
      "tree": "5ac4599dd8198cf4c6e8d265bf509dcef8acd89b",
      "parents": [
        "a9242dfd0a9547141ddaba84cd4e2ea0117dff5b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 11:27:10 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 03 17:44:15 2014 -0800"
      },
      "message": "Decrease lock uses in RosAlloc::BulkFree().\n\nRead rosalloc page map entries without a lock.\n\nDisabled for now.\n\nThis change speeds up Ritz MemAllocTest by ~25% on host and reduces\nthe GC sweep time, but somehow slows it down by ~5% on N4, which is\nwhy it\u0027s disabled for now. TODO: look into the slowdown on N4 more.\n\nBug: 8262791\nBug: 11790317\nChange-Id: I936bbee9cfbd389e70d6343503bf0923865d2a2c\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "6fac447555dc94a935b78198479cce645c837b89",
      "tree": "bcf1449999084b1e1dec3dac287f6f3670d7eda0",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 25 17:01:10 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 26 16:38:22 2014 -0800"
      },
      "message": "Make allocations report usable size.\n\nWork-in-progress to allow arrays to fill usable size. Bug: 13028925.\nUse C++11\u0027s override keyword on GCC \u003e\u003d 2.7 to ensure that we override GC and\nallocator methods.\nMove initial mirror::Class set up into a Functor so that all allocated objects\nhave non-zero sizes. Use this property to assert that all objects are never\nlarger than their usable size.\nOther bits of GC related clean-up, missing initialization, missing use of\nconst, hot methods in .cc files, \"unimplemented\" functions that fail at\nruntime in header files, reducing header file includes, move valgrind\u0027s space\ninto its own files, reduce number of array allocation routines.\n\nChange-Id: Id5760041a2d7f94dcaf17ec760f6095ec75dadaa\n"
    },
    {
      "commit": "a4adbfd44032d70e166e6f18096bbbed05a990ba",
      "tree": "8fe1c7e9e0a12ca5d97de79f034978cadf25b391",
      "parents": [
        "6957616884d7b290f2b8e98e2c4304695799134b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 04 18:12:17 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 07 15:33:21 2014 -0800"
      },
      "message": "RosAlloc verification.\n\nIf enabled, RosAlloc verification checks the allocator internal\nmetadata and invariants to detect bugs, heap corruptions, and race\nconditions. Added runtime options for enabling and disabling\nit. Enable it for the debug build.\n\nBug: 9986565\nBug: 12592026\nChange-Id: I923742b87805ae839f1549d78d0d492733da6a58\n"
    },
    {
      "commit": "70f60042558e0a766e98f2aaefbf80596ace4d53",
      "tree": "cbe6ccfc38ca39d6b49da6a57b06e290ad24cd52",
      "parents": [
        "1f00671edaaa34578319d0fdaf605600ed539d41"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Feb 03 12:31:29 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Feb 03 16:03:33 2014 -0800"
      },
      "message": "Fix a race condition in RosAlloc.\n\nFix a race condition in RosAlloc between RosAlloc::BulkFree() and\nRosAlloc::RevokeThreadLocalRuns() with regard to bulk_free_bit_map.\n\nChange-Id: I128917d5bdfe2dab604174ca4cbe228282578b8a\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nBug: 12592026\n"
    },
    {
      "commit": "573f7d2d68e1838a0485e6b40d90c967526e00c2",
      "tree": "c2f979480290e0248e878d7c78ab5aed743565d4",
      "parents": [
        "0bf1f266869776c2dd21b3242599d74ac80855f0"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Dec 17 11:54:23 2013 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Dec 17 17:27:53 2013 -0800"
      },
      "message": "Fix an array copy benchmark regression.\n\nAdd different page release modes to rosalloc.\n\nBug: 12064551\nChange-Id: Ib837bbd1a2757741a4e2743e0a1272bf46a30252\n"
    },
    {
      "commit": "3c2856e939f3daa7a95a1f8cb70f47e7a621db3c",
      "tree": "02483d5826ee7542394936f6bcce8aa66a462887",
      "parents": [
        "b6b4c459ef823ba62696796542519655c79423c2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 22 13:42:53 2013 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 22 13:42:53 2013 -0800"
      },
      "message": "Inline RosAlloc::Alloc().\n\nBug: 9986565\nChange-Id: I9bc411b8ae39379f9d730f40974857a585405fde\n"
    },
    {
      "commit": "e5eedcb4a634246d1f912992853441f715d705cc",
      "tree": "d80f453d4e32ec75143c152db0a95fc8464c855d",
      "parents": [
        "df810ac5405adce633943301b94ccd12fdd2d70a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 18 11:55:39 2013 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 18 11:55:39 2013 -0800"
      },
      "message": "Fix cpplint errors.\n\nChange-Id: I21f7423ebe69a77d456b0d318de73448489d2df4\n"
    },
    {
      "commit": "cf58d4adf461eb9b8e84baa8019054c88cd8acc6",
      "tree": "c49fa473b17e299bc649688076e7d69938741e4e",
      "parents": [
        "be56c9e63335ce99f1042e8660aeac4690b965a9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 14:21:22 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Sat Nov 16 21:35:03 2013 -0800"
      },
      "message": "A custom \u0027runs-of-slots\u0027 memory allocator.\n\nBug: 9986565\nChange-Id: I0eb73b9458752113f519483616536d219d5f798b\n"
    }
  ]
}
