)]}'
{
  "commit": "cb4ad1ffc7c0d8ea7dc8cd8ba303d83551716d46",
  "tree": "79f6b1fe971a270e5e009d695d2bf998936197c8",
  "parents": [
    "712555ee4f873515612f89554ad1a3fda5fa887e"
  ],
  "author": {
    "name": "Miao Xie",
    "email": "miaox@cn.fujitsu.com",
    "time": "Mon Apr 28 12:54:56 2008 +0800"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon May 05 23:56:18 2008 +0200"
  },
  "message": "sched: fair-group: fix a Div0 error of the fair group scheduler\n\nWhen I echoed 0 into the \"cpu.shares\" file, a Div0 error occured.\n\nWe found it is caused by the following calling.\n\n   sched_group_set_shares(tg, shares)\n       set_se_shares(tg-\u003ese[i], shares/nr_cpu_ids)\n           __set_se_shares(se, shares)\n               div64_64((1ULL\u003c\u003c32), shares)\n\nWhen the echoed value was less than the number of processores, the result of the\nsentence \"shares/nr_cpu_ids\" was 0, and then the system called div64() to divide\nthe result, the Div0 error occured.\n\nIt is unnecessary that the shares value is divided by nr_cpu_ids, I think.\nBecause in the function  __update_group_shares_cpu() and init_tg_cfs_entry(),\nthe shares value isn\u0027t divided by nr_cpu_ids when setting shares of the sched\nentity.\n\nThis patch fixes this bug. And echoing ULONG_MAX value into cpu.shares also\ncauses Div0 error, so we set a macro MAX_SHARES to limit the max value of\nshares.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "561b3b39bdb873d0dcc56c760752155b7fa106a4",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "f98f75f3c708414d14d60f49a6cc81a5c79d25e3",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    }
  ]
}
