)]}'
{
  "log": [
    {
      "commit": "2f0b6ebfbe1a7fef4dabcf6040e1c4377cddf601",
      "tree": "eeddd286d2b93bf166f98d3186c60daacb26f8eb",
      "parents": [
        "d768a0c13dc7e419bb9b4b59e8c12884231fe902"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Dec 11 09:28:38 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Dec 11 10:38:33 2018 -0800"
      },
      "message": "libmeminfo: Add ReadSysMemInfo variants\n\nThe new variant is primarily used in framework. See: go/ag/5780400\nfor usage. Also add tests, benchmarks and fix several issues found in SysMemInfo\nclass.\n\nNew benchmark results are:\n--------------------------------------------------------------\nBenchmark                       Time           CPU Iterations\n--------------------------------------------------------------\nBM_ReadMemInfo_old           7726 ns       7696 ns      90201\nBM_ReadMemInfo_new           7554 ns       7525 ns      90358\nBM_ZramTotal_old             6446 ns       6406 ns     108361\nBM_ZramTotal_new             6529 ns       6488 ns     106545\nBM_MemInfoWithZram_old      14485 ns      14412 ns      48492\nBM_MemInfoWithZram_new      20572 ns      20459 ns      33438\n--------------------------------------------------------------\n\nThe reason for BM_MemInfoWithZram_new shows worse numbers is because\nthe new API also tries to find more than 1 zram device (if it exists).\nThe old implementation hard coded everything to \"/sys/block/zram0/\"\n\nTest: libmeminfo_test 1\nBug: 114325007\nBug: 111694435\n\nChange-Id: I246d9e9a54986ee9b2542d1eaac79ecf7310b23a\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "44a4c0fdae179926c106dd565cbe4f36ec7270ec",
      "tree": "6dfc7e951523e83bccbaaaa69b8fdd4cbed4bab6",
      "parents": [
        "99ed4a0b4efbedf52020741b08f0180ea9b53755"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Dec 07 09:29:03 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Dec 07 09:29:03 2018 -0800"
      },
      "message": "Add OWNERS file\n\nChange-Id: Id8421b9d7fb391615232a8a8e75ad8a68e20dfbc\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "99ed4a0b4efbedf52020741b08f0180ea9b53755",
      "tree": "c3e2ede9911690aaaef1533f55bbb84c65067f8a",
      "parents": [
        "a14119d069ddc09e46263a37b40b73ffc91685a8"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Nov 19 17:42:55 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Dec 07 09:16:35 2018 -0800"
      },
      "message": "procmem2: Finish implementing all options\n\nIn the same time replace iomanipulators with\n::android::base::StringPrintf which makes the output much more readable\nand the overall program simpler.\n\nBug: 114325007\nBug: 111694435\nTest: procmem 1\nTest: procmem -W 1\nTest: procmem -u 1\nTest: procmem -p 1\nTest: procmem -w 1\nTest: procmem -w -u 1\nTest: procmem -w -p 1\n\nChange-Id: Ibf7ef59b24dfcb851c78a3b2fad672d96a708b98\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "a14119d069ddc09e46263a37b40b73ffc91685a8",
      "tree": "ad34153e79321deb949fecf231bfd149697459b5",
      "parents": [
        "c6497eb1dc39294f017de06f97739ea7bcb964fb"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Nov 16 09:18:57 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Dec 07 09:15:16 2018 -0800"
      },
      "message": "Add procrank2\n\nImplement procrank using new libmeminfo APIs. procrank2 is functionally\nequivalent to procrank except for the part where the old procrank would\nprint processes under each oomadj level if called with \u0027procrank -c -o\u0027.\n\nThe output format of \u0027procrank2\u0027 is identical to that of \u0027procrank\u0027.\n\u0027procrank2\u0027 also gives significant performance boost over \u0027procrank\u0027 but\ndoes cost a more memory as the library is written to 99% use case where\ncallers almost always want to read the memory usage of hte process.\n\nBug: 114325007\nBug: 111694435\nTest:\n     # adb push /google/data/ro/users/ss/sspatil/test-memutils.sh /data/local/tmp/\n     # adb push procmem2 /data/local/tmp \u0026\u0026 adb push procrank2 /data/local/tmp\n     # adb root \u0026\u0026 adb shell\n     $ cd /data/local/tmp/\n     $ chmod +x test-memutils.sh\n     $ ./test-memutils.sh 2\u003e\u00261 | tee test.log\nTest:\n  procrank:\n    0m00.43s real     0m00.11s user     0m00.32s system\n  procrank2:\n    0m00.42s real     0m00.05s user     0m00.36s system\n\nChange-Id: I37b71a4625248e333ba01801c0d8d7ef348e4cfa\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "c6497eb1dc39294f017de06f97739ea7bcb964fb",
      "tree": "f17b2a39e75216a69adcbdccd2c0eb9e3d0f3a07",
      "parents": [
        "f12919935099acefa0b3e34e2ee36db85e2165b0"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Nov 20 09:31:36 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Dec 05 09:31:10 2018 -0800"
      },
      "message": "libmeminfo: defer maps reading only when required for procmeminfo\n\nThis restores the original behavior. The main reason it should be this\nway is to make the class generic for all things memory under\n/proc/\u003cpid\u003e/. For example, with the current behavior, a program that\nonly needs to read /proc/\u003cpid\u003e/smaps_rollup will end up wasting time and\nmemory by parsing /proc/\u003cpid\u003e/maps when the object is being constructed.\nSame goes for a program that only wants to reset the working set.\n\nThe \u0027ProcMemInfo\u0027 object still retains the property that it can only be\nused once to read maps and the object must be destroyed + recreated to\nupdate the stats.\n\nBug: 114325007\nBug: 111694435\nTest: libmeminfo_test 1\nTest:\n # adb push /google/data/ro/users/ss/sspatil/test-memutils.sh /data/local/tmp/\n # adb push procmem2 /data/local/tmp \u0026\u0026 adb push procrank2 /data/local/tmp\n # adb root \u0026\u0026 adb shell\n $ cd /data/local/tmp/\n $ chmod +x test-memutils.sh\n $ ./test-memutils.sh 2\u003e\u00261 | tee test.log\n\nChange-Id: I856d3b78a0088cff02cbd010b29ffbe0e35f5ee2\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "f12919935099acefa0b3e34e2ee36db85e2165b0",
      "tree": "efd897b484a319e8aca722e1de8e4a3406583804",
      "parents": [
        "549feab6314690460e58f50e6084dfb95a1022e3"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Nov 19 15:25:18 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Dec 05 09:13:20 2018 -0800"
      },
      "message": "libmeminfo: Add support to reset workingset without procmeminfo objects\n\nBug: 114325007\nBug: 111694435\nTest: libmeminfo_test 1\n\nChange-Id: I816809cda13983e47294a956347a27085397cbcf\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "549feab6314690460e58f50e6084dfb95a1022e3",
      "tree": "955ff6cb40807c600296ed1bed943955bf2cbb3d",
      "parents": [
        "70fa72dd01ba9cac7ed4243676c9f7135926fce7"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Nov 19 11:38:40 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Dec 04 15:59:42 2018 -0800"
      },
      "message": "libmeminfo: Add support to fiter accounting based on page flags\n\nBug: 114325007\nBug: 111694435\nTest: libmeminfo_test 1 --gtest_filter\u003dValidateProcMemInfoFlags.*\n\nChange-Id: Ifa7006de78dd909b5b4db282a8c9931ebf97a68a\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "70fa72dd01ba9cac7ed4243676c9f7135926fce7",
      "tree": "3933f0e9ea1060c3875d0ac575c90ec34a094241",
      "parents": [
        "2259fdf7df44bc94cf03b955d9a97b30c5e7c490"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Nov 09 19:18:29 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Dec 04 15:59:39 2018 -0800"
      },
      "message": "libmeminfo: Add support to read zram memory consumption\n\nBug: 114325007\nBug: 111694435\nTest: libmeminfo_test 1 --gtest_filter\u003dSysMemInfoParse.TestZramTotal\nBenchmark: libmeminfo_benchmark --benchmark_filter\u003dBM_.*ZramTotal\nBenchmark Result on Blueline:\n-----------------------------------------------------------\nBenchmark                    Time           CPU Iterations\n-----------------------------------------------------------\nBM_OldReadZramTotal       3857 ns       3839 ns     134096\nBM_NewReadZramTotal       4461 ns       4440 ns     157341\n\nChange-Id: I5220fa17b101981ef859179960fe78fe68e84852\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "2259fdf7df44bc94cf03b955d9a97b30c5e7c490",
      "tree": "a30815a9d9d6b07bafd5b302dbe0775cea5c6c72",
      "parents": [
        "5cd79691770ae774c7b07a15453b6d63aedbe1fc"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Nov 09 16:42:45 2018 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Dec 04 14:02:28 2018 -0800"
      },
      "message": "libmeminfo: Add support for counting swap pages\n\nAdds procmeminfo API to get the vector of swap_offsets\nif SWAP is enabled on the device.\n\nBug: 114325007\nBug: 111694435\nTest: libmeminfo_test 1\nChange-Id: If0b52d042749a5bcb2c87aa2cb1595190d4769b1\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "9f1cf25332e33247b1b036ce07b32d09e076c346",
      "tree": "a20e2aaa8b6fa38a292bb7dd90dfadecf68b2ebd",
      "parents": [
        "e77298ce9fd0fbb6e94108f4c49c11f5efa856e1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 12 12:45:59 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 09:35:34 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I4f7ad84743e974b4b4d1d7256088f6c8b749a237\n"
    },
    {
      "commit": "54d87213745ddeda6bdecf7471db982d77c49c52",
      "tree": "6f2a09079839a2c959b0947f85bf6bb7b1655c63",
      "parents": [
        "e0c3a8d97b0a0493fdc3ebd0a648a2cdcd7986ab"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Aug 29 17:10:47 2018 -0700"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Nov 05 10:42:46 2018 -0800"
      },
      "message": "libmeminfo: Add libmeminfo to gather global and per-process memory stats\n\nThe library is expected to be a unified place for all components to read\nboth global and per-process memory accounting form kernel including\ngetting the working set. This change adds the PageInfo, MemInfo and\nProcMemInfo classes and verifies the implementation against libpagemap\nfor correctness.\n\nAdds a procmem2 tool show the usage.\n\nTODO: Plumbing in os_debug, add vmastats, zoneinfo etc parsing.\n\nTest: libmeminfo_test 1\nTest: procmem2 1\nTest: procmem2 -h -W 1\nTest: procmem2 -h -w 1\nTest: libmeminfo_benchmark\nBug: 111694435\nBug: 114325007\n\nChange-Id: I280440b1dc26a498170686d10fcf63f953a0dcbd\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    }
  ]
}
