)]}'
{
  "commit": "6b1c2decab8b5e3c14f0db04390eb9351a4805e8",
  "tree": "8441f7c4e566a76ecc0bb4d94091d0997f05f8f4",
  "parents": [
    "97c06425004083a013ee1c80ba47f79f84efbae7"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Wed May 17 16:53:21 2023 -1000"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Wed May 17 16:53:21 2023 -1000"
  },
  "message": "workqueue: Track and monitor per-workqueue CPU time usage\n\nNow that wq_worker_tick() is there, we can easily track the rough CPU time\nconsumption of each workqueue by charging the whole tick whenever a tick\nhits an active workqueue. While not super accurate, it provides reasonable\nvisibility into the workqueues that consume a lot of CPU cycles.\nwq_monitor.py is updated to report the per-workqueue CPU times.\n\nv2: wq_monitor.py was using \"cputime\" as the key when outputting in json\n    format. Use \"cpu_time\" instead for consistency with other fields.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a389f31b025c9bad14921fe89ba4dc386ca4674f",
      "old_mode": 33188,
      "old_path": "Documentation/core-api/workqueue.rst",
      "new_id": "a4c9b9d1905f473dc4d01aa2a5db37c32ad4e4d2",
      "new_mode": 33188,
      "new_path": "Documentation/core-api/workqueue.rst"
    },
    {
      "type": "modify",
      "old_id": "4ca66384d288cc0f62b3bc3dfbdfcc31e67714c0",
      "old_mode": 33188,
      "old_path": "kernel/workqueue.c",
      "new_id": "ee16ddb0647c60076ab0356e9e6f4dfbc8fb4178",
      "new_mode": 33188,
      "new_path": "kernel/workqueue.c"
    },
    {
      "type": "modify",
      "old_id": "7c6f523b9164fa4f9cc43dbd405b5446fe55da55",
      "old_mode": 33188,
      "old_path": "tools/workqueue/wq_monitor.py",
      "new_id": "6e258d123e8c7fd600bae968e446e8ebdcaa3ead",
      "new_mode": 33188,
      "new_path": "tools/workqueue/wq_monitor.py"
    }
  ]
}
