)]}'
{
  "commit": "b1bcaed1e39a9e0dfbe324a15d2ca4253deda316",
  "tree": "e019156c6a93257b43f679c4ed10fd40a59d1ee2",
  "parents": [
    "318e18ed22e89397635e15095c014accaf47ed30"
  ],
  "author": {
    "name": "Chen Ridong",
    "email": "chenridong@huawei.com",
    "time": "Fri Nov 14 02:08:47 2025 +0000"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu Nov 20 16:25:26 2025 -1000"
  },
  "message": "cpuset: Treat cpusets in attaching as populated\n\nCurrently, the check for whether a partition is populated does not\naccount for tasks in the cpuset of attaching. This is a corner case\nthat can leave a task stuck in a partition with no effective CPUs.\n\nThe race condition occurs as follows:\n\ncpu0\t\t\t\tcpu1\n\t\t\t\t//cpuset A  with cpu N\nmigrate task p to A\ncpuset_can_attach\n// with effective cpus\n// check ok\n\n// cpuset_mutex is not held\t// clear cpuset.cpus.exclusive\n\t\t\t\t// making effective cpus empty\n\t\t\t\tupdate_exclusive_cpumask\n\t\t\t\t// tasks_nocpu_error check ok\n\t\t\t\t// empty effective cpus, partition valid\ncpuset_attach\n...\n// task p stays in A, with non-effective cpus.\n\nTo fix this issue, this patch introduces cs_is_populated, which considers\ntasks in the attaching cpuset. This new helper is used in validate_change\nand partition_is_populated.\n\nFixes: e2d59900d936 (\"cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective\")\nSigned-off-by: Chen Ridong \u003cchenridong@huawei.com\u003e\nReviewed-by: Waiman Long \u003clongman@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec8bebc66469f8c26a49b73974c44cbbe4dc351b",
      "old_mode": 33188,
      "old_path": "kernel/cgroup/cpuset.c",
      "new_id": "1e3aadc09d3a291f473451b172be87ab95538bf8",
      "new_mode": 33188,
      "new_path": "kernel/cgroup/cpuset.c"
    }
  ]
}
