)]}'
{
  "commit": "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c",
  "tree": "b9bfc0f78135502adf7c83313948a705fb19384b",
  "parents": [
    "246d86b51845063e4b06b27579990492dc5fa317"
  ],
  "author": {
    "name": "Venkatesh Pallipadi",
    "email": "venki@google.com",
    "time": "Mon May 17 18:14:43 2010 -0700"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Jun 09 10:34:51 2010 +0200"
  },
  "message": "sched: Avoid side-effect of tickless idle on update_cpu_load\n\ntickless idle has a negative side effect on update_cpu_load(), which\nin turn can affect load balancing behavior.\n\nupdate_cpu_load() is supposed to be called every tick, to keep track\nof various load indicies. With tickless idle, there are no scheduler\nticks called on the idle CPUs. Idle CPUs may still do load balancing\n(with idle_load_balance CPU) using the stale cpu_load. It will also\ncause problems when all CPUs go idle for a while and become active\nagain. In this case loads would not degrade as expected.\n\nThis is how rq-\u003enr_load_updates change looks like under different\nconditions:\n\n\u003ccpu_num\u003e \u003cnr_load_updates change\u003e\nAll CPUS idle for 10 seconds (HZ\u003d1000)\n0 1621\n10 496\n11 139\n12 875\n13 1672\n14 12\n15 21\n1 1472\n2 2426\n3 1161\n4 2108\n5 1525\n6 701\n7 249\n8 766\n9 1967\n\nOne CPU busy rest idle for 10 seconds\n0 10003\n10 601\n11 95\n12 966\n13 1597\n14 114\n15 98\n1 3457\n2 93\n3 6679\n4 1425\n5 1479\n6 595\n7 193\n8 633\n9 1687\n\nAll CPUs busy for 10 seconds\n0 10026\n10 10026\n11 10026\n12 10026\n13 10025\n14 10025\n15 10025\n1 10026\n2 10026\n3 10026\n4 10026\n5 10026\n6 10026\n7 10026\n8 10026\n9 10026\n\nThat is update_cpu_load works properly only when all CPUs are busy.\nIf all are idle, all the CPUs get way lower updates.  And when few\nCPUs are busy and rest are idle, only busy and ilb CPU does proper\nupdates and rest of the idle CPUs will do lower updates.\n\nThe patch keeps track of when a last update was done and fixes up\nthe load avg based on current time.\n\nOn one of my test system SPECjbb with warehouse 1..numcpus, patch\nimproves throughput numbers by ~1% (average of 6 runs).  On another\ntest system (with different domain hierarchy) there is no noticable\nchange in perf.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cAANLkTilLtDWQsAUrIxJ6s04WTgmw9GuOODc5AOrYsaR5@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f37a9618fac38e6c23679efa51168f9800390886",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "a757f6b11cbd2e278c3a82d86310ea5319c98ba3",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    },
    {
      "type": "modify",
      "old_id": "eed35eded6029c82d126ea24bbdfa2a5731ad8a9",
      "old_mode": 33188,
      "old_path": "kernel/sched_fair.c",
      "new_id": "22b8b4f2b61658dac6b94bb358b9d6275bb22fd8",
      "new_mode": 33188,
      "new_path": "kernel/sched_fair.c"
    }
  ]
}
