)]}'
{
  "commit": "8102679447da7fcbcb5226ee0207c3a034bc6d5f",
  "tree": "bb1717150a94a02a44c3bafc9bf8969ef6045f89",
  "parents": [
    "e0f364f4069f76a3613a797c388832822d179076"
  ],
  "author": {
    "name": "Nick Piggin",
    "email": "nickpiggin@yahoo.com.au",
    "time": "Sat Jun 25 14:57:07 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@ppc970.osdl.org",
    "time": "Sat Jun 25 16:24:40 2005 -0700"
  },
  "message": "[PATCH] sched: improve load balancing pinned tasks\n\nJohn Hawkes explained the problem best:\n\n\tA large number of processes that are pinned to a single CPU results\n\tin every other CPU\u0027s load_balance() seeing this overloaded CPU as\n\t\"busiest\", yet move_tasks() never finds a task to pull-migrate.  This\n\tcondition occurs during module unload, but can also occur as a\n\tdenial-of-service using sys_sched_setaffinity().  Several hundred\n\tCPUs performing this fruitless load_balance() will livelock on the\n\tbusiest CPU\u0027s runqueue lock.  A smaller number of CPUs will livelock\n\tif the pinned task count gets high.\n\nExpanding slightly on John\u0027s patch, this one attempts to work out whether the\nbalancing failure has been due to too many tasks pinned on the runqueue.  This\nallows it to be basically invisible to the regular blancing paths (ie.  when\nthere are no pinned tasks).  We can use this extra knowledge to shut down the\nbalancing faster, and ensure the migration threads don\u0027t start running which\nis another problem observed in the wild.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "86be13ee500675c27d1792359cdf94d13850fbc6",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "2794c79b91977c0980d849b73905e1e644296937",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    }
  ]
}
