)]}'
{
  "log": [
    {
      "commit": "40b529923598b739b2892a536a7692eedbed5685",
      "tree": "59e4c0f80e8d2f81f17e1c23e80e3ce036d0c186",
      "parents": [
        "c65e5c964d40a2cb21e020dd0346787317371a08",
        "a4c74dccbf2c3c206d5ec8d23c6d23df50e3849d"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 08:05:55 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 08:05:55 2025 -0700"
      },
      "message": "Merge \"df: Add DataFrame implementation and tests\" into main"
    },
    {
      "commit": "c65e5c964d40a2cb21e020dd0346787317371a08",
      "tree": "3472c6995ac3873266ed94bb7bd42d036fcb75b5",
      "parents": [
        "03e170c3adcfe379919bb5fccace303da87115f6",
        "e8bea8c566ed6bd04a899bac034ea682283d07aa"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 08:05:06 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 08:05:06 2025 -0700"
      },
      "message": "Merge changes Ica3fce95,I3d103777,I9253ed85 into main\n\n* changes:\n  df: add core bytecode implementation files for dataframe\n  df: Add core dataframe type system\n  tp: fix flexvector crash when previous pointer is null\n"
    },
    {
      "commit": "03e170c3adcfe379919bb5fccace303da87115f6",
      "tree": "8b1ea0a2394fd7cffa5e3f39020ef482acc8c7ed",
      "parents": [
        "126224a6de7ab97031cee97c235ca1f8402ba279",
        "1dd62687134ab35b86241c4236873d62c40b2891"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 07:52:37 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 07:52:37 2025 -0700"
      },
      "message": "Merge \"base: Add compiler.h files for DataFrame implementation\" into main"
    },
    {
      "commit": "126224a6de7ab97031cee97c235ca1f8402ba279",
      "tree": "7f20bce9c1cdc22c2b29c988e25c5b8a9b4314f7",
      "parents": [
        "94b1b5a667383be90f312b16bbdd2ff67080fedf",
        "bb9460840329e9844ca4b944dfd3b592853b190e"
      ],
      "author": {
        "name": "Igor Kraskevich",
        "email": "kraskevich@google.com",
        "time": "Thu Mar 27 07:45:21 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 07:45:21 2025 -0700"
      },
      "message": "Merge \"COPYBARA_IMPORT\u003dProject import generated by Copybara.\" into main"
    },
    {
      "commit": "94b1b5a667383be90f312b16bbdd2ff67080fedf",
      "tree": "aaa3d2a5b744a887951898e85dc8da7d80414188",
      "parents": [
        "db10888e18390215aa037a10917eac17744855b3",
        "edd3f1e127dbadef1d00c341fa886938c58c2649"
      ],
      "author": {
        "name": "Victor Vianna",
        "email": "victorvianna@google.com",
        "time": "Thu Mar 27 04:56:08 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 04:56:08 2025 -0700"
      },
      "message": "Merge \"Remove altimin@ from OWNERS\" into main"
    },
    {
      "commit": "edd3f1e127dbadef1d00c341fa886938c58c2649",
      "tree": "746c1d34a6cf4b66aad7d1102b1f6c25b8b139d9",
      "parents": [
        "b3fc262d1f1294a2653e98b909cebc836eb88f97"
      ],
      "author": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Thu Mar 27 10:23:26 2025 +0000"
      },
      "committer": {
        "name": "Victor Vianna",
        "email": "victorvianna@google.com",
        "time": "Thu Mar 27 03:24:33 2025 -0700"
      },
      "message": "Remove altimin@ from OWNERS\n\nFollow-up to https://crrev.com/c/6387046.\n\nBug: None\nChange-Id: Ifdce4a6d050f9ac1e93cd857d1b71ffdb8d2bd15\n"
    },
    {
      "commit": "a4c74dccbf2c3c206d5ec8d23c6d23df50e3849d",
      "tree": "964d9503011783819571c89034c379c97b86f28f",
      "parents": [
        "e8bea8c566ed6bd04a899bac034ea682283d07aa"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:28 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:28 2025 +0000"
      },
      "message": "df: Add DataFrame implementation and tests\n\nAdd the core DataFrame implementation with query planning support:\n* dataframe.h/cc: Main DataFrame class implementation with public API\n* query_plan.h/cc: Query planning infrastructure for DataFrame operations\n* dataframe_unittest.cc: Comprehensive test suite for DataFrame functionality\n\nThis implementation provides the foundation for efficient data\nmanipulation and querying in the trace processor, supporting\noperations like filtering, sorting, and aggregation.\n\nChange-Id: I0d002cea3032f09b304b82bdbda9dac5ce9bcc09"
    },
    {
      "commit": "e8bea8c566ed6bd04a899bac034ea682283d07aa",
      "tree": "dfd155281343fddca2f112c7d1ab93c126bf6289",
      "parents": [
        "d3a3967362b1e36db2d0915aa7047cafbab4e339"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:19 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:19 2025 +0000"
      },
      "message": "df: add core bytecode implementation files for dataframe\n\nThis commit adds the core bytecode implementation files\nthat define the bytecode instruction set and execution model\nfor the dataframe query engine.\n\nThese files include:\n- bytecode_core.h: Core bytecode execution engine\n- bytecode_instructions.h: Bytecode instruction definitions\n- bytecode_registers.h: Register management for bytecode execution\n\nThis is part of the larger dataframe implementation effort.\n\nChange-Id: Ica3fce954cc58130840edf53ff888606c953cf8c"
    },
    {
      "commit": "d3a3967362b1e36db2d0915aa7047cafbab4e339",
      "tree": "8c6e67ee418f15c89d4c6c188eadfebe3451f5dc",
      "parents": [
        "d949677b27792a6e9906e568697f8a88873607d4"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:11 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:11 2025 +0000"
      },
      "message": "df: Add core dataframe type system\n\nAdd the foundational type system for the dataframe implementation:\n\nspecs.h: Defines the public API types for column specifications, including\n  content types (e.g. IndexAsValue), operations (e.g. Eq), sort states,\n  nullability, and filter specifications.\n\ntypes.h: Implements the internal type system including storage abstractions,\n  overlays for special properties, and efficient range-based operations.\n\nChange-Id: I3d103777d695d6a34071ff9d6a97f091aca0aa5a"
    },
    {
      "commit": "d949677b27792a6e9906e568697f8a88873607d4",
      "tree": "6f33cc89fb32204a2a7a4759e1c14a27d43b7b8a",
      "parents": [
        "1dd62687134ab35b86241c4236873d62c40b2891"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:02 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:59:02 2025 +0000"
      },
      "message": "tp: fix flexvector crash when previous pointer is null\n\nChange-Id: I9253ed853708a0666a343990d2ead6c48c6f12f3"
    },
    {
      "commit": "1dd62687134ab35b86241c4236873d62c40b2891",
      "tree": "579de6a20fa29979797266ea725f94dfbcf9d221",
      "parents": [
        "db10888e18390215aa037a10917eac17744855b3"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:54:33 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 27 00:54:33 2025 +0000"
      },
      "message": "base: Add compiler.h files for DataFrame implementation\n\nAdd base compiler.h files needed for DataFrame implementation:\n* base/compiler.h: Internal compiler utilities and macros\n* public/compiler.h: Public API compiler utilities\n\nThese files provide the foundational compiler support needed\nacross the DataFrame implementation.\n\nChange-Id: Ia12e16f04ed77ab08252972bc79c27fb69730c8a"
    },
    {
      "commit": "db10888e18390215aa037a10917eac17744855b3",
      "tree": "66efbc0f971790feee36ac9448a1721de8595480",
      "parents": [
        "4e877fe5dbbf60f62cd8e8c4189cd3a879782549"
      ],
      "author": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Wed Mar 26 20:20:41 2025 +0000"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Wed Mar 26 20:20:41 2025 +0000"
      },
      "message": "ui: disable spellchecker for screenshot tests\n\nSomehow they behave inconsistently on the new CI\n\nChange-Id: I8b96f355e51061b471fe050e9827ea4e8126cf5c"
    },
    {
      "commit": "4e877fe5dbbf60f62cd8e8c4189cd3a879782549",
      "tree": "21c41132a781149f3c2f4424111680669e8613cf",
      "parents": [
        "8fd187fc6046ba5fd7ebb6ba52568b1ce2147013",
        "7fe6d741ca55db39e01904bdf70bc97ca81600d6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 26 10:41:07 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 10:41:07 2025 -0700"
      },
      "message": "Merge \"Make gn/write_buildflag_header.py executable\" into main"
    },
    {
      "commit": "8fd187fc6046ba5fd7ebb6ba52568b1ce2147013",
      "tree": "d99bc9c1a40899f43f7b6a8c95bc2f126b295351",
      "parents": [
        "0968cf8b9532502d327447a05f4a26ab35b7ec98",
        "b964b14ad3e982a3962078f2d9d6e32dc0d87244"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 26 10:01:46 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 10:01:46 2025 -0700"
      },
      "message": "Merge \"tprobes: misc nit fixups (headers/make_unique)\" into main"
    },
    {
      "commit": "0968cf8b9532502d327447a05f4a26ab35b7ec98",
      "tree": "f57004ac0ac0700f658023d1563c230e0654ed44",
      "parents": [
        "35117a9d43d835e0f79b04bdcb351dc8b1e91fdb",
        "09fb59107b51a142d6c62b12206d33ad2a50c1c6"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 09:59:39 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 09:59:39 2025 -0700"
      },
      "message": "Merge \"protos: rerun tools/gen_c_protos\" into main"
    },
    {
      "commit": "7fe6d741ca55db39e01904bdf70bc97ca81600d6",
      "tree": "9c019860a8f9d511203377f4ca0dbeab1369ae83",
      "parents": [
        "35117a9d43d835e0f79b04bdcb351dc8b1e91fdb"
      ],
      "author": {
        "name": "Etienne Dechamps",
        "email": "edechamps@google.com",
        "time": "Wed Mar 26 16:50:23 2025 +0000"
      },
      "committer": {
        "name": "Etienne Dechamps",
        "email": "edechamps@google.com",
        "time": "Wed Mar 26 16:51:13 2025 +0000"
      },
      "message": "Make gn/write_buildflag_header.py executable\n\nThis matters in certain contexts, such as attempting to run this as a\ngenrule in AOSP.\n\nTest: N/A\nBug: 346770535\nChange-Id: Ia0f171cec74213087c40f4cb25c08fddaafbcc87\n"
    },
    {
      "commit": "35117a9d43d835e0f79b04bdcb351dc8b1e91fdb",
      "tree": "fb9e6d8d4204cbf35f7eba851444396744644728",
      "parents": [
        "16f46150e3086fc8d0b671b86305eeac748f1126"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Mar 26 16:05:11 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Mar 26 09:06:32 2025 -0700"
      },
      "message": "tp: add core data structures for DataFrame\n\nAdd the following core data structures for DataFrame implementation:\n* BitVector: Efficient storage and manipulation of boolean values\n* FlexVector: std::vector like structure but without default inits\n* Slab: Fixed size block of memory with alignment and initalization\n\nChange-Id: Iccfeb83ea07648a4fd5bf6c578696723dfc4b1d2"
    },
    {
      "commit": "16f46150e3086fc8d0b671b86305eeac748f1126",
      "tree": "bda85640a217a0526562275187717f53d5d9a5bd",
      "parents": [
        "348e57ccae873a0a96c12fe2e8081ff948317fdf",
        "8d9b0dfd620b6c555ff67d998f3500013a01a561"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 08:51:56 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 08:51:56 2025 -0700"
      },
      "message": "Merge \"perfetto cts: split ART\u0027s MTS test cases out of CtsPerfettoTestCases, into a new target called CtsHeapprofdJavaCtsTest\" into main"
    },
    {
      "commit": "348e57ccae873a0a96c12fe2e8081ff948317fdf",
      "tree": "0f928146d3b862e036c80eb327df5b41e846f89b",
      "parents": [
        "b3fc262d1f1294a2653e98b909cebc836eb88f97",
        "94a1b58c6e533ad78a34654c25c7cabfd30d8024"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 26 08:43:26 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 08:43:26 2025 -0700"
      },
      "message": "Merge \"protos: remove ProfiledFrameSymbols\" into main"
    },
    {
      "commit": "b964b14ad3e982a3962078f2d9d6e32dc0d87244",
      "tree": "20f44f4a793f879f56d1f41b0c2bfc77e4d7b993",
      "parents": [
        "b3fc262d1f1294a2653e98b909cebc836eb88f97"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 15:38:21 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 15:38:21 2025 +0000"
      },
      "message": "tprobes: misc nit fixups (headers/make_unique)\n\nChange-Id: I8c9e70e399f0d443b4e12b090fcfbcd67f6ff9db"
    },
    {
      "commit": "b3fc262d1f1294a2653e98b909cebc836eb88f97",
      "tree": "a657aa679001f5dd178f77682698e07af39239ca",
      "parents": [
        "cdff1d17a0fbd29683b682fb8e3af7cda31e7ed7",
        "cfb36135900e52fc6fd374c199c0cb6783d612bf"
      ],
      "author": {
        "name": "Camillo Bruni",
        "email": "cbruni@google.com",
        "time": "Wed Mar 26 07:53:52 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 07:53:52 2025 -0700"
      },
      "message": "Merge \"[trace_processor] Update V8 jit.sql\" into main"
    },
    {
      "commit": "09fb59107b51a142d6c62b12206d33ad2a50c1c6",
      "tree": "a35749869d4f90d223ff71837338a81183ca18f5",
      "parents": [
        "94a1b58c6e533ad78a34654c25c7cabfd30d8024"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 14:32:53 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 07:33:18 2025 -0700"
      },
      "message": "protos: rerun tools/gen_c_protos\n\nChange-Id: I95ecb2125a822fc246caeedb3b0af9da084cf233"
    },
    {
      "commit": "94a1b58c6e533ad78a34654c25c7cabfd30d8024",
      "tree": "c2a4e1e8fa6f7137a9b9788e652a5dadae76d903",
      "parents": [
        "cdff1d17a0fbd29683b682fb8e3af7cda31e7ed7"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 13:40:17 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Mar 26 06:40:41 2025 -0700"
      },
      "message": "protos: remove ProfiledFrameSymbols\n\nUnused since 2019 (r.android.com/1127102) and misleading people that\nlook at our protos.\n\nChange-Id: I32f10159907d64cf1e9377fc235ca4aa1be008ff\n"
    },
    {
      "commit": "cdff1d17a0fbd29683b682fb8e3af7cda31e7ed7",
      "tree": "571f9d93e09d2bbc162dcb04b0f3616ef3155e18",
      "parents": [
        "115d12269df75bd2d82a2748d279506199eca1ee"
      ],
      "author": {
        "name": "Paul Kirth",
        "email": "paulkirth@google.com",
        "time": "Tue Mar 25 16:07:46 2025 -0700"
      },
      "committer": {
        "name": "Paul Kirth",
        "email": "paulkirth@google.com",
        "time": "Tue Mar 25 16:07:46 2025 -0700"
      },
      "message": "Fix -Wimplicit-int-conversion error\n\nNew versions of clang will start warning about more cases when the\nconversion happens, which breaks -Werror builds.\n\nBug: 402753152\nChange-Id: I2774f88eb047db9098ba835c56d299a87d4f740e\n"
    },
    {
      "commit": "115d12269df75bd2d82a2748d279506199eca1ee",
      "tree": "581f3be4024eac06942d0689df3f9cb032896824",
      "parents": [
        "5891c5b92b1a3375d916d68a8883c6fa08c2e9fc",
        "b2b395173817f9e72a3abb3988c2cc07ecacebd8"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Mar 25 14:42:27 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 14:42:27 2025 -0700"
      },
      "message": "Merge \"tp: add TypeSet abstraction for dataframe\" into main"
    },
    {
      "commit": "5891c5b92b1a3375d916d68a8883c6fa08c2e9fc",
      "tree": "344ffb7cbfcd29656f274a439554f3d6be5b2042",
      "parents": [
        "fc40adfbb9b0fd7c9131dac61e7d9aff136ebf9a",
        "a17d375c73503771c2b84281d2bc329878ef8fd7"
      ],
      "author": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Tue Mar 25 14:23:02 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 14:23:02 2025 -0700"
      },
      "message": "Merge changes Ia1e0c88e,I2f4d3f62 into main\n\n* changes:\n  Add app wakelock proto importer\n  Expose AppWakelock protos to java.\n"
    },
    {
      "commit": "b2b395173817f9e72a3abb3988c2cc07ecacebd8",
      "tree": "e718dc0ba41d4ccae6a852d55a274a5219f3d63a",
      "parents": [
        "b3830855e44a506d5db287e47e8960c99dd31702"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Mar 25 21:02:53 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Mar 25 21:02:53 2025 +0000"
      },
      "message": "tp: add TypeSet abstraction for dataframe\n\nThis class is extremely helpful when implementing data frame. It\u0027s\nbasically a tagged union (like std::variant) but less verbose and with\nmore explicit support for upcasting/downcasting. It makes writing code\nwith lots of tagged unions way more compact vs just using std::variant\ndirectly.\n\nChange-Id: Ic8f177acac9c83daa83fbe2884688331c1312b1e"
    },
    {
      "commit": "fc40adfbb9b0fd7c9131dac61e7d9aff136ebf9a",
      "tree": "adf4e2415019ef60c8bdf4e17c3d1bef93f64cad",
      "parents": [
        "d513c42889e65b7a7e779ba014d81293496d588f",
        "3f0a0d0c2ed9884680e7b9cd866f46018fb9f752"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Mar 25 13:49:27 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 13:49:27 2025 -0700"
      },
      "message": "Merge \"ui: Fix crash when android_logs.tag is null\" into main"
    },
    {
      "commit": "bb9460840329e9844ca4b944dfd3b592853b190e",
      "tree": "4046bdac24bad7e8936f839fc58e98f9e26d3a17",
      "parents": [
        "d513c42889e65b7a7e779ba014d81293496d588f"
      ],
      "author": {
        "name": "Perfetto Team",
        "email": "perfetto-dev@google.com",
        "time": "Tue Mar 25 12:18:52 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 25 12:29:59 2025 -0700"
      },
      "message": "COPYBARA_IMPORT\u003dProject import generated by Copybara.\n\nGitOrigin-RevId: 60d0b5b2397e5604e5520ce8841c007c003aae33\nChange-Id: I998ab8e4d2807001e63d3ac89d1d4d4965a76945\n"
    },
    {
      "commit": "d513c42889e65b7a7e779ba014d81293496d588f",
      "tree": "9ce3fbdd75f609851e3b89812fe06a9cbcbc45df",
      "parents": [
        "b3830855e44a506d5db287e47e8960c99dd31702",
        "30844eeb758a189e8a8a559c9c8f64e51d2a66b0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Mar 25 12:19:21 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 12:19:21 2025 -0700"
      },
      "message": "Merge \"data_source: Fix race in PerfettoDsImplGetInstanceLocked()\" into main"
    },
    {
      "commit": "3f0a0d0c2ed9884680e7b9cd866f46018fb9f752",
      "tree": "4a4e91c5018425bce66a9ae7e66bc8c869304d19",
      "parents": [
        "b3830855e44a506d5db287e47e8960c99dd31702"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Mar 25 17:52:38 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Mar 25 17:52:38 2025 +0000"
      },
      "message": "ui: Fix crash when android_logs.tag is null\n\nFixes: https://github.com/google/perfetto/issues/1054\nChange-Id: I30801859fe30424f536783ab2cfcdeceb9e7a2eb"
    },
    {
      "commit": "30844eeb758a189e8a8a559c9c8f64e51d2a66b0",
      "tree": "2d26ae4501ef59530c846450593ae1981666ee52",
      "parents": [
        "be2ec3bc2bcd2c98af7f69bc7ea47cd8534a9f7e"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Tue Mar 25 17:40:56 2025 +0000"
      },
      "committer": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Tue Mar 25 17:46:57 2025 +0000"
      },
      "message": "data_source: Fix race in PerfettoDsImplGetInstanceLocked()\n\nThere\u0027s a race condition between `PerfettoDsImplGetInstanceLocked` and\nstopping tracing.\n\nThe following execution can happen:\n\n* Thread1 PerfettoDsImplGetInstanceLocked checks the valid_instances bitmap.\n* Thread2 StopDataSource_AsyncEnd clears the valid_instances bitmap.\n* Thread2 acquires the mutex.\n* Thread2 destroys the data_source unique_ptr.\n* Thread2 releases the mutex.\n* Thread1 PerfettoDsImplGetInstanceLocked acquires the mutex.\n* Thread1 data_source is nullptr.\n* Thread1 will perform a nullptr dereference.\n\nFix the problem by checking for the data_source pointer before accessing\nit.\n\nI managed to reproduce the race manually with the unittest below, and I\nchecked that the fix works.\n\n```\nTEST_F(SharedLibDataSourceTest, GetInstanceLockedHammer) {\n  bool ignored \u003d false;\n  void* const kInstancePtr \u003d \u0026ignored;\n  ON_CALL(ds2_callbacks_, OnSetup(_, _, _, _, kDataSource2UserArg, _))\n      .WillByDefault(Return(kInstancePtr));\n\n  std::atomic\u003cbool\u003e done \u003d false;\n  std::thread t([\u0026] {\n    while (!done) {\n      PERFETTO_DS_TRACE(data_source_2, ctx) {\n        void* arg \u003d\n            PerfettoDsImplGetInstanceLocked(data_source_2.impl, ctx.impl.inst_id);\n        if (arg) {\n          PerfettoDsImplReleaseInstanceLocked(data_source_2.impl,\n                                              ctx.impl.inst_id);\n        }\n      }\n    }\n  });\n\n  for (size_t i \u003d 0; i \u003c 60000; i++) {\n    TracingSession tracing_session \u003d\n        TracingSession::Builder().set_data_source_name(kDataSourceName2).Build();\n    std::this_thread::yield();\n\n    tracing_session.StopBlocking();\n  }\n  done \u003d true;\n  t.join();\n}\n```\n\nThe unittest spams the logs too much, I don\u0027t think it should be\nsubmitted.\n\nTested: Unsubmitted unittest\nFixes: 393585228\n\nChange-Id: I4e04d5c2fe0f6b31e3f0c41d5e369b642b288c86\n"
    },
    {
      "commit": "a17d375c73503771c2b84281d2bc329878ef8fd7",
      "tree": "07bcc0ade107b45fab2f19e5d48eb8bab32d36a8",
      "parents": [
        "946bdb3cd5f7129e61ee74fc4e4b0fe2f01b2ec4"
      ],
      "author": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Wed Mar 19 08:06:18 2025 -0700"
      },
      "committer": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Tue Mar 25 10:21:52 2025 -0700"
      },
      "message": "Add app wakelock proto importer\n\nBug: 400774865\nTest: run-dev-server \u0026 load trace\nChange-Id: Ia1e0c88ea2a9f739bed2382a610799cd7daae92d\n"
    },
    {
      "commit": "b3830855e44a506d5db287e47e8960c99dd31702",
      "tree": "6d741e3e9370324353ca5ce7171fc5ef8a5bbeca",
      "parents": [
        "be2ec3bc2bcd2c98af7f69bc7ea47cd8534a9f7e",
        "7848d2536c5bf0e4b69f46ce1901bcdbbd35726c"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Mar 25 10:02:25 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 10:02:25 2025 -0700"
      },
      "message": "Merge \"COPYBARA_IMPORT\u003dProject import generated by Copybara.\" into main"
    },
    {
      "commit": "be2ec3bc2bcd2c98af7f69bc7ea47cd8534a9f7e",
      "tree": "bd2df02500da2f7acd5b10a1d0a1dd0627ff0ef4",
      "parents": [
        "5a889f78adeaa3353cccfe1ca82e1d804505f9d7",
        "d5416abee835302b0711cc4aa1b02e453cf611a5"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Tue Mar 25 09:54:04 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 09:54:04 2025 -0700"
      },
      "message": "Merge \"tp: add is_kthread as a process.arg when parsing procfs packets\" into main"
    },
    {
      "commit": "8d9b0dfd620b6c555ff67d998f3500013a01a561",
      "tree": "dec4e19b92ef7fc91ff9f7837c2d5bb285e92a83",
      "parents": [
        "8046f824c55783835a88f98d1b806ec7b7e81a9c"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Tue Mar 25 14:20:46 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Tue Mar 25 09:34:35 2025 -0700"
      },
      "message": "perfetto cts: split ART\u0027s MTS test cases out of CtsPerfettoTestCases, into a new target called CtsHeapprofdJavaCtsTest\n\nThe current configuration is incorrect in the context of MCTS, because\nthe entirety of CtsPerfettoTestCases is being run on older platforms.\nThe new platform-oriented tests (e.g. the behaviour of /system binaries)\nwill never succeed there since the associated platform code is absent.\n\nThis is because the MTS-\u003eMCTS migration overlooked the fact that ART MTS\nran only a subset of targets in the GTest CtsPerfettoTestCases binary[1].\n\nThis patch splits the MTS-specific tests into a new test target. Note\nthat it also introduces two new tests into the ART MTS. Since the custom\nallocator NDK API tests were not matching the test name filter[1].\n\nThe allocator test were called:\n* HeapprofdCtsTest::JavaHeapRuntime\n* HeapprofdCtsTest::JavaHeapStartup\nAnd they are now called:\n* HeapprofdJavaCtsTest::ArtHeapCustomAllocatorRuntime\n* HeapprofdJavaCtsTest::ArtHeapCustomAllocatorStartup\n\nMore details on the bug.\n\n[1] https://cs.android.com/android/platform/superproject/main/+/main:test/mts/tools/mts-tradefed/res/config/mts-art-extra-tests-list-user.xml;l\u003d17;drc\u003dbe9d63305cffabfea54646f7a2490f3d37e620e8\n\nTested: atest CtsPerfettoTestCases;\nTested: atest CtsHeapprofdJavaCtsTest\nTested: mts-tradefed run commandAndExit mts-art-extra\nBug: 406239886\nChange-Id: I5170d2aca09adc6c908e3813fed1574256f8a6a6\n"
    },
    {
      "commit": "5a889f78adeaa3353cccfe1ca82e1d804505f9d7",
      "tree": "85f7cae110945c353b34f64f2eac38c70ca4e5f4",
      "parents": [
        "8046f824c55783835a88f98d1b806ec7b7e81a9c",
        "c76b927d2e245dc78fe6a09a76b78addc9339e97"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Tue Mar 25 08:55:44 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 08:55:44 2025 -0700"
      },
      "message": "Merge \"tp: Fix Resize bug when starting size was 512\" into main"
    },
    {
      "commit": "d5416abee835302b0711cc4aa1b02e453cf611a5",
      "tree": "e7e5a49c75618db88b87d56b33eb0b7f5d6e829a",
      "parents": [
        "8046f824c55783835a88f98d1b806ec7b7e81a9c"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Tue Mar 25 15:45:37 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Tue Mar 25 15:45:37 2025 +0000"
      },
      "message": "tp: add is_kthread as a process.arg when parsing procfs packets\n\nThis doesn\u0027t obsolete any of the existing \"descendant of kthreadd\" logic\nin perfetto since that is more general, whereas the new procfs field is\nperfetto v50+ and linux v6.4+.\n\nBug: 400784297\nChange-Id: I56290f2f21684d5a6d31ac46dfcf33ed114433a9"
    },
    {
      "commit": "946bdb3cd5f7129e61ee74fc4e4b0fe2f01b2ec4",
      "tree": "29d41e026f804d44639df864da199f85f25a9f18",
      "parents": [
        "6e290facb6b7da8e5bd512e61d7e6de215df9b55"
      ],
      "author": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Tue Mar 18 13:27:21 2025 -0700"
      },
      "committer": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Tue Mar 25 07:15:36 2025 -0700"
      },
      "message": "Expose AppWakelock protos to java.\n\nBug: 400774865\nTest: build\nChange-Id: I2f4d3f624e303dc469e4c9e66928e1a9600c3401\n"
    },
    {
      "commit": "cfb36135900e52fc6fd374c199c0cb6783d612bf",
      "tree": "2df2cc7a2b2f5f596496206b892ab40aedd6287e",
      "parents": [
        "8046f824c55783835a88f98d1b806ec7b7e81a9c"
      ],
      "author": {
        "name": "Camillo Bruni",
        "email": "cbruni@google.com",
        "time": "Tue Mar 25 15:04:33 2025 +0100"
      },
      "committer": {
        "name": "Camillo Bruni",
        "email": "cbruni@google.com",
        "time": "Tue Mar 25 15:04:33 2025 +0100"
      },
      "message": "[trace_processor] Update V8 jit.sql\n\nAdd wasm wire_bytes decoding.\n\nBug: 377639002\nChange-Id: I62845f4bcbaeecec968d0925d0d6613346ad2a2d"
    },
    {
      "commit": "c76b927d2e245dc78fe6a09a76b78addc9339e97",
      "tree": "00af10bb66aadc460390982f59656d91d2432583",
      "parents": [
        "2ce4ac5b79385d24c6bc130c2d412e2b3795f64e"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Tue Mar 25 11:18:20 2025 +0000"
      },
      "committer": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Tue Mar 25 11:18:20 2025 +0000"
      },
      "message": "tp: Fix Resize bug when starting size was 512\n\nFixes:378877302\nChange-Id: I33e5dc4815d0342459f6dace278af5c7df3673ea"
    },
    {
      "commit": "8046f824c55783835a88f98d1b806ec7b7e81a9c",
      "tree": "836364d65554fd9ed92b44131e3d546e91a3bb1c",
      "parents": [
        "13e3bb887312ff2cc65bfd33f2799149efa00ac9",
        "67ee1d22c9106bb409684f0cc6f885e381ce8359"
      ],
      "author": {
        "name": "Kshitij Gupta",
        "email": "kshitijmg@google.com",
        "time": "Tue Mar 25 03:51:35 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 03:51:35 2025 -0700"
      },
      "message": "Merge \"plugins: Update PinAndroidPerfMetrics to automatically pin Jank CUJs\" into main"
    },
    {
      "commit": "13e3bb887312ff2cc65bfd33f2799149efa00ac9",
      "tree": "c2faab6af60bfb96972f94699f2490461eb4c716",
      "parents": [
        "6b56f59b220659e6367b5f8194762ff0b80e9ca2",
        "16e01ca6889306c97d1b4dcbcdae25bf6765cf80"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Mon Mar 24 14:52:35 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 14:52:35 2025 -0700"
      },
      "message": "Merge \"Add is_kthread and cmdline_is_comm to process_tree\" into main"
    },
    {
      "commit": "6b56f59b220659e6367b5f8194762ff0b80e9ca2",
      "tree": "0e72118c25edf339ac048eeff24ed87bc0b28449",
      "parents": [
        "c5f3bbf49aeafaed9cf434934e9a7a3a8f94d945",
        "5496dc8c3ae9a30e1dc49a3abbcc017389b8dea4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 14:39:03 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 14:39:03 2025 -0700"
      },
      "message": "Merge \"[stdlib]: Add macro to compute the intersections of intervals\" into main"
    },
    {
      "commit": "5496dc8c3ae9a30e1dc49a3abbcc017389b8dea4",
      "tree": "e3c9f49240ea6140f5dd1d5c7f6771ffdcb5adf7",
      "parents": [
        "662b74ec39f711313fcc3d0e2a9d5513d95ef0b3"
      ],
      "author": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Thu Mar 20 14:05:02 2025 -0700"
      },
      "committer": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Mon Mar 24 15:32:40 2025 -0400"
      },
      "message": "[stdlib]: Add macro to compute the intersections of intervals\n\nTest: tools/diff_test_trace_processor.py \\\nout/linux/trace_processor_shell --name-filter \u0027.*intersect_list.*\u0027\nBug: 359947644\nChange-Id: I4631e020d8ef3470e5c26eae0aaf04b4074c95ed\n"
    },
    {
      "commit": "c5f3bbf49aeafaed9cf434934e9a7a3a8f94d945",
      "tree": "f80c67e32c3aecb9bbf04f1b5548e759bb4dad93",
      "parents": [
        "ea324cfbfd21cbbfbc1122e33575ab24b81cecbe",
        "916ab7cf229c7d4b55255a32c45d240daf087c56"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 11:34:05 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 11:34:05 2025 -0700"
      },
      "message": "Merge \"tp: make public _slice_with_thread_and_process_info\" into main"
    },
    {
      "commit": "ea324cfbfd21cbbfbc1122e33575ab24b81cecbe",
      "tree": "64b224e58cf10c2664c367bfabc6ede87c590d55",
      "parents": [
        "662b74ec39f711313fcc3d0e2a9d5513d95ef0b3",
        "77a7b0da8d34a1f9c4431402c976a6bb1ff50683"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 11:03:19 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 11:03:19 2025 -0700"
      },
      "message": "Merge \"ui: Remove 30,000 row limit on raw UI queries\" into main"
    },
    {
      "commit": "77a7b0da8d34a1f9c4431402c976a6bb1ff50683",
      "tree": "199f15380f8be8c505b14efce85f8fdb78282343",
      "parents": [
        "d5ee2fb614866ffe5950d4f06e99ac692bfd1445"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 17:29:08 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 10:31:17 2025 -0700"
      },
      "message": "ui: Remove 30,000 row limit on raw UI queries\n\nSince we now page results in all query result tables, we can now remove\nthe 30,000 row limit on raw UI queries.\n\nChange-Id: If3b4ddd96201fa368bbdd5ba5ae3f0783c93a0c2\n"
    },
    {
      "commit": "916ab7cf229c7d4b55255a32c45d240daf087c56",
      "tree": "b8ca7e363e0902e018e846fc57ef28c0c58c9b67",
      "parents": [
        "d5ee2fb614866ffe5950d4f06e99ac692bfd1445"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Mar 24 16:22:34 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Mar 24 16:22:34 2025 +0000"
      },
      "message": "tp: make public _slice_with_thread_and_process_info\n\nThis CL makes a widely used private table of TP public and publishes it\nin the right place.\n\nPSA: if this CL broke you, it\u0027s a warning to NOT rely on private tables\nof TP. Please reach out to us to make tables public or you are liable\nfor breakages like this.\n\nChange-Id: Ibef6ebb5de8af939a4d4f49491604a574c9c4878"
    },
    {
      "commit": "16e01ca6889306c97d1b4dcbcdae25bf6765cf80",
      "tree": "a0a2f384ded20b55cfe6a46273e3c66c46f59bc6",
      "parents": [
        "020d559ba65bf2d9e7477046a752fdb459c640c6"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Mon Mar 24 15:24:50 2025 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Mon Mar 24 08:47:02 2025 -0700"
      },
      "message": "Add is_kthread and cmdline_is_comm to process_tree\n\nAlways setting is_kthread (~2 bytes on the wire) if the kernel has that\nfield in /proc/pid/status.\n\nExample packet:\n  processes {\n    pid: 2039721\n    ppid: 2\n    uid: 0\n    cmdline: \"kworker/10:0-mm_percpu_wq\"\n    cmdline_is_comm: true\n    is_kthread: true\n  }\n\nKernel commit: https://github.com/torvalds/linux/commit/522dc4e\n\nBug: 400784297\nChange-Id: I0ccbccebd07bb8965b8a0b486c461cd2e839a251\n"
    },
    {
      "commit": "662b74ec39f711313fcc3d0e2a9d5513d95ef0b3",
      "tree": "d8503c3fa5057a93210454fb4391bd5bef41e0fd",
      "parents": [
        "d5ee2fb614866ffe5950d4f06e99ac692bfd1445"
      ],
      "author": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Mon Mar 24 08:25:18 2025 -0700"
      },
      "committer": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Mon Mar 24 08:25:55 2025 -0700"
      },
      "message": "[stdlib]: Reland aosp/3552161 - Add macro to compute the union of a set of intervals\n\nTest: tools/diff_test_trace_processor.py out/linux/trace_processor_shell --name-filter \u0027.*remove_overlap.*\u0027\nChange-Id: I4701014d4c9504841f171a900d033bec315b0782\n"
    },
    {
      "commit": "d5ee2fb614866ffe5950d4f06e99ac692bfd1445",
      "tree": "a14290c77a7ef66455f846544a74183642de4d22",
      "parents": [
        "7da1b1676f326e67cc3eb38774daf3154f876fd0",
        "cd4e224595f0e126f8c7497f50e2bc8895ba0e78"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 07:11:43 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 07:11:43 2025 -0700"
      },
      "message": "Merge \"ui: Use specialization to fix parsing bug\" into main"
    },
    {
      "commit": "7da1b1676f326e67cc3eb38774daf3154f876fd0",
      "tree": "13ae31b252b1f3bcad5958b0e652248cc3f89333",
      "parents": [
        "020d559ba65bf2d9e7477046a752fdb459c640c6",
        "7e4b21fc6487c13345d173579172083b9cad70d8"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 06:48:39 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 06:48:39 2025 -0700"
      },
      "message": "Merge \"tp: Fix io_wait arg name conversion in traceconv\" into main"
    },
    {
      "commit": "7848d2536c5bf0e4b69f46ce1901bcdbbd35726c",
      "tree": "0501501ec9a956fb589c38d00e69ba4e18ea5e93",
      "parents": [
        "020d559ba65bf2d9e7477046a752fdb459c640c6"
      ],
      "author": {
        "name": "Perfetto Team",
        "email": "perfetto-dev@google.com",
        "time": "Mon Mar 24 06:32:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 24 06:35:49 2025 -0700"
      },
      "message": "COPYBARA_IMPORT\u003dProject import generated by Copybara.\n\nGitOrigin-RevId: 04dd1bc47332323cbd1d02f213545138d3cd41ed\nChange-Id: If209cd53de7601427dd828da8885a983121b50d8\n"
    },
    {
      "commit": "020d559ba65bf2d9e7477046a752fdb459c640c6",
      "tree": "b275b65220571d8c8a84104a0a6566ccfbb4fc2c",
      "parents": [
        "541f72fc0f55be98a2bc486695ad1e23f3f55ba8",
        "a7ee98c8d3cdd8bd824f15b8aa1c1cc04839b9ac"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Mar 24 05:57:10 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 05:57:10 2025 -0700"
      },
      "message": "Merge \"Add is kernel process to process metadata\" into main"
    },
    {
      "commit": "541f72fc0f55be98a2bc486695ad1e23f3f55ba8",
      "tree": "b4242e972243af615a99f950a11311a6053b6f99",
      "parents": [
        "aa832d5cc108f65aae0251a89a59fe0668930e3f",
        "8d6f3542c3478daa02a14fe34417cd9039b1fee7"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Mon Mar 24 04:54:40 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 04:54:40 2025 -0700"
      },
      "message": "Merge \"Sync Perfetto WM trace proto with one on in frameworks/base\" into main"
    },
    {
      "commit": "cd4e224595f0e126f8c7497f50e2bc8895ba0e78",
      "tree": "0fca053f4d22b90a5a0f3fa4a95c4a7398017c2a",
      "parents": [
        "5af86215f7908a5f24615dd7d5df1e8bc72d60a4"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 11:46:39 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 11:46:39 2025 +0000"
      },
      "message": "ui: Use specialization to fix parsing bug\n\nThe current lezer SQL parser has a bug where it misidentifies\nidentifiers with keywords in them.\n\nE.g. consider the identifier \u0027COUNTER\u0027.\n\nCOUNTER\n\u0027---\u0027\u0027\u0027\n  |   `-- ER - Identifier\n   `----- COUNT - Keyword\n\nThe current incarnation identifiers this as a keyword followed by an\nidentifier, so the syntax highlighting is wrong.\n\nTurns out lezer has a tools for this exact problem - specialization.\n\nhttps://lezer.codemirror.net/docs/guide/#token-specialization\n\nThis CL uses this tool to make it so that COUNTER is identified\nentirely as an identifier.\n\nChange-Id: Ifb297ae28866437a8c4891ebda2b62a48867e212"
    },
    {
      "commit": "7e4b21fc6487c13345d173579172083b9cad70d8",
      "tree": "278b70438439e3ae60a5ef1eac0ce94bb5c93661",
      "parents": [
        "aa832d5cc108f65aae0251a89a59fe0668930e3f"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 11:40:53 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Mar 24 11:40:53 2025 +0000"
      },
      "message": "tp: Fix io_wait arg name conversion in traceconv\n\nThe sched_blocked_reason ftrace event argument key is \u0027io_wait\u0027\neverywhere apart from systrace where it is \u0027iowait\u0027 (no underscore).\nTraceconv currently converts this argument verbatim, which is not\nunderstood by the systrace parser.\n\nThis CL converts the arg key to the correct value in to_ftrace.cc.\n\nTesting:\n- Record a trace, check that blocked_function is present in the\n  thread_state table.\n- Use traceconv to convert to systrace.\n- Confirm systrace file contains sched_blocked_reason packets with\n  pid, io_wait, caller args.\n- Check that blocked_function is not populated before the fix but is\n  populated after \u0026 that Blocked Function is present in the UI details\n  panel for those thread state slices that have the information.\n\nFixes: https://github.com/google/perfetto/issues/1044\nChange-Id: Id83f0553a7be37c25d934a7debc305c9d19d5065"
    },
    {
      "commit": "a7ee98c8d3cdd8bd824f15b8aa1c1cc04839b9ac",
      "tree": "49747ca548771df63b78807db025a4e518450659",
      "parents": [
        "aa832d5cc108f65aae0251a89a59fe0668930e3f"
      ],
      "author": {
        "name": "Mohamed Elrakad",
        "email": "elrakadm@google.com",
        "time": "Mon Mar 24 11:36:05 2025 +0000"
      },
      "committer": {
        "name": "Mohamed Elrakad",
        "email": "elrakadm@google.com",
        "time": "Mon Mar 24 11:36:05 2025 +0000"
      },
      "message": "Add is kernel process to process metadata\n\nBug:397391338\n\nChange-Id: I0ea8f75f0e0332ddadccae5b5efacb4d4bc6a8dc"
    },
    {
      "commit": "aa832d5cc108f65aae0251a89a59fe0668930e3f",
      "tree": "88e81c43059b8f0a219fe1155017736a9f7de842",
      "parents": [
        "5af86215f7908a5f24615dd7d5df1e8bc72d60a4"
      ],
      "author": {
        "name": "Ioannis Ilkos",
        "email": "ilkos@google.com",
        "time": "Fri Mar 21 18:30:53 2025 +0000"
      },
      "committer": {
        "name": "Ioannis Ilkos",
        "email": "ilkos@google.com",
        "time": "Fri Mar 21 18:30:53 2025 +0000"
      },
      "message": "Discard unfinished startup slices\n\nIf there\u0027s ftrace buffer data loss we might miss the end async event but still\nget the startup completion instant event\n\nBug: 405322212\nChange-Id: I25f6f2fa7bb0fd618f25dcded27fe0b8dc5abcb3"
    },
    {
      "commit": "5af86215f7908a5f24615dd7d5df1e8bc72d60a4",
      "tree": "24c61dd9c9bd93c13c55277f0d8b0a47856110a2",
      "parents": [
        "2ce4ac5b79385d24c6bc130c2d412e2b3795f64e"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 16:01:16 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 09:01:57 2025 -0700"
      },
      "message": "ui: Fix query table crash when number of rows is 0\n\nFixes: 405345708\n\nChange-Id: I0f7a2e1672b28575b044de153d23fd5902725f1c\n"
    },
    {
      "commit": "2ce4ac5b79385d24c6bc130c2d412e2b3795f64e",
      "tree": "6958e162e47471c26a909812c5a29554192e54bc",
      "parents": [
        "65a030eab6c2bf7a09e8329a17d38d14def6415e",
        "eb266982e11344c5eca94a75bfbfe1efa5f046eb"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Fri Mar 21 07:18:07 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 07:18:07 2025 -0700"
      },
      "message": "Merge \"ui: Explore Page: extract node operations from builder into node\" into main"
    },
    {
      "commit": "65a030eab6c2bf7a09e8329a17d38d14def6415e",
      "tree": "60404b370f3c0a728616ca7356e5c579b378d9cc",
      "parents": [
        "cc278e3c4621723e2e36fb3f36722214736473e8",
        "994cb32a8ccaf7ab115070c912da9a9dda85995a"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Fri Mar 21 07:08:11 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 07:08:11 2025 -0700"
      },
      "message": "Merge \"Copy Perfetto Java SDK Java and C++ (JNI) code from AOSP.\" into main"
    },
    {
      "commit": "cc278e3c4621723e2e36fb3f36722214736473e8",
      "tree": "5987a050317bbd28131170db1c66fff94235da17",
      "parents": [
        "d7de99fa6aa41928db0fb82b28923469d146ab20",
        "f80464ea8347e274fc4d100777303c333668be4a"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Mar 21 06:59:06 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 06:59:06 2025 -0700"
      },
      "message": "Merge \"ui: Fix heap graph plugin crash with multiple paths\" into main"
    },
    {
      "commit": "d7de99fa6aa41928db0fb82b28923469d146ab20",
      "tree": "571f40f3c1c8a1e46955cdca8d2d9bdb53517768",
      "parents": [
        "3db147d59dc71961917978acc00d7472b05eda36",
        "b36ce69f0a93c8f6a043684d493c52b736f61567"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 06:45:03 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 06:45:03 2025 -0700"
      },
      "message": "Merge \"ui: Added pluginable track filters\" into main"
    },
    {
      "commit": "3db147d59dc71961917978acc00d7472b05eda36",
      "tree": "d9a821cba15759dce57b1b06522272b2e7ade2ea",
      "parents": [
        "231d105bbec60a40149b0c9655f79be1e4ee5991",
        "3a18aae2bdfc109f85c8794d07105f7b4595a7ac"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 06:42:26 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 06:42:26 2025 -0700"
      },
      "message": "Merge \"fix single track counter aggegation query\" into main"
    },
    {
      "commit": "994cb32a8ccaf7ab115070c912da9a9dda85995a",
      "tree": "d860b59b0f1fd524ed283b81602a04e8c44f4780",
      "parents": [
        "231d105bbec60a40149b0c9655f79be1e4ee5991"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Fri Mar 21 13:37:33 2025 +0000"
      },
      "committer": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Fri Mar 21 13:37:33 2025 +0000"
      },
      "message": "Copy Perfetto Java SDK Java and C++ (JNI) code from AOSP.\n\nJava and C++ classes are copied and refactored as follows:\n1. SDK package renamed from \u0027os.android\u0027 to \u0027dev.perfetto\u0027.\n2. \u0027PerfettoTrace_register\u0027 function signature fixed to follow JNI ABI.\n3. \u0027JNI_OnLoad\u0027 function used to register JNI functions.\n4. Internal namespace renamed from \u0027tracing_perfetto\u0027 to \u0027perfetto\u0027.\n5. From java code deleted everything related to \u0027Ravenwood\u0027.\n6. From \u0027PerfettoTraceTest\u0027 class deleted platform related test.\n\n\u0027NativeAllocationRegistry\u0027 API is not supported outside of framework,\nso we intentionally don\u0027t free native memory accosted with Java objects,\nwe will address this in future CLs. The leaking memory doesn\u0027t affect\ncode correctness, all tests passes.\n\nWe also do the following:\n1. Copy \u0027nativehelper\u0027 header library from AOSP, because JNI code depends on it.\n2. Change code formatting to be consistent with perfetto style.\n3. Generate Android.bp and BUILD targets.\n\nPerfettoTrace.java copied from:\nhttps://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:frameworks/base/core/java/android/os/PerfettoTrace.java;drc\u003d029c7a04cc36484fe7c0d69c75b29bd9eff1e3a6\n\nPerfettoTrackEventExtra.java copied from:\nhttps://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:frameworks/base/core/java/android/os/PerfettoTrackEventExtra.java;drc\u003d029c7a04cc36484fe7c0d69c75b29bd9eff1e3a6\n\ncom_google_perfetto_sdk_PerfettoTrace.cc copied from:\nhttps://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:frameworks/base/core/jni/android_os_PerfettoTrace.cpp;drc\u003dea0f2553f513f05de29e2fe8d0769b13e93d912b\n\ncom_google_perfetto_sdk_PerfettoTrackEventExtra.cc copied from:\nhttps://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:frameworks/base/core/jni/android_os_PerfettoTrackEventExtra.cpp;drc\u003d50adc08679d5b380dee7785111860cf3568b5a86\n\nTested:\n`atest perfetto_trace_instrumentation_test`\nand\n```\ntools/bazel test //:src_android_sdk_java_test_perfetto_trace_instrumentation_test --nocache_test_results  --test_output\u003dall\n```\n\nBug: b/386353531\nChange-Id: Ibf3b8d73f7cd85f72f65ad4f7290f9a5c32785fc"
    },
    {
      "commit": "b36ce69f0a93c8f6a043684d493c52b736f61567",
      "tree": "803d0e96c4101ff3b94696fa9fd9e8311dfba12c",
      "parents": [
        "7c80b9c1358bfbab0efbca2d7364ec398cb59d4f"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 09:16:37 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 06:28:09 2025 -0700"
      },
      "message": "ui: Added pluginable track filters\n\nThis CL adds the ability for plugins to add filter criteria, which\nare additional ways to filter tracks.\n\nPrime candidates are:\n- filter by thread\n- filter by process\n- filter by cpu\n\nFor the purposes of demonstration and testing, this CL changes the\n\u0027Thread\u0027 plugin to add filter criteria for threads and processes.\n\nThis CL also restores the ability to pass multiple name filters separated by commas.\n\nChange-Id: Id17150cddf38a1474c3715d9ffabe12fe84e86e5\n"
    },
    {
      "commit": "f80464ea8347e274fc4d100777303c333668be4a",
      "tree": "cc4a3ee41e0df2f30bac1a1447be291501ae3cd7",
      "parents": [
        "231d105bbec60a40149b0c9655f79be1e4ee5991"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Thu Mar 20 23:27:34 2025 +0000"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Mar 21 13:10:38 2025 +0000"
      },
      "message": "ui: Fix heap graph plugin crash with multiple paths\n\nThe path hash is an aggregatable property, this means\nthat when we filter the flamegraph, any node can\nhave a comma separated list of path hashes. This list\nwas begin passed directly to the macro arg expecting\nan Expr and of course crashed.\n\nThe current approach converts the comma separated\npath_hash list to a table which is then passed as an arg\nto the macro and evaluated as a JOIN. Using a view leads\nto very slow joins. A table shouldn\u0027t consume much memory\nbecause this is just the filtered list of paths to a given node.\n\nTest: Manual\nChange-Id: I7cfb6234a5addcc86f62e147a30f6f0221576812\n"
    },
    {
      "commit": "231d105bbec60a40149b0c9655f79be1e4ee5991",
      "tree": "2ecc5ff7227d6ee909a66254000dc100db36503a",
      "parents": [
        "f2f78e6498a59904a67f167d77147780ee04c5c2"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Mar 21 12:04:10 2025 +0000"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Fri Mar 21 12:12:48 2025 +0000"
      },
      "message": "ui: Make flamegraph properties optionally hidden\n\nThe path_hash property should not be visible especially\nwhen it\u0027s been filtered and is a really long comma\nseparated value.\n\nTest: Manual\nChange-Id: I100b69371c050d18e912f3fff9b7d37b7628e876\n"
    },
    {
      "commit": "f2f78e6498a59904a67f167d77147780ee04c5c2",
      "tree": "9d73c8dec1db660a6b4a438bb94a86dca6915e3d",
      "parents": [
        "596f04780fa99a1a0398399add6214d57de0336d",
        "b92e0524d972204dd7335ec340893af29b9f44ce"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Fri Mar 21 05:00:46 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 05:00:46 2025 -0700"
      },
      "message": "Merge \"ui: Fix wrapping text issue in query results table\" into main"
    },
    {
      "commit": "eb266982e11344c5eca94a75bfbfe1efa5f046eb",
      "tree": "f7090c5d22b4c6282c03881aaa3e85422373ed1c",
      "parents": [
        "596f04780fa99a1a0398399add6214d57de0336d"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Fri Mar 21 11:42:19 2025 +0000"
      },
      "committer": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Fri Mar 21 04:43:12 2025 -0700"
      },
      "message": "ui: Explore Page: extract node operations from builder into node\n\nChange-Id: I46dec9d3858104b8966ce7df010108de0062386e\n"
    },
    {
      "commit": "596f04780fa99a1a0398399add6214d57de0336d",
      "tree": "5d99cef210c77636a493ea57824b5721dd5d9ec7",
      "parents": [
        "bdba9a346875326138a5eadc9e95652125e076b3",
        "8621d28dd6e338eb8edf592a2364d73c3d9a2ecf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:33:53 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:33:53 2025 -0700"
      },
      "message": "Merge \"Add input ds to perfetto persistent tracing\" into main"
    },
    {
      "commit": "bdba9a346875326138a5eadc9e95652125e076b3",
      "tree": "53f32874064c9b86737df6f7edbf3414d6c53789",
      "parents": [
        "40daf96f2fd790091e73a3d2dcc5ed3789692f91",
        "14dedd766f49894b0e49f564a6e10dc3342a7e5d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 21 03:20:48 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 03:20:48 2025 -0700"
      },
      "message": "Merge \"Fix BatteryStatsHistoryState parse error checking\" into main"
    },
    {
      "commit": "3a18aae2bdfc109f85c8794d07105f7b4595a7ac",
      "tree": "d2bf18a9d5ed30415102fe12413928b53e9a0055",
      "parents": [
        "40daf96f2fd790091e73a3d2dcc5ed3789692f91"
      ],
      "author": {
        "name": "Chris Phlipot",
        "email": "cphlipot@meta.com",
        "time": "Thu Mar 20 13:00:54 2025 -0700"
      },
      "committer": {
        "name": "Christopher Phlipot",
        "email": "cphlipot@meta.com",
        "time": "Fri Mar 21 02:22:18 2025 -0700"
      },
      "message": "fix single track counter aggegation query\n\nThere is a bug in the subqueries of the specialized single track\ncounter aggregation query.\n\nThey make refernce to ts \u0026 dur, but those refernces are ambiguous in\nthis context. \"dur\" for example, does not appear in the counter table\nat all, meaning this value is likely being pulled from an arbitrary\nrow of the \"res\" CTE instead, which was not originaly intended.\n\nIn practice these incorrect subqueries have resulted in incorrect result\nfor first_value, which also impacts the Rate/s and delta values\npresented to the user.\n\nOut of the quick fixes I attemped, value_at_max_ts had the least negative\nimpact on perf, so went with that solution.\n\nBug: https://github.com/google/perfetto/issues/1050\n\nChange-Id: I9a3a29145eddb1d3d921c2194c7fbd98051133da\n"
    },
    {
      "commit": "8621d28dd6e338eb8edf592a2364d73c3d9a2ecf",
      "tree": "0cedbc179d9fe26c0fa3b55c1c592fdb1e117237",
      "parents": [
        "15980e7728655397003340edbb2cdcd166b23f68"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Tue Mar 18 13:59:56 2025 +0000"
      },
      "committer": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Fri Mar 21 09:16:12 2025 +0000"
      },
      "message": "Add input ds to perfetto persistent tracing\n\nAdd data source android.input.inputevent\nto persistent tracing config\n\nFix: 404493257\nChange-Id: Ia39bff789f59f6ef602a95ef0e6a89bc3a27ad66\n"
    },
    {
      "commit": "40daf96f2fd790091e73a3d2dcc5ed3789692f91",
      "tree": "4580713ef3d95f690228d550100e69624c3e1a28",
      "parents": [
        "c7821a2749535528e1b7839a36a29b1a3e2f3da0",
        "f88666f29daaa93adace32f3f9a308ee1768be61"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 20 17:18:22 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 17:18:22 2025 -0700"
      },
      "message": "Merge \"Revert \"[stdlib]: Add macro to compute the union of a set of intervals\"\" into main"
    },
    {
      "commit": "f88666f29daaa93adace32f3f9a308ee1768be61",
      "tree": "0b79069bda5b108177d5b9786a24f86c822e8aeb",
      "parents": [
        "51a13da6da7e13826e55d2f4d3c4d88a60ab057d"
      ],
      "author": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Thu Mar 20 16:59:26 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 16:59:26 2025 -0700"
      },
      "message": "Revert \"[stdlib]: Add macro to compute the union of a set of intervals\"\n\nThis reverts commit 51a13da6da7e13826e55d2f4d3c4d88a60ab057d.\n\nReason for revert: Broke ci.perfetto.dev\n\nChange-Id: Ib2d6e8ab8ffad96c2dbaba8231219eebc1690aae\n"
    },
    {
      "commit": "c7821a2749535528e1b7839a36a29b1a3e2f3da0",
      "tree": "ec0aa0bffe9304ba424265256eb1356544a690e4",
      "parents": [
        "41cde890f6b49d791d4ac612c16748dc7860cc35"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 20 23:07:53 2025 +0000"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Mar 20 23:07:53 2025 +0000"
      },
      "message": "tp: fix bug with trailing whitespace in SQL formatting\n\nChange-Id: Idc7f0a26070c94eb87f590e58cc2cb6c0718d7f2"
    },
    {
      "commit": "b92e0524d972204dd7335ec340893af29b9f44ce",
      "tree": "de8ab1b180bd84e258e63230d7bf506b2440e04f",
      "parents": [
        "7c80b9c1358bfbab0efbca2d7364ec398cb59d4f"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Mar 20 18:48:18 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Mar 20 18:48:18 2025 +0000"
      },
      "message": "ui: Fix wrapping text issue in query results table\n\nChange-Id: Ic59b0aa06e3fcdc22b70ba5bf4cb0aa6d45be32f"
    },
    {
      "commit": "41cde890f6b49d791d4ac612c16748dc7860cc35",
      "tree": "cff17dc5926fca4cdbc12e781464dce6253bf1ba",
      "parents": [
        "6e290facb6b7da8e5bd512e61d7e6de215df9b55",
        "e84f326d8ce4d8174cc6bc610603b488bc200f87"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 20 11:34:21 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 11:34:21 2025 -0700"
      },
      "message": "Merge \"fuchsia: Fix wake record tokenization\" into main"
    },
    {
      "commit": "6e290facb6b7da8e5bd512e61d7e6de215df9b55",
      "tree": "7be087f1084ead57d57130c2fa9ad81ab0c3959c",
      "parents": [
        "7ab70ecf05727aebe0bf29ceb93ac6f29e8cb911",
        "781edab00283715423030a24c36e03ba1b72c4c7"
      ],
      "author": {
        "name": "Ryan Zuklie",
        "email": "rzuklie@google.com",
        "time": "Thu Mar 20 09:51:37 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 09:51:37 2025 -0700"
      },
      "message": "Merge \"Add app wakelock data source config / event protos\" into main"
    },
    {
      "commit": "7ab70ecf05727aebe0bf29ceb93ac6f29e8cb911",
      "tree": "8a4d326ddf714b12a43cca7fc13ad69221a19d72",
      "parents": [
        "88c45122c8b8c5fab29f9d77bd3140e0385ba35c",
        "d622f11b000e7ec390cf2e313b2d5f7166d1250d"
      ],
      "author": {
        "name": "Oksana Zhuravlova",
        "email": "oksamyt@google.com",
        "time": "Thu Mar 20 09:34:27 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 09:34:27 2025 -0700"
      },
      "message": "Merge \"COPYBARA_IMPORT\u003dProject import generated by Copybara.\" into main"
    },
    {
      "commit": "88c45122c8b8c5fab29f9d77bd3140e0385ba35c",
      "tree": "ec5968dfdcd750dd41e7a61ae00311762ce7f309",
      "parents": [
        "7c80b9c1358bfbab0efbca2d7364ec398cb59d4f",
        "51a13da6da7e13826e55d2f4d3c4d88a60ab057d"
      ],
      "author": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Thu Mar 20 07:41:54 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 07:41:54 2025 -0700"
      },
      "message": "Merge \"[stdlib]: Add macro to compute the union of a set of intervals\" into main"
    },
    {
      "commit": "d622f11b000e7ec390cf2e313b2d5f7166d1250d",
      "tree": "2ae72e80d677ee02aedfef2a5789a8cdbab5ed73",
      "parents": [
        "7c80b9c1358bfbab0efbca2d7364ec398cb59d4f"
      ],
      "author": {
        "name": "Perfetto Team",
        "email": "perfetto-dev@google.com",
        "time": "Thu Mar 20 07:12:36 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 20 07:25:46 2025 -0700"
      },
      "message": "COPYBARA_IMPORT\u003dProject import generated by Copybara.\n\nGitOrigin-RevId: 9d6f4865b58f3c27d707f5c859443a0db3d84af9\nChange-Id: Ia17e2955df1a959127ef8353de3c4e5ee0935c0b\n"
    },
    {
      "commit": "7c80b9c1358bfbab0efbca2d7364ec398cb59d4f",
      "tree": "3677d9e3713713b2a582dd9594ea49df0f75a060",
      "parents": [
        "0a2afa2adecbeb47b91a460b57d632d7210e80ef",
        "b640f4fce02ed5ce88fa0be95af933282e4e6f1b"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Mar 20 05:17:36 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 05:17:36 2025 -0700"
      },
      "message": "Merge \"ui: Rename runQuery() and add comment to avoid accidental use\" into main"
    },
    {
      "commit": "b640f4fce02ed5ce88fa0be95af933282e4e6f1b",
      "tree": "52171d186062a27ed7527be1ea30be26d3db9e7a",
      "parents": [
        "2d5d152b83e07cb3e8bb865527a8e4bea4e93b50"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Mar 20 10:40:20 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Mar 20 05:10:45 2025 -0700"
      },
      "message": "ui: Rename runQuery() and add comment to avoid accidental use\n\nChange-Id: I4ddf555c6f2e2a9c0b8f1a0e3f569ee1780273b9"
    },
    {
      "commit": "0a2afa2adecbeb47b91a460b57d632d7210e80ef",
      "tree": "e8aead5a23d0797c85b3f4d15331dec46f50ed7f",
      "parents": [
        "2d5d152b83e07cb3e8bb865527a8e4bea4e93b50",
        "475cfe3ad82cca3f2b00a9cf3123a670c7618b26"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Thu Mar 20 03:50:48 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 03:50:48 2025 -0700"
      },
      "message": "Merge \"ui: Add pagination to basic query results table\" into main"
    },
    {
      "commit": "e84f326d8ce4d8174cc6bc610603b488bc200f87",
      "tree": "8930c7a4c531927735d12ac2cee2cbf15ca5d476",
      "parents": [
        "2d5d152b83e07cb3e8bb865527a8e4bea4e93b50"
      ],
      "author": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Thu Feb 06 23:19:56 2025 +0000"
      },
      "committer": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Thu Mar 20 09:52:09 2025 +0000"
      },
      "message": "fuchsia: Fix wake record tokenization\n\nFix a breakage of Fuchsia FXT wake event records, caused by change\nI5debd098f3ec0bbc6b92a72562e114bdad6c88dd.\n\nSkipping over the waking tid was missed here:\n\nhttps://android-review.googlesource.com/c/platform/external/perfetto/+/3411037/5/src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc#b799\n\n- Skip over the waking tid when tokenizing the wake record.\n- Add more granular error stats that catch the breakage.\n- Fix incorrect tests that trigger the granular error stats.\n\nChange-Id: Id3494916cecdcf345922e2055244fc5c0e20e0e2\n"
    },
    {
      "commit": "2d5d152b83e07cb3e8bb865527a8e4bea4e93b50",
      "tree": "4086eb77ac11629f0be021efa28fa60c2a1604fe",
      "parents": [
        "66a3b60a72535e22b167f2d7d3e0fce029182e75"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Thu Mar 20 08:55:17 2025 +0000"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Thu Mar 20 08:55:17 2025 +0000"
      },
      "message": "ui: Fix binder plugin crash\n\nIf there are no binder txns (e.g in heap dump traces),\nsome binder queries can return null. Handle it.\n\nTest: Manual\nChange-Id: I1f6cce1d4da7eb8497c7706a42c0fbab83f8ade4\n"
    },
    {
      "commit": "66a3b60a72535e22b167f2d7d3e0fce029182e75",
      "tree": "5c3706f9038b56316e0654f68bba23dd4897096d",
      "parents": [
        "0428dbcf80bb7ff89b391fa58b41b7a24bfaa2f3",
        "61b5e274d708240b35920ca38d6d7406fdc767a7"
      ],
      "author": {
        "name": "Armelle Laine",
        "email": "armellel@google.com",
        "time": "Thu Mar 20 00:32:09 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 00:32:09 2025 -0700"
      },
      "message": "Merge changes I72427908,Ic7af3dfc into main\n\n* changes:\n  trusty: perfetto: Create a UI Plugin for \u0027AVF VM cpu Timeline\u0027\n  trusty: perfetto: Create a UI plugin for \"Trusty TEE CPU timeline\"\n"
    },
    {
      "commit": "0428dbcf80bb7ff89b391fa58b41b7a24bfaa2f3",
      "tree": "504a9279d3f5dae188f7017a922da4c6fa0d3d72",
      "parents": [
        "74dcce8f28ab0a97badbe611e3322d1903b2f4b0",
        "7fd52115bb075a86c2af6c07adfadc3db0c225aa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Mar 19 13:09:32 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 19 13:09:32 2025 -0700"
      },
      "message": "Merge \"ui: Improve peformance of heap graph context options\" into main"
    },
    {
      "commit": "7fd52115bb075a86c2af6c07adfadc3db0c225aa",
      "tree": "3a0226dcd0b70c18c9933ed78dedd0639599d9de",
      "parents": [
        "2bdeae0b5b7dbd634253beecd98dc4c984a3461a"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Wed Mar 19 16:59:57 2025 +0000"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Wed Mar 19 19:12:39 2025 +0000"
      },
      "message": "ui: Improve peformance of heap graph context options\n\nThe previous implementation was designed for caching\nin a table and post-filtering so it was inefficient\nwhen used as a view. We now pre-filter the path hashes\nbefore creating the view\n\nRemoved incoming_reference_count from the \u0027Objects\u0027 view\nsince the count is always one per object and we know the\nnumber of objects.\n\nTest: Manual\nChange-Id: Ieaf9cebf9dbad4eadf4044ed68b5aaf35b17e887\n"
    },
    {
      "commit": "475cfe3ad82cca3f2b00a9cf3123a670c7618b26",
      "tree": "213809d808412199ffe1c4800df916c8d3571451",
      "parents": [
        "d611874853c1ace1485eb04cd48524f7099cd7a2"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Wed Mar 19 18:24:51 2025 +0000"
      },
      "committer": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Wed Mar 19 18:24:51 2025 +0000"
      },
      "message": "ui: Add pagination to basic query results table\n\nAlso remove virtually scrolled table, as pagination solves the same\nproblem in a much simpler way.\n\nChange-Id: Iac71ad2e6307dc4b3d61d6ee34a728c5169f9150"
    },
    {
      "commit": "51a13da6da7e13826e55d2f4d3c4d88a60ab057d",
      "tree": "6b46f38bf84f629606cd3daa5478079937d5ca73",
      "parents": [
        "d611874853c1ace1485eb04cd48524f7099cd7a2"
      ],
      "author": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Wed Mar 19 10:53:16 2025 -0700"
      },
      "committer": {
        "name": "Jonathan Backer",
        "email": "backer@google.com",
        "time": "Wed Mar 19 10:53:16 2025 -0700"
      },
      "message": "[stdlib]: Add macro to compute the union of a set of intervals\n\nTest: tools/diff_test_trace_processor.py out/linux/trace_processor_shell --name-filter \u0027.*remove_overlap.*\u0027\nChange-Id: I2a7958404ec4dd62df43cc8d52bd52a0a692b695\n"
    },
    {
      "commit": "8d6f3542c3478daa02a14fe34417cd9039b1fee7",
      "tree": "34279eef6e7e84ca41080c8247f974d401dcb587",
      "parents": [
        "0665c31b59a3dcc94110679e2dd48116b8a796e7"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Tue Feb 25 16:44:36 2025 -0800"
      },
      "committer": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Wed Mar 19 08:42:46 2025 -0700"
      },
      "message": "Sync Perfetto WM trace proto with one on in frameworks/base\n\nTest: n/a\nBug: 399214428\nChange-Id: Ib2cd2a5be2a122be597be94ea606a0a539b038f8\n"
    },
    {
      "commit": "74dcce8f28ab0a97badbe611e3322d1903b2f4b0",
      "tree": "aa252ca66016ce8a4d93fdf21cd972d2aef634ab",
      "parents": [
        "d611874853c1ace1485eb04cd48524f7099cd7a2"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Wed Mar 19 14:48:26 2025 +0000"
      },
      "committer": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Wed Mar 19 08:28:21 2025 -0700"
      },
      "message": "Fix compilation of \u0027#pragma GCC system_header\u0027 in google3.\n\nGCC doesn\u0027t recognize \"-Wpragma-system-header-outside-header\" flag\nand report an error if we try to use\n`#pragma clang diagnostic ignored` to suppress it.\n\nSo we use\n```\n#pragma clang diagnostic ignored \"-Wpragma-system-header-outside-header\"\n```\nonly when building with clang (we build with clang in google3)\n\nBug: N/A\nChange-Id: I44f166fcf1901336a97b838add0e868d78e1183d\n"
    },
    {
      "commit": "d611874853c1ace1485eb04cd48524f7099cd7a2",
      "tree": "0b79069bda5b108177d5b9786a24f86c822e8aeb",
      "parents": [
        "7c8c579eb67b6f2d6ee79847ed82f7eb199ad8d6",
        "f586a7a252c87646b5a6c456509f53145cc4aad2"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Wed Mar 19 07:30:07 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 19 07:30:07 2025 -0700"
      },
      "message": "Merge \"ui: Explore Page: add source node button\" into main"
    },
    {
      "commit": "7c8c579eb67b6f2d6ee79847ed82f7eb199ad8d6",
      "tree": "7674b3e396761b36c286f1e6f7dea93602c5e20c",
      "parents": [
        "25c97983269de42342449ccd8b5b07a752663469",
        "2aff37250c018d8a3937b6d55fcc0b78f8634d44"
      ],
      "author": {
        "name": "Anna Mayzner",
        "email": "mayzner@google.com",
        "time": "Wed Mar 19 07:29:55 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 19 07:29:55 2025 -0700"
      },
      "message": "Merge \"ui: Explore Page: support duplicate and remove nodes\" into main"
    },
    {
      "commit": "25c97983269de42342449ccd8b5b07a752663469",
      "tree": "744a27e77c78dc7c43a49644e4fceb7f8e629a54",
      "parents": [
        "80a11588b1e59f2b59021f8f42e8ef88233e6d84",
        "96d13e46ae865fd333a3b2c5ffe404f3f6d0a7ab"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Wed Mar 19 07:21:34 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 19 07:21:34 2025 -0700"
      },
      "message": "Merge \"ui: Remove use of runQuery() in breakdown tracks\" into main"
    }
  ],
  "next": "96d13e46ae865fd333a3b2c5ffe404f3f6d0a7ab"
}
