)]}'
{
  "commit": "13b18ec947c9589b47f058d7e7b95e60fcdb3fc9",
  "tree": "1625e42a213b94cc51a4bd3b3c8d7e743bd18422",
  "parents": [
    "e1b5f347e78c733bb0743df04c990e20f74bf188"
  ],
  "author": {
    "name": "Michael Anthony Knyszek",
    "email": "mknyszek@google.com",
    "time": "Fri Mar 18 23:59:12 2022 +0000"
  },
  "committer": {
    "name": "Michael Knyszek",
    "email": "mknyszek@google.com",
    "time": "Tue Apr 26 22:09:34 2022 +0000"
  },
  "message": "runtime: move scheduling decisions by schedule into findrunnable\n\nThis change moves several scheduling decisions made by schedule into\nfindrunnable. The main motivation behind this change is the fact that\nstopped Ms can\u0027t become dedicated or fractional GC workers. The main\nreason for this is that when a stopped M wakes up, it stays in\nfindrunnable until it finds work, which means it will never consider GC\nwork. On that note, it\u0027ll also never consider becoming the trace reader,\neither.\n\nAnother way of looking at it is that this change tries to make\nfindrunnable aware of more sources of work than it was before. With this\nchange, any M in findrunnable should be capable of becoming a GC worker,\nresolving #44313. While we\u0027re here, let\u0027s also make more sources of\nwork, such as the trace reader, visible to handoffp, which should really\nbe checking all sources of work. With that, we also now correctly handle\nthe case where StopTrace is called from the last live M that is also\nlocked (#39004). stoplockedm calls handoffp to start a new M and handle\nthe work it cannot, and once we include the trace reader in that, we\nensure that the trace reader gets scheduled.\n\nThis change attempts to preserve the exact same ordering of work\nchecking to reduce its impact.\n\nOne consequence of this change is that upon entering schedule, some\nsources of work won\u0027t be checked twice (i.e. the local and global\nrunqs, and timers) as they do now, which in some sense gives them a\nlower priority than they had before.\n\nFixes #39004.\nFixes #44313.\n\nChange-Id: I5d8b7f63839db8d9a3e47cdda604baac1fe615ce\nReviewed-on: https://go-review.googlesource.com/c/go/+/393880\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nRun-TryBot: Michael Knyszek \u003cmknyszek@google.com\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4aeb66c92d4212a471807cbf6d2c36df3caa9d9a",
      "old_mode": 33188,
      "old_path": "src/runtime/proc.go",
      "new_id": "485bd65a9ecad735c37f6fc5aba45cfaf6a564eb",
      "new_mode": 33188,
      "new_path": "src/runtime/proc.go"
    },
    {
      "type": "modify",
      "old_id": "8f60de2b05831ba7b0d6368c7bee3a20fbffda0f",
      "old_mode": 33188,
      "old_path": "src/runtime/trace.go",
      "new_id": "b50e1b2ce0a16c3f45515b536caf0fa63476552f",
      "new_mode": 33188,
      "new_path": "src/runtime/trace.go"
    }
  ]
}
