)]}'
{
  "log": [
    {
      "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": "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": "52cf5c09ab706f8bbd2a2cf2fb1ef1041f020314",
      "tree": "d6053a75595480417138b93357fd05089e40fb26",
      "parents": [
        "9a16f222cdf40e68b084316b6e768c14d4b9e020"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 02 12:20:36 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 02 12:20:36 2014 -0700"
      },
      "message": "Add inline to RosAlloc::AllocFromCurrentRunUnlocked().\n\nThis appears to make MemAllocTest faster by up to ~200 ms.\n\nBug: 14493155\nBug: 9986565\nChange-Id: I1b8ba1f3cecfa9e5b6fdc53f3ae00450be6023a8\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": "4fd2050ff1da3892b5e79276f831e09b2f8e5bc9",
      "tree": "71e31fe365dcd0fd124073ef626ad4365dce6996",
      "parents": [
        "5dee5df89aa2cefef6c886d5b9b642cc6f1c595b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 28 09:35:55 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 28 09:49:07 2014 -0700"
      },
      "message": "Fix racy DCHECKS.\n\nAdded a size bracket lock to fix a race condition where we were\ninserting into full_runs_ and non_full_runs_ holding a lock but\nreading without holding a lock from a different thread.\n\nBug: 14326370\nChange-Id: I5c492bddc4b9927e4a36603f3d787b046961675d\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": "4cd662e54440f76fc920cb2c67acab3bba8b33dd",
      "tree": "e2becdc06eded96215a1c9a501004ac3889e9107",
      "parents": [
        "5cff3083c00dfbae7b8c5c34b0bedbc514c91df9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:28:10 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:35:50 2014 -0700"
      },
      "message": "Fix Object::Clone()\u0027s pre-fence barrier.\n\nPass in a pre-fence barrier object that sets in the array length\ninstead of setting it after returning from AllocObject().\n\nFix another potential bug due to the wrong default pre-fence barrier\nparameter value. Since this appears error-prone, removed the default\nparameter value and make it an explicit parameter.\n\nFix another potential moving GC bug due to a lack of a SirtRef.\n\nBug: 13097759\nChange-Id: I466aa0e50f9e1a5dbf20be5a195edee619c7514e\n"
    },
    {
      "commit": "dd7624d2b9e599d57762d12031b10b89defc9807",
      "tree": "c972296737f992a84b1552561f823991d28403f0",
      "parents": [
        "8464a64a50190c06e95015a932eda9511fa6473d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 17:43:00 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 08:24:16 2014 -0700"
      },
      "message": "Allow mixing of thread offsets between 32 and 64bit architectures.\n\nBegin a more full implementation x86-64 REX prefixes.\nDoesn\u0027t implement 64bit thread offset support for the JNI compiler.\n\nChange-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147\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": "5d057056db1923947ba846b391d981759b15714a",
      "tree": "0e996c005077946f7505c333b65e7aee16a99bcb",
      "parents": [
        "37d4c1db4d705f5a28001f65afdd68d0527948d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 14:32:27 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 14:45:52 2014 -0700"
      },
      "message": "Improve use of CHECK macros.\n\nMotivated by a bogus compiler warning for debug with O2, switch from\nCHECK(x \u003c y) to the recommended CHECK_LT(x, y). Fix bug in\nRosAlloc::Initialize where an assignment was being performed within\na DCHECK.\n\nChange-Id: Iaf466849ae79ae1497162e81a3e092bf13109aa9\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": "f5b0e20b5b31f5f5465784adcf2a204dcd69c7fd",
      "tree": "9e1b211414c1dcb34f19a7b509e72aee2153a3cf",
      "parents": [
        "68bb649b128cd8760732524bd7ba58b49780d9d3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 11 17:02:22 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 13 13:43:43 2014 -0800"
      },
      "message": "Thread-local allocation stack.\n\nWith this change, Ritz MemAllocTest gets ~14% faster on N4.\n\nBug: 9986565\nChange-Id: I2fb7d6f7c5daa63dd4fc73ba739e6ae4ed820617\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": "218daa2d876c5989f956e8e54b8f28f33d11b31f",
      "tree": "574798ae69a69412660145af2294778c74af0362",
      "parents": [
        "73fbaadee029f310362c9d83a52177f00f2e5d77"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 25 14:51:44 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 25 14:51:44 2013 -0800"
      },
      "message": "Change thread.h to thread-inl.h for missing Thread::Current for rosalloc.cc\n\nChange-Id: Ieded9c5c93839c8f3eb5c5427229743a4c45c5ee\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": "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"
    }
  ]
}
