)]}'
{
  "commit": "ce2de4628c3ffb543c6e2c74f927ab8e4f07ad89",
  "tree": "424b9cb4013368d14b7592dc2b6ff44251d79098",
  "parents": [
    "d53f2b615db0eaf6498630d1999fafb407f13921"
  ],
  "author": {
    "name": "Andrew Woloszyn",
    "email": "andrew.woloszyn@gmail.com",
    "time": "Fri Apr 17 13:11:10 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Apr 17 10:11:10 2026 -0700"
  },
  "message": "  [runtime] Restore \"any processor\" fallback for unspecified Windows … (#24154)\n\n…read affinity\n\nPR #21089 removed the early-return guard from\niree_thread_request_affinity\nbut the Windows implementation did not get an equivalent fallback path\nfor\nthe \"unspecified\" case. With group_any\u003d0 and id_assigned\u003d0 the else\nbranch\nbuilt an affinity_mask of `1ull \u003c\u003c 0 \u003d 1` and SetThreadGroupAffinity\npinned\nthe thread to CPU 0; SetThreadIdealProcessorEx then biased the scheduler\n  toward CPU 0 as well.\n\nThis is the state that threads coming from iree_thread_affinity_set_any\nland in — most notably the task executor\u0027s poller thread\n(executor.c:158).\nOn a model with heavy poller/worker wake coordination, the poller and\nthe\nworker pinned to CPU 0 ended up contending for the same core, producing\na\n~2.5x real_time regression on Windows (cpu_time was unchanged or\nslightly\nbetter, consistent with serialization rather than more work). Linux was\nunaffected because iree_thread_make_cpu_set_from_affinity already falls\n  back to \"all CPUs\" when neither group_any nor id_assigned is set.\n\n  Mirror that behavior on Windows:\n- SetThreadGroupAffinity: when id is not assigned, set Mask\u003dUINTPTR_MAX\nso the scheduler is free to place the thread on any processor in the\ngroup.\n- SetThreadIdealProcessorEx: skip entirely when id is not assigned\ninstead of passing Number\u003d0.\n\n  Tested on a 4 thread Windows benchmark: real_time returns from ~102 ms\n  back to ~40 ms at this commit, matching the pre-#21089 baseline.\n\nSigned-off-by: Andrew Woloszyn \u003candrew.woloszyn@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fb4ac6ab8affed9820df2873a514b25053b1a78b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/base/threading/thread_win32.c",
      "new_id": "f593056be648a95832b7b0409bafb83d60b41e84",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/base/threading/thread_win32.c"
    }
  ]
}
