)]}'
{
  "commit": "94df7de0289bc2df3d6e85cd2ece52bf42682f45",
  "tree": "b3f614b015adfb9574959687bb9b7ac4c884e23a",
  "parents": [
    "7f22391cbe82a80a9f891d8bd10fc28ff248d1e2"
  ],
  "author": {
    "name": "Sebastien Dugue",
    "email": "sebastien.dugue@bull.net",
    "time": "Mon Dec 01 14:09:07 2008 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Fri Jan 30 22:35:29 2009 +0100"
  },
  "message": "hrtimers: allow the hot-unplugging of all cpus\n\nImpact: fix CPU hotplug hang on Power6 testbox\n\nOn architectures that support offlining all cpus (at least powerpc/pseries),\nhot-unpluging the tick_do_timer_cpu can result in a system hang.\n\nThis comes from the fact that if the cpu going down happens to be the\ncpu doing the tick, then as the tick_do_timer_cpu handover happens after the\ncpu is dead (via the CPU_DEAD notification), we\u0027re left without ticks,\njiffies are frozen and any task relying on timers (msleep, ...) is stuck.\nThat\u0027s particularly the case for the cpu looping in __cpu_die() waiting\nfor the dying cpu to be dead.\n\nThis patch addresses this by having the tick_do_timer_cpu handover happen\nearlier during the CPU_DYING notification. For this, a new clockevent\nnotification type is introduced (CLOCK_EVT_NOTIFY_CPU_DYING) which is triggered\nin hrtimer_cpu_notify().\n\nSigned-off-by: Sebastien Dugue \u003csebastien.dugue@bull.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cea153697ec788a3c3d61c2402a3f1188b5b06c7",
      "old_mode": 33188,
      "old_path": "include/linux/clockchips.h",
      "new_id": "3a1dbba4d3ae2da500e710387d130cd8ad5dd4c2",
      "new_mode": 33188,
      "new_path": "include/linux/clockchips.h"
    },
    {
      "type": "modify",
      "old_id": "8fea312ca36c7c5d78763ede4d3c521e7394bf9d",
      "old_mode": 33188,
      "old_path": "kernel/hrtimer.c",
      "new_id": "647a40e2fea1b7b4deb9cdd1f3061bde7455034d",
      "new_mode": 33188,
      "new_path": "kernel/hrtimer.c"
    },
    {
      "type": "modify",
      "old_id": "63e05d423a09903907558d7d2aba661f5b426db6",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-common.c",
      "new_id": "21a5ca849514b40b689c5b34e2c9caaf9cbf051b",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-common.c"
    }
  ]
}
