)]}'
{
  "log": [
    {
      "commit": "7e656a8d5ade9c51fe35876a84c00b481c51c40c",
      "tree": "8d941899594d4b35ad964727c7bd205aa11fde79",
      "parents": [
        "fcba8aba1718ad2ed53365bde0da10a3239de611"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Tue Aug 05 10:07:03 2025 -0700"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Wed Aug 06 06:20:38 2025 -0700"
      },
      "message": "Attempt possible OSStatus interfaces\n\nNewer dbus service will be all using hostX format instead of os.\nTo allow smooth transition, this commit allow trying all possible\ninterfaces.\n\nTested:\nManually verified on single host projects and one multi host\nproject.\nhttps://paste.googleplex.com/4880312391434240?raw\nhttps://paste.googleplex.com/4537823478415360?raw\n\nGoogle-Bug-Id: 386135750\nChange-Id: Ie83cfe50e75bd470b079dfcf4688223db68cea6f\nSigned-off-by: Medicine Yeh \u003cmedicineyeh@google.com\u003e\n"
    },
    {
      "commit": "fcba8aba1718ad2ed53365bde0da10a3239de611",
      "tree": "cb782f6b2bc0932acb37ca80c15229b91055b1ba",
      "parents": [
        "cfa58212e7377b9ce416b912a1d546f8d5935e37"
      ],
      "author": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Wed Jul 23 09:59:59 2025 +0000"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Tue Aug 05 06:42:35 2025 -0700"
      },
      "message": "Fixed host count into 3(align with grpc-blob)\n\nTest result: https://paste.googleplex.com/6300373870182400?raw\n\nGoogle-Bug-Id: 433414984\nChange-Id: I261e47cc00b1dc6b2031c4cdb98cb756aa6cccc1\nSigned-off-by: Jack Huang \u003chuangweichieh@google.com\u003e\n"
    },
    {
      "commit": "cfa58212e7377b9ce416b912a1d546f8d5935e37",
      "tree": "ac9662c7a8e8d649c497a8a148c8410de895702d",
      "parents": [
        "f6ce46ff8e2ec95918f8f9a829721c3d34620bcc"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Tue Jul 29 12:47:22 2025 -0700"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Wed Jul 30 01:08:50 2025 -0700"
      },
      "message": "Make error message more descriptive\n\nTested:\nVerified on a machine with two host nodes.\nhttps://paste.googleplex.com/5628863337725952?raw\n\nGoogle-Bug-Id: 386135750\nChange-Id: I32379a6233fa9277b993f8941b6e702b6f22704e\nSigned-off-by: Medicine Yeh \u003cmedicineyeh@google.com\u003e\n"
    },
    {
      "commit": "f6ce46ff8e2ec95918f8f9a829721c3d34620bcc",
      "tree": "b098bc22edf8ce8e019634180305103d7330597d",
      "parents": [
        "8bd9e88f2f28a0a9831494df36c754bce7fb01be"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Thu Jul 24 23:42:58 2025 -0700"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Sun Jul 27 23:35:57 2025 -0700"
      },
      "message": "Refactor systemd boot time collection\n\nThis commit refactor the logic here so that it\u0027s more clear and restrict\nsystemd time to current bmc node only instead of broadcasting to all bmc\nnodes.\n\nIn addition, this commit avoids overwriting the checkpoints by only\nsystemd checkpoints multiple times at boot or service restart.\n\nLastly, this commit also merges FirmwarePlusLoader into firmware time\nso that we don\u0027t diverge in the SLO metric naming.\n\nTest result:\nPower cycle the machine and restart the service manually.\nhttps://paste.googleplex.com/5958365410492416?raw\n\nGoogle-Bug-Id: 386135751\nGoogle-Bug-Id: 386135750\nChange-Id: I1b57eddc3110793e6b76f8c7aac68c4b866c5979\nSigned-off-by: Medicine Yeh \u003cmedicineyeh@google.com\u003e\n"
    },
    {
      "commit": "8bd9e88f2f28a0a9831494df36c754bce7fb01be",
      "tree": "09236a5b26ab0a18637af3915a62b48c78ff89b8",
      "parents": [
        "4663c7eb5a0883300ae427a91ef5e4af20fea186"
      ],
      "author": {
        "name": "Che-Kang Wu",
        "email": "chekangwu@google.com",
        "time": "Sun Jul 20 12:11:34 2025 +0000"
      },
      "committer": {
        "name": "Che-Kang Wu",
        "email": "chekangwu@google.com",
        "time": "Sun Jul 20 14:37:40 2025 +0000"
      },
      "message": "Fix build issues from multihost changes\n\nThe support functions for NPCM7XX (Firmware + Loader) time feature are\nadded back. Erroneous boottime_api usage are corrected.\n\nGoogle-Bug-Id: 386135750\nChange-Id: Idab4da9609ebe03ad222590961e552087946b188\n"
    },
    {
      "commit": "4663c7eb5a0883300ae427a91ef5e4af20fea186",
      "tree": "54c3b464511a1fb15d619ab319ede50e6f9bd4e1",
      "parents": [
        "2b301965aa94aaf86d2fe875cb5f0126867d952a"
      ],
      "author": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Fri Jun 27 09:21:13 2025 +0000"
      },
      "committer": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Mon Jul 07 07:24:07 2025 +0000"
      },
      "message": "Import g3_shared_lib: boottime_api.\n\nThe boottime_api is a shared library separate from boot-time-monitor\nwhich managing api and resource usage for several daemons of Deoxys for\ncode reusability. Including bmcweb, grpc-blob, boot-time-monitor.\n\nAlso removed the test/api_test.cpp since it\u0027s already moved to the\ng3_shared_lib.\n\nTest result:\n - multi-hosts: https://paste.googleplex.com/5984440182112256\n - multi-hosts with mixed sequence and `TrayPowerCycle`: https://paste.googleplex.com/6198410016980992\n\nGoogle-Bug-Id: 398991424\nChange-Id: I520a4d696cd72f2bcaeb897c00a9f40d50eafa0c\nSigned-off-by: Jack Huang \u003chuangweichieh@google.com\u003e\n"
    },
    {
      "commit": "2b301965aa94aaf86d2fe875cb5f0126867d952a",
      "tree": "1700a9afb491e86c5112462097160de90aed89e0",
      "parents": [
        "0ee2584262844cb2d40aff7f04c8064f6aba86b6"
      ],
      "author": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Mon Jun 16 09:06:59 2025 +0000"
      },
      "committer": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Sun Jun 22 22:42:30 2025 -0700"
      },
      "message": "Add checkpoint while reboot complete\n\nTested:\nhttps://paste.googleplex.com/5185217167622144?raw\n\nChange-Id: I520d38b2a69343059e65c81fabdd044cc1b5d23a\nGoogle-Bug-Id: 369744413\nSigned-off-by: Jack Huang \u003chuangweichieh@google.com\u003e\n"
    },
    {
      "commit": "0ee2584262844cb2d40aff7f04c8064f6aba86b6",
      "tree": "e378d74ba7bab61e33245e4b120becdb0b4049a3",
      "parents": [
        "d51d3c2f6b570b4bbb9d3bdc53cdc299a4f3385b"
      ],
      "author": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Mon Jun 16 09:05:03 2025 +0000"
      },
      "committer": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Fri Jun 20 18:13:06 2025 -0700"
      },
      "message": "Fix style-formatter issues\n\nWith code change of [Add checkpoint while reboot complete], Linter shows\nseveral additional format issues. To restrain commit purpose, separate\nthe format issues to this commit.\n\nTested: https://paste.googleplex.com/5035100150169600?raw\n\nChange-Id: Ic9563ef0fb7ed9a9c218e665bfbcdb7f7f9c05f1\nGoogle-Bug-Id: 369744413\nSigned-off-by: Jack Huang \u003chuangweichieh@google.com\u003e\n"
    },
    {
      "commit": "d51d3c2f6b570b4bbb9d3bdc53cdc299a4f3385b",
      "tree": "36f88f8330c7c5fbf262902d2a9403f94fb3bf51",
      "parents": [
        "ee1b0f6661ee44f88d856347ab552a0cb2ea5aa2"
      ],
      "author": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Mon Mar 24 13:33:35 2025 +0000"
      },
      "committer": {
        "name": "Jack Huang",
        "email": "huangweichieh@google.com",
        "time": "Thu May 22 08:33:24 2025 +0000"
      },
      "message": "Major changes for supporting multihost, including some code refactoring.\n\nLocal Unit Test:\nhttps://paste.googleplex.com/5874223018672128\n\nTested on AMD single-host:\nhttps://paste.googleplex.com/5323461163220992\n\nTested on ARM multi-host:\nhttps://paste.googleplex.com/5179956709294080\n\nGoogle-Bug-Id: 378795793\nChange-Id: I904a3dee8a5c1812649bd1ba610b328d16f98e09\n"
    },
    {
      "commit": "ee1b0f6661ee44f88d856347ab552a0cb2ea5aa2",
      "tree": "eded1bd5f8738b96aaaaa6a00cb6d5c28464acaf",
      "parents": [
        "3e9e24a6f44ae9a711b1346065a45196dfdff708"
      ],
      "author": {
        "name": "David Tang",
        "email": "davtang@google.com",
        "time": "Mon Nov 25 00:36:34 2024 +0000"
      },
      "committer": {
        "name": "David Tang",
        "email": "davtang@google.com",
        "time": "Wed Dec 11 17:29:32 2024 +0000"
      },
      "message": "[clang-tidy] Fix clang-tidy errors from g3/gsys config\n\nFix the clang-tidy errors found here: https://paste.googleplex.com/6044161211105280\nAlso add dummy .clang-tidy to prevent errors being thrown from xyz/\ndirectory and auto-generated .pb.h files\n\nGoogle-Bug-Id: 380138738\nChange-Id: Iebc449b4d633c603739a4d752a24d77527ebd346\nSigned-off-by: David Tang \u003cdavtang@google.com\u003e\n"
    },
    {
      "commit": "3e9e24a6f44ae9a711b1346065a45196dfdff708",
      "tree": "70dac9561c0854c96c06d5f44689709b91e74a67",
      "parents": [
        "52f8c36039c309c34b5cdd936174220642436808"
      ],
      "author": {
        "name": "David Tang",
        "email": "davtang@google.com",
        "time": "Thu Oct 24 22:08:47 2024 +0000"
      },
      "committer": {
        "name": "David Tang",
        "email": "davtang@google.com",
        "time": "Thu Nov 07 00:19:39 2024 +0000"
      },
      "message": "[clang-tidy] Fix clang-tidy errors and format code\n\nFix the following readability-* errors:\nreadability-avoid-const-params-in-decls\nreadability-redundant-string-init\n\nMore details in b/375055000\n\nAlso run openbmc_build_scripts/scripts/format_code.sh to pass presubmit.\n\nChange-Id: Ia5ee9ba75025ed259ed99d624c0e5ccb9aca7058\nSigned-off-by: David Tang \u003cdavtang@google.com\u003e\n"
    },
    {
      "commit": "52f8c36039c309c34b5cdd936174220642436808",
      "tree": "cda97ee1eaab3ddd14cfb6977c1ad538bc0db722",
      "parents": [
        "b71ae0104844875b5e63c26d344b9e0cf65f64b0"
      ],
      "author": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Wed Nov 06 18:49:48 2024 +0000"
      },
      "committer": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Wed Nov 06 19:24:48 2024 +0000"
      },
      "message": "Reorganize dbus interface builds\n\nThe previous structure is failing meson scan-build. Reorganize it to\nfollow the example in hothd and it will now build and pass the\nscan-build.\n\nGoogle-Bug-Id: 375055000\nChange-Id: Icfdf023c78818f2499294642cf25c2be5cdb9378\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n"
    },
    {
      "commit": "b71ae0104844875b5e63c26d344b9e0cf65f64b0",
      "tree": "f70a09a7a4f091e2d844e4a3df6c285f4d2ef0d4",
      "parents": [
        "0508300f5a655e2b7b5849e144c256e48cd83a42"
      ],
      "author": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Thu Oct 31 18:18:16 2024 +0000"
      },
      "committer": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Wed Nov 06 19:24:38 2024 +0000"
      },
      "message": "update sdbuplus server namespace\n\nGoogle-Bug-Id: 375055000\nChange-Id: I6deadfc0e2a6d0ff07affaed0a7e972f302da890\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n"
    },
    {
      "commit": "0508300f5a655e2b7b5849e144c256e48cd83a42",
      "tree": "1e324b228557451b2c3ea7b550c1e32640affd45",
      "parents": [
        "9cbaffea05b53ca2085a122e50f50eaf0bfb89d8"
      ],
      "author": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Thu Oct 31 20:08:07 2024 +0000"
      },
      "committer": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Wed Nov 06 19:24:28 2024 +0000"
      },
      "message": "reformat for clang-format-18\n\nGoogle-Bug-Id: 375055000\nChange-Id: Icd67496b6d0d38b291ce7cf1e61ab9299eddc098\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n"
    },
    {
      "commit": "9cbaffea05b53ca2085a122e50f50eaf0bfb89d8",
      "tree": "80c49f53f236f87748215cf96a29b8f2364706f1",
      "parents": [
        "41748b2c8ef61d953a7702dd7ca39ebc4cad8581"
      ],
      "author": {
        "name": "Munawar Hussain",
        "email": "munawarhussain@google.com",
        "time": "Thu Sep 12 06:42:20 2024 +0000"
      },
      "committer": {
        "name": "Munawar Hussain",
        "email": "munawarhussain@google.com",
        "time": "Thu Sep 12 09:27:49 2024 +0000"
      },
      "message": "boot-time-monitor: make data directory configurable\n\nBoot time monitor is storing all boot time data as csv format inside\n/usr/share/boot-time-monitor. Under this commit making this\nconfigurable so that platforms can pass that value based on requirement.\n\nGoogle-Bug-Id: 326579702\nChange-Id: I4e7f8b39b7beb12af8ee1f7ac7d4820e37d7c218\nSigned-off-by: Munawar Hussain \u003cmunawarhussain@google.com\u003e\n"
    },
    {
      "commit": "41748b2c8ef61d953a7702dd7ca39ebc4cad8581",
      "tree": "77e8826b588ba3de4aebab32bf414e2ac43ba00b",
      "parents": [
        "996f96f14e9a44944c98d57e7eee31976123cdac"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Wed Jun 26 17:18:11 2024 +0000"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicineyeh@google.com",
        "time": "Tue Jul 23 08:26:43 2024 +0000"
      },
      "message": "Store boot events as raw data instead of parsing it\n\nThis CL stores the host stat events in a raw format so parsing can\nbe done in userland where it\u0027s more flexible to do changes.\n\nTested:\n```\nbusctl call --verbose com.google.gbmc.boot_time_monitor \\\n  /xyz/openbmc_project/time/boot/host0 \\\n  xyz.openbmc_project.Time.Boot.Checkpoint GetCheckpointList\n\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n                STRUCT \"sxx\" {\n                        STRING \"Shutdown:BEGIN\";\n                        INT64 1721722017000;\n                        INT64 569778660;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Shutdown\";\n                        INT64 1721722028000;\n                        INT64 569789660;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"HostState:Off\";\n                        INT64 1721722411715;\n                        INT64 569868660;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"OSStatus:Inactive\";\n                        INT64 1721722411759;\n                        INT64 569868710;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"HostState:Off\";\n                        INT64 1721722511519;\n                        INT64 82500;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"OSStatus:Inactive\";\n                        INT64 1721722511536;\n                        INT64 82510;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"HostState:Running\";\n                        INT64 1721722596037;\n                        INT64 167010;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"OSStatus:Standby\";\n                        INT64 1721722718742;\n                        INT64 289720;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Loader\";\n                        INT64 136000;\n                        INT64 430620;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Userspace:BEGIN\";\n                        INT64 1721723134000;\n                        INT64 567380;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Userspace\";\n                        INT64 1721723167000;\n                        INT64 600380;\n                };\n        };\n};\n\n```\n\nGoogle-Bug-Id: 296787899\nChange-Id: I359dd43da7c302151d2b6c226809de424f8967d2\nSigned-off-by: Medicine Yeh \u003cmedicineyeh@google.com\u003e\n"
    },
    {
      "commit": "996f96f14e9a44944c98d57e7eee31976123cdac",
      "tree": "7961359ec8f18783f075971c9441e0c802e8c21a",
      "parents": [
        "30e3932459cb255bb31df45abbe8ca65c1b0d393"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Feb 07 06:20:33 2024 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Apr 30 05:35:14 2024 +0000"
      },
      "message": "bmc_monitor_app: Add `UserspaceEnd` checkpoint in BMC boot flow\n\nAdding `UserspaceEnd` for more detailed boot flow in BMC.\n\nTested:\n```\nplatform11-bmc:~# busctl --verbose call com.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Checkpoint \\\nGetCheckpointList\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n                STRUCT \"sxx\" {\n                        STRING \"UserspaceEnd\";\n                        INT64 1714449201742;\n                        INT64 497340;\n                };\n        };\n};\n```\n\nGoogle-Bug-Id: 324155294\nChange-Id: I9816d97ad5edaa6eecfb43f1a11b631dae1e330f\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "30e3932459cb255bb31df45abbe8ca65c1b0d393",
      "tree": "4ff90e42a5e805360c05779d66c82a23227cb21f",
      "parents": [
        "4110d35c837cf8d6e609efc1b7a2c691e7af535a"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Apr 29 05:35:11 2024 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Apr 29 05:39:27 2024 +0000"
      },
      "message": "bmc_monitor_app: Fix build issue when npcm enabled\n\nIncorrect function name error will show up when enable the feature\n`npcm7xx-or-new`.\nThis CL is just to fix that build issue.\n\nTested: Build pass with this CL + `npcm7xx-or-newer` enabled.\n\nGoogle-Bug-Id: N/A\nChange-Id: Ie513891287d2383c579cf2e8812feb2969f76d57\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "4110d35c837cf8d6e609efc1b7a2c691e7af535a",
      "tree": "a079b08f2f559633179bbdd57d00c7af24432fbb",
      "parents": [
        "74a50e2b23812883771cbe187b9adc399ea9e242"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Thu Jan 04 02:38:15 2024 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Thu Jan 25 06:16:44 2024 +0000"
      },
      "message": "bmc_monitor_app: Add retry for getting BMC boot time\n\nBoot monotonic time might not be ready when this daemon tries to get\nthem. So we should add retry flow to ensure we can get the correct value\nwhen it\u0027s ready.\n\nTested:\n```\n\\# Before\nbmc$ busctl call --verbose com.google.gbmc.boot_time_monitor /xyz/openbmc_project/time/boot/bmc xyz.openbmc_project.Time.Boot.Duration GetAdditionalDurations\nMESSAGE \"a(sx)\" {\n        ARRAY \"(sx)\" {\n                STRUCT \"sx\" {\n                        STRING \"Firmware\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Loader\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Kernel\";\n                        INT64 6122;\n                };\n                STRUCT \"sx\" {\n                        STRING \"InitRD\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Userspace\";\n                        INT64 18446744073683234; \u003c-- overflow\n                };\n        };\n};\n\n\\# After\nbmc$ busctl call --verbose com.google.gbmc.boot_time_monitor /xyz/openbmc_project/time/boot/bmc xyz.openbmc_project.Time.Boot.Duration GetAdditionalDurations\nMESSAGE \"a(sx)\" {\n        ARRAY \"(sx)\" {\n                STRUCT \"sx\" {\n                        STRING \"Firmware\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Loader\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Kernel\";\n                        INT64 6409;\n                };\n                STRUCT \"sx\" {\n                        STRING \"InitRD\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Userspace\";\n                        INT64 339796; \u003c-- no overflow\n                };\n        };\n};\n\n```\n\nGoogle-Bug-Id: 296787899\nGoogle-Bug-Id: 296791279\nChange-Id: I174dfd453d8163225597ce1477b10e2da73fa280\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "74a50e2b23812883771cbe187b9adc399ea9e242",
      "tree": "c2a28d3f4d06640624c73e4323266a738d83c33a",
      "parents": [
        "f8a5079ac8c53bd04cb87f8c3bb8907b16d70275"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Dec 20 09:30:06 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Jan 23 11:57:59 2024 +0000"
      },
      "message": "host_monitor_app: Monitor post complete event\n\n`Post Complete` is a key event from x86 host. Currently the DBus\nproperty `OperatingSystemState` is monitoring it.\nIn this CL we add a matcher to monitor `OperatingSystemState` and create\ncheckpoint.\n\nTested:\n```\n\\# After host reboot\nbmc$ busctl call --verbose com.google.gbmc.boot_time_monitor /xyz/openbmc_project/time/boot/host0 xyz.openbmc_project.Time.Boot.Checkpoint GetCheckpointList\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n                STRUCT \"sxx\" {\n                        STRING \"CPU_reset\";\n                        INT64 1704343524693;\n                        INT64 606930;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Firmware\";\n                        INT64 1704343685646;\n                        INT64 767890;\n                };\n        };\n};\n```\n\nGoogle-Bug-Id: 296787899\nGoogle-Bug-Id: 296791279\nChange-Id: If57bffe9b157a991046123ba7c492d52ccf534bb\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "f8a5079ac8c53bd04cb87f8c3bb8907b16d70275",
      "tree": "cd779536e8f4bf4fdfa0f2c8ddc80d2f30fa5ee7",
      "parents": [
        "cc2cedd491d70df7770676c350d4c02e6fb39b79"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Dec 20 08:25:44 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Jan 23 11:57:58 2024 +0000"
      },
      "message": "host_monitor_app: Updating checkpoint name of S0 and S5\n\nUpdate the name to meet the requirement.\n\nTested:\n```\nbmc$ busctl call --verbose com.google.gbmc.boot_time_monitor /xyz/openbmc_project/time/boot/host0 xyz.openbmc_project.Time.Boot.Checkpoint GetCheckpointList\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n\n                STRUCT \"sxx\" {\n                        STRING \"To_Off\";\n                        INT64 1704350090260;\n                        INT64 2211580;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"Off\";\n                        INT64 1704350098511;\n                        INT64 2219830;\n                };\n        };\n};\n\n```\n\nGoogle-Bug-Id: 296787899\nGoogle-Bug-Id: 296791279\nChange-Id: Ie50d302d3b3e851a8c4db09eab7acc1cf5718bb3\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "cc2cedd491d70df7770676c350d4c02e6fb39b79",
      "tree": "8dd569980671e0577b37568b90e52cba1295cd5a",
      "parents": [
        "aa2fc3d7599bf54f09e348ee36d2228f7303fc93"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Dec 20 06:10:39 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Jan 23 11:52:28 2024 +0000"
      },
      "message": "boot_manager: Adding upper bound of checkpoints and durations\n\nAdding upper bound to avoid this daemon consumes too many memory.\n\nTested:\n```\n\\# Set checkpoint and duration 102 times\nboot-time-monitor[257]: [setCheckpoint] Drop incoming checkpoint due to no space left. name\u003dS0, externalWallTime\u003d0, duration\u003d0\nboot-time-monitor[257]: [setCheckpoint] Drop incoming checkpoint due to no space left. name\u003dS0, externalWallTime\u003d0, duration\u003d0\nboot-time-monitor[257]: [setDuration] Drop incoming duration due to no space left. name\u003dS0, duration\u003d0\nboot-time-monitor[257]: [setDuration] Drop incoming duration due to no space left. name\u003dS0, duration\u003d0\n```\n\nGoogle-Bug-Id: 296787899\nGoogle-Bug-Id: 296791279\nChange-Id: Ic89bef86f8354f9fdb22458e72e85eec67195182\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "aa2fc3d7599bf54f09e348ee36d2228f7303fc93",
      "tree": "e2ef39505e6f3ecbd52f864b06d0554f1ad7ea6c",
      "parents": [
        "e8e15c284a54d37419ee07c341944847b312c1f4"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Dec 20 04:55:39 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Jan 23 06:49:47 2024 +0000"
      },
      "message": "host_monitor_app: Restrict the criteria of adding S0/S5 checkpoints\n\nOnly the 2 cases below will be considered to add S0/S5 checkpoints.\n\n- S0: `Off`-\u003e`Running`\n- S5: `Running`-\u003e`Off`\n\nTested:\n```\nboot-time-monitor[259]: [powerMatcher] CurrentHostState has changed from xyz.openbmc_project.State.Host.HostState.Running to xyz.openbmc_project.State.Host.HostState.Off\n...\nboot-time-monitor[259]: [powerMatcher] CurrentHostState has changed from xyz.openbmc_project.State.Host.HostState.Off to xyz.openbmc_project.State.Host.HostState.Running\n```\n\nGoogle-Bug-Id: 296787899\nGoogle-Bug-Id: 296791279\nChange-Id: I1542a85b1671008a4970c9e0e80af7d70aaceeed\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "e8e15c284a54d37419ee07c341944847b312c1f4",
      "tree": "79aa1b54f8ca1ee24731e73430fabfc83cfbce03",
      "parents": [
        "fa7b1db0c3089cd84d7aab039acc92b0d1328459"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Fri Dec 15 00:08:45 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Fri Dec 15 00:31:20 2023 +0000"
      },
      "message": "protobuf: Update time related variable name\n\nTime related variable is preferred to have unit in the name.\n\nTested: Buildable\nChange-Id: I4dd092fc7b9cca74a0bf1abf26655fdd7bdc1fb1\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "fa7b1db0c3089cd84d7aab039acc92b0d1328459",
      "tree": "da286192f92fb8dd90b96005a14e487604bfbc06",
      "parents": [
        "8e28b5ae83a4d9597b4c31a6c1ce19cb4771827d"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Nov 15 10:03:59 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Nov 15 10:11:16 2023 +0000"
      },
      "message": "boot-time-blob: Implement `stat` function\n\n`stat` function may be called first before other command to be called to\ncheck the state.\nIn this case `stat` must be implemented to make that process work.\n\nTested:\nChecked open-\u003estat-\u003eread flow is working by internal tool.\n\nChange-Id: I89676bf9431d77ec2a3a2b76b99ae3dcbc8a9f20\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "8e28b5ae83a4d9597b4c31a6c1ce19cb4771827d",
      "tree": "4c0ff4949809139eda43dcc66e792be30db41b9b",
      "parents": [
        "824da3df62ecadb321fa0d35513945075e87630d"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Sep 12 13:01:36 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:43:20 2023 +0000"
      },
      "message": "boot-time-blob: exporting boot info to blob\n\nThis CL exports boot info via ipmi blob to external.\nIncluding the checkpoint, durations and statistic infomation.\nThe format is proto 3.\n\nTested:\n\\# Read `/btm/host/0` blob from host and ensure the data can be encoded\ncorrectly.\n\\# Blob raw data (proto 3 format)\n```\n00000000  12 19 0a 0b 52 65 62 6f  6f 74 53 74 61 72 74 10  |....RebootStart.|\n00000010  80 e9 ef b0 ab 31 18 be  bc ab 26 12 16 0a 08 53  |.....1....\u0026....S|\n00000020  68 75 74 64 6f 77 6e 10  dc 92 bf b7 ab 31 18 c4  |hutdown......1..|\n00000030  c4 ab 26 12 1c 0a 0e 4b  65 72 6e 65 6c 53 68 75  |..\u0026....KernelShu|\n00000040  74 64 6f 77 6e 10 c5 a2  bf b7 ab 31 18 a8 d4 ab  |tdown......1....|\n00000050  26 12 10 0a 02 53 35 10  d9 a2 bf b7 ab 31 18 bc  |\u0026....S5......1..|\n00000060  d4 ab 26 12 10 0a 02 53  30 10 b6 ba bf b7 ab 31  |..\u0026....S0......1|\n00000070  18 9c ec ab 26 12 19 0a  0b 54 6f 5f 46 69 72 6d  |....\u0026....To_Firm|\n00000080  77 61 72 65 10 d2 c2 bf  b7 ab 31 18 b6 f4 ab 26  |ware......1....\u0026|\n00000090  12 16 0a 08 46 69 72 6d  77 61 72 65 10 f2 e1 bf  |....Firmware....|\n000000a0  b7 ab 31 18 d6 93 ac 26  12 17 0a 09 54 6f 5f 4c  |..1....\u0026....To_L|\n000000b0  6f 61 64 65 72 10 c5 f9  bf b7 ab 31 18 ac ab ac  |oader......1....|\n000000c0  26 12 14 0a 06 4c 6f 61  64 65 72 10 fd 90 c0 b7  |\u0026....Loader.....|\n000000d0  ab 31 18 e4 c2 ac 26 12  17 0a 09 54 6f 5f 4b 65  |.1....\u0026....To_Ke|\n000000e0  72 6e 65 6c 10 b0 b8 c0  b7 ab 31 18 94 ea ac 26  |rnel......1....\u0026|\n000000f0  12 14 0a 06 4b 65 72 6e  65 6c 10 80 c8 c0 b7 ab  |....Kernel......|\n00000100  31 18 e4 f9 ac 26 12 17  0a 09 54 6f 5f 49 6e 69  |1....\u0026....To_Ini|\n00000110  74 72 64 10 f8 fe c0 b7  ab 31 18 da b0 ad 26 12  |trd......1....\u0026.|\n00000120  14 0a 06 49 6e 69 74 72  64 10 e0 86 c1 b7 ab 31  |...Initrd......1|\n00000130  18 c2 b8 ad 26 12 1a 0a  0c 54 6f 5f 55 73 65 72  |....\u0026....To_User|\n00000140  73 70 61 63 65 10 80 e3  f1 b0 ab 31 18 e0 b8 ad  |space......1....|\n00000150  26 12 17 0a 09 55 73 65  72 73 70 61 63 65 10 c8  |\u0026....Userspace..|\n00000160  c8 f2 b0 ab 31 18 a8 9e  ae 26 1a 08 0a 04 55 45  |....1....\u0026....UE|\n00000170  46 49 10 64 1a 0d 0a 08  4e 45 52 46 44 68 63 70  |FI.d....NERFDhcp|\n00000180  10 c8 01 1a 10 0a 0b 4e  45 52 46 4e 65 74 62 6f  |.......NERFNetbo|\n00000190  6f 74 10 ac 02 1a 11 0a  0c 4e 45 52 46 53 6d 61  |ot.......NERFSma|\n000001a0  72 74 4e 49 43 10 90 03  1a 0c 0a 07 55 45 46 49  |rtNIC.......UEFI|\n000001b0  53 65 63 10 f4 03 1a 0c  0a 07 55 45 46 49 50 65  |Sec.......UEFIPe|\n000001c0  69 10 d8 04 1a 0c 0a 07  55 45 46 49 44 78 65 10  |i.......UEFIDxe.|\n000001d0  bc 05 1a 10 0a 0b 42 4d  43 53 68 75 74 64 6f 77  |......BMCShutdow|\n000001e0  6e 10 a0 06 1a 0e 0a 09  46 6c 61 73 68 42 49 4f  |n.......FlashBIO|\n000001f0  53 10 84 07                                       |S...|\n```\n\nChange-Id: Ifb0e381d517c147ca6d086c033b4a5d918dc391b\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "824da3df62ecadb321fa0d35513945075e87630d",
      "tree": "64e63519cb4a5cb066df58b70e3060c44c3b3076",
      "parents": [
        "615e3ff8c8505967ed6d1c38ab371938b4860d15"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Thu Sep 14 03:23:02 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:36:30 2023 +0000"
      },
      "message": "bmc_monitor_app: Adding option to auto-complete BMC boot process\n\nOriginal design assumes BMC will receive complete command externally.\nWhile it may cause BMC state is `rebooting` forever if no proper\nexternal daemon can do so.\nAdding auto-complete option can let BMC marks itself as `completed` so\nit won\u0027t always rely external daemon.\n\nTested:\n```\n\\# Before\nbmc:~# busctl get-property com.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Statistic IsRebooting\nb true\n\n\\# After enable `AUTO_BMC_COMPLETE`\nbmc:~# busctl get-property com.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Statistic IsRebooting\nb false\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: I2f94c4be496d0703062217b54ab3cf6ecd0f66a0\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "615e3ff8c8505967ed6d1c38ab371938b4860d15",
      "tree": "0510278c9c38eae18c2c31cad9766b3f560f948b",
      "parents": [
        "27fd17a4d484c402cfcecb44ddda7ca7aa83aab4"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Sep 13 06:18:13 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:36:30 2023 +0000"
      },
      "message": "dbus_handler: Change variable name for alignment\n\nAlign the variable name.\nbm -\u003e bootManager\n\nTested: Buildable\nGoogle-Bug-Id: 296530445\nChange-Id: Id5c2c37ab31268e93d7d5d914493673fc1c026ed\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "27fd17a4d484c402cfcecb44ddda7ca7aa83aab4",
      "tree": "c2ed26e713c0cc95f3f8d87e82f0e038c41d5053",
      "parents": [
        "825b19d739c7af5597df582faa7cb68b945c3eb4"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Fri Sep 08 12:20:08 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:36:30 2023 +0000"
      },
      "message": "dbus_handler: Get previous data when not rebooting\n\nThe reboot data will be store as \"previous\" reboot data once the current\nreboot process is done.\nSo for the object that is not rebooting, `getCheckpointList` and\n`getAdditionalDurations` function should return previous reboot data\nsince current reboot data will be empty.\n\nTested:\n```\n\\# Before\nbmc:~# busctl --verbose call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Duration \\\nGetAdditionalDurations\nMESSAGE \"a(sx)\" {\n        ARRAY \"(sx)\" {\n        };\n};\n\n\\#After\nbmc:~# busctl --verbose call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Duration \\\nGetAdditionalDurations\nMESSAGE \"a(sx)\" {\n        ARRAY \"(sx)\" {\n                STRUCT \"sx\" {\n                        STRING \"Firmware\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Loader\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Kernel\";\n                        INT64 6125;\n                };\n                STRUCT \"sx\" {\n                        STRING \"InitRD\";\n                        INT64 0;\n                };\n                STRUCT \"sx\" {\n                        STRING \"Userspace\";\n                        INT64 371105;\n                };\n        };\n};\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: I753c49fab562ac7b8d10df55b1be6741a3dac921\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "825b19d739c7af5597df582faa7cb68b945c3eb4",
      "tree": "aced8e7c07e92e7208ab040926c4db7a7f3ee047",
      "parents": [
        "f3a281f5aa7904705b6362407b3ff2ced48b76e4"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Fri Sep 08 11:15:44 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:36:30 2023 +0000"
      },
      "message": "bmc_monitor_app: Support `FirmwarePlusLoader` for Nuvoton SoC\n\nSupport `FirmwarePlusLoader` duration for NCPM7XX or newer Nuvoton SoC.\nThis will mitigate the inaccuracy caused by SoC not supporting Firmware\ntime and Loader time.\n\nTested:\n\\# Check FirmwarePlusLoader time is correct on the BMC with Nuvoton SoC\n```\nbmc:~# cat /usr/share/boot_time_monitor/bmc_durations.csv.completed\nFirmware,0\nLoader,0\nKernel,38706\nInitRD,0\nUserspace,381086\nFirmwarePlusLoader,43480\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: Ie340bd5f9d4637f0be1f2915887200b3c3d03e12\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "f3a281f5aa7904705b6362407b3ff2ced48b76e4",
      "tree": "5485bedad4b0699c84dc7fa9b17d11ce9ca02e8d",
      "parents": [
        "f1ce382d45ed4cbe2b155f8a0b0329ec0bfd1946"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Thu Sep 07 08:31:55 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 08:32:00 2023 +0000"
      },
      "message": "bmc_monitor_app: Adding systemd boot process duration\n\nExpose BMC bootup process durations.\nThis bootup process is defined by systemd[1] and has been included in\nRedfish schema[2].\nBasically the implementation is copied from systemd-analyze[3].\n\nRef:\n[1] https://www.freedesktop.org/software/systemd/man/bootup.html\n[2] https://www.dmtf.org/sites/default/files/standards/documents/DSP0268_2023.1.pdf\n    (6.65 ManagerDiagnosticData 1.2.0)\n[3] https://github.com/systemd/systemd/blob/82b7bf8c1c8c6ded6f56b43998c803843a3b944b/src/analyze/analyze-time-data.c\n\nTested:\n```\n\\# Check the duration calculated by boot-time-monitor\nbmc:~# cat /usr/share/boot_time_monitor/bmc_durations.csv.completed\nFirmware,0\nLoader,0\nKernel,6125\nInitRD,0\nUserspace,371105\n\n\\# Manual install systemd-analyze to ensure the result is correct.\nbmc:~# systemd-analyze\nStartup finished in 6.125s (kernel) + 6min 11.105s (userspace) \u003d 6min 17.231s\nmulti-user.target reached after 2min 48.715s in userspace.\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: Ifa632a920e4d23085f25e6a38e00475218e907c8\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "f1ce382d45ed4cbe2b155f8a0b0329ec0bfd1946",
      "tree": "b6beb18b75960ddc882d507aa96bfcab3bc5c489",
      "parents": [
        "eb6738349783f2eeee4df9fecd18bbb5e9c46a84"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Sep 13 03:15:11 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:24:28 2023 +0000"
      },
      "message": "host_monitor_app: Change variable name for alignment\n\nAlign the variable name.\nbm -\u003e bootMnager\ndh -\u003e dbusHandler\n\nTested: Buildable\nGoogle-Bug-Id: 296530445\nChange-Id: Ic1ad93cb1b690af90da7a37730ecc5dd178b2847\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "eb6738349783f2eeee4df9fecd18bbb5e9c46a84",
      "tree": "a0a6815c8f54119b92a1803b8cfb782e9b0faafd",
      "parents": [
        "1948c54cde9eae96f84df0f306ca3c39de30d265"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Sep 06 08:47:49 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:24:01 2023 +0000"
      },
      "message": "bmc_monitor_app: Adding BMC boot time monitor instance\n\nAdding boot time monitor instance for BMC. The initialization is mostly\nthe same as host besides it doesn\u0027t have event to be matched.\n\nTested:\n```\n\\# DBus interfaces are added\nbmc:~# busctl introspect \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc\n......\nxyz.openbmc_project.Time.Boot.Checkpoint interface -          -             -\n.GetCheckpointList                       method    -          a(sxx)        -\n.RebootComplete                          method    -          -             -\n.SetCheckpoint                           method    sxx        -             -\nxyz.openbmc_project.Time.Boot.Duration   interface -          -             -\n.GetAdditionalDurations                  method    -          a(sx)         -\n.SetDuration                             method    sx         -             -\nxyz.openbmc_project.Time.Boot.Statistic  interface -          -             -\n.IsRebooting                             property  b          false         emits-change\n\n\\# Try to call `SetCheckpoint`\nbmc:~# busctl call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Checkpoint \\\nSetCheckpoint sxx \"bmc_checkpoint1\" 0 0\n\n\\# Check if it set correctly\nbmc:~# busctl --verbose call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/bmc \\\nxyz.openbmc_project.Time.Boot.Checkpoint \\\nGetCheckpointList\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n                STRUCT \"sxx\" {\n                        STRING \"bmc_checkpoint1\";\n                        INT64 1693991949237;\n                        INT64 76140790;\n                };\n        };\n};\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: Ifc556d3b1950c7fd9ff533b1d1c7525e89af80e6\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "1948c54cde9eae96f84df0f306ca3c39de30d265",
      "tree": "768a0661ae17184f90f75fba08512528382d538b",
      "parents": [
        "d0fe6af604ab5e8bbeb56f7e80bbd21195ba28dc"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Sep 12 08:22:00 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:22:32 2023 +0000"
      },
      "message": "dbus_handler: Add DBus interfaces to export boot info\n\nAdding DBus interfaces for adding/getting checkpoint and duration from\nDBus.\n\nTested:\n```\n\\# DBus interfaces are added\nbmc:~# busctl introspect \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/host0\nNAME                                     TYPE      SIGNATURE  RESULT/VALUE  FLAGS\n......\nxyz.openbmc_project.Time.Boot.Checkpoint interface -          -             -\n.GetCheckpointList                       method    -          a(sxx)        -\n.RebootComplete                          method    -          -             -\n.SetCheckpoint                           method    sxx        -             -\nxyz.openbmc_project.Time.Boot.Duration   interface -          -             -\n.GetAdditionalDurations                  method    -          a(sx)         -\n.SetDuration                             method    sx         -             -\nxyz.openbmc_project.Time.Boot.Statistic  interface -          -             -\n.IsRebooting                             property  b          true          emits-change\n\n\\# Try to call `SetCheckpoint`\nbmc:~# busctl call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/host0 \\\nxyz.openbmc_project.Time.Boot.Checkpoint \\\nSetCheckpoint sxx \"checkpoint1\" 0 0\n\n\\# Check if it set correctly\nbmc:~# busctl --verbose call \\\ncom.google.gbmc.boot_time_monitor \\\n/xyz/openbmc_project/time/boot/host0 \\\nxyz.openbmc_project.Time.Boot.Checkpoint \\\nGetCheckpointList\nMESSAGE \"a(sxx)\" {\n        ARRAY \"(sxx)\" {\n                STRUCT \"sxx\" {\n                        STRING \"ShutDownEnd\";\n                        INT64 1693915751696;\n                        INT64 39660;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"PowerOffEnd\";\n                        INT64 1693915885932;\n                        INT64 173900;\n                };\n                STRUCT \"sxx\" {\n                        STRING \"checkpoint1\";\n                        INT64 1693919548471;\n                        INT64 3740020;\n                };\n        };\n};\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: Iee6fd10190d275195959cace296e9b2795beb2d0\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "d0fe6af604ab5e8bbeb56f7e80bbd21195ba28dc",
      "tree": "65d30f6ba8a44e682dc3992c95e7745579043fea",
      "parents": [
        "98c5a48c9cc6ceeca0cba28d86f481945ac2257b"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Sep 12 07:29:35 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:19:56 2023 +0000"
      },
      "message": "yaml: Adding interface files\n\nAdding 3 interfaces:\n- Checkpoint\n- Duration\n- Statistic\n\nThose yaml files will be used for generating dbus interface source code\nfiles by the script under `gen/`.\nIt\u0027s unneeded for yocto build. However, presubmit build needs these\nfiles to be existed since those interfaces are not merged to OpenBMC\nyet.\n\nTested: Buildable\nGoogle-Bug-Id: 296530445\nChange-Id: Ida49772ff542456e1324e45583ab56c89ff3b11c\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "98c5a48c9cc6ceeca0cba28d86f481945ac2257b",
      "tree": "eb3fc201e0ca53c71b5cc96e277d57194d269124",
      "parents": [
        "4f67732ea664430a2c6f77ce18fad4787dd14e1d"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Sep 12 06:11:20 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:19:14 2023 +0000"
      },
      "message": "boot_manager: Adding the logic to store boot time events\n\n`boot_manager` provides a mechanism to store checkpoint and duration\nseparately. Every node will initiate its own `boot_manager` to record\nits boot event.\n\nTested:\n```\n\\# Nothing in the beginning\nbmc:~# cat /usr/share/boot_time_monitor/host0_checkpoints.csv\n\n\\# Power off host\nbmc:~# ipmitool chassis power off\nChassis Power Control: Down/Off\n\n\\# `ShutDownEnd` event has recoreded\nbmc:~# cat /usr/share/boot_time_monitor/host0_checkpoints.csv\nShutDownEnd,1694502220905,586412450\n\n\\# Power on host\nbmc:~# ipmitool chassis power on\nChassis Power Control: Up/On\n\n\\# `PowerOffEnd` event has recoreded\nbmc:~# cat /usr/share/boot_time_monitor/host0_checkpoints.csv\nShutDownEnd,1694502220905,586412450\nPowerOffEnd,1694502232025,586423570\n```\n\nGoogle-Bug-Id: 296530445\nChange-Id: I3206aef646771e2ed0ca58c7a502f9fc996b155d\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "4f67732ea664430a2c6f77ce18fad4787dd14e1d",
      "tree": "03e39aa750051f4ac41784590c56f95f00f2e707",
      "parents": [
        "7f3aea741795b55fe00dee71220b639a84d270a1"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Tue Sep 12 04:44:32 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 07:01:19 2023 +0000"
      },
      "message": "utils: Implementing utility functions for boot_manager\n\nThis CL implements virtual class boot_manager and the utility functions\nthat will be used in boot_manager.\n\nTested:\nThis CL won\u0027t change any behavior.\nCan only confirm that unit test passed.\n\nGoogle-Bug-Id: 298918774\nChange-Id: Ib26efa04990ed0f16316741bd4172a660968b3a9\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "7f3aea741795b55fe00dee71220b639a84d270a1",
      "tree": "8fa7d774f1d863bbec5ad029a3b0927f9557369a",
      "parents": [
        "8eefc81c0a182499b91f76cfe76bedd9162c9e0d"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Sep 11 12:33:39 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Sat Sep 23 06:25:31 2023 +0000"
      },
      "message": "host_monitor_app: Adding skeleton for `host_monitor_app`\n\nInitializing the `host_monitor_app` instance and adding a match\nfunction.\nThis is just a skeleton and the details will be in the following CLs.\n\nTested:\n```\nbmc:~# busctl tree com.google.gbmc.boot_time_monitor\n└─/xyz\n  └─/xyz/openbmc_project\n      └─/xyz/openbmc_project/time\n            └─/xyz/openbmc_project/time/boot\n                  └─/xyz/openbmc_project/time/boot/host0\n                  ^^^ Object appears\n```\n\nGoogle-Bug-Id: 298918774\nChange-Id: I5cd3416059e45df7310e487b68938a39c4dd28e9\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "8eefc81c0a182499b91f76cfe76bedd9162c9e0d",
      "tree": "631f4747560cab075a3d0d8ae8dab5a450c3f00a",
      "parents": [
        "83554dfe6a12c08623cb0d5c13ac4a3305beaf71"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Sep 11 11:26:39 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Sep 11 12:55:08 2023 +0000"
      },
      "message": "clang-tidy: Remove `.clang-tidy`\n\nHaving `.clang-tidy` file will force the presubmit to compile the code\nwith clang. While the code generated by script can\u0027t be compiled by\nclang (reason unknown).\n\nTested: Buildable\n\nGoogle-Bug-Id: 299895444\nGoogle-Bug-Id: 298918774\nChange-Id: I95819db8b4cc8965af882095d9b17f53876d7852\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "83554dfe6a12c08623cb0d5c13ac4a3305beaf71",
      "tree": "d503fb54c3dffc2a2745410b15eb82b8fe0867db",
      "parents": [
        "dea6a2b3517aef1f628577ed17b9eb8a04da7ca1"
      ],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Sep 04 08:50:17 2023 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Mon Sep 04 09:29:25 2023 +0000"
      },
      "message": "Adding basic files\n\nAdding basic files including meson build file, service files, git\nconfig, clang-format and clang-tidy\n\nTested:\nBuildable and service can up as expected.\n```\nbmc:~# busctl tree com.google.gbmc.boot_time_monitor\nOnly root object discovered.\n```\n\nGoogle-Bug-Id: 298918774\nChange-Id: Ia88b00aa9bae1a4d04d5ec2a8dbe52f8c8bf8d2c\nSigned-off-by: Michael Shen \u003cgpgpgp@google.com\u003e\n"
    },
    {
      "commit": "dea6a2b3517aef1f628577ed17b9eb8a04da7ca1",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Aug 24 08:02:17 2022 +0000"
      },
      "committer": {
        "name": "Michael Shen",
        "email": "gpgpgp@google.com",
        "time": "Wed Aug 24 08:02:17 2022 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
