)]}'
{
  "commit": "e74f4c4564455c91a3b4075bb1721993c2a95dda",
  "tree": "213f9df0974c6e1e729de207b2c6dd942a39ba8c",
  "parents": [
    "d0ec774cb2599c858be9d923bb873cf6697520d8"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Tue Oct 06 21:48:17 2009 -0700"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Oct 07 08:11:20 2009 +0200"
  },
  "message": "rcu: Make hot-unplugged CPU relinquish its own RCU callbacks\n\nThe current interaction between RCU and CPU hotplug requires that\nRCU block in CPU notifiers waiting for callbacks to drain.\n\nThis can be greatly simplified by having each CPU relinquish its\nown callbacks, and for both _rcu_barrier() and CPU_DEAD notifiers\nto adopt all callbacks that were previously relinquished.\n\nThis change also eliminates the possibility of certain types of\nhangs due to the previous practice of waiting for callbacks to be\ninvoked from within CPU notifiers.  If you don\u0027t every wait, you\ncannot hang.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1254890898456-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0108570a192c79fd00633179449252d46922960a",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.c",
      "new_id": "d8d98655c9e7b2bc85874866982eb22a3e3aaee5",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.c"
    },
    {
      "type": "modify",
      "old_id": "676eecd371d947fbc0881a6f6f7e4c2f794487ea",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.h",
      "new_id": "b40ac5706040c22a24436cb78d135d96e2605153",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.h"
    },
    {
      "type": "modify",
      "old_id": "57200fe96d0aa6509a0fcf0144a3b13c3ae1660d",
      "old_mode": 33188,
      "old_path": "kernel/rcutree_plugin.h",
      "new_id": "c0cb783aa16af58abb1131449183508bbd9a3402",
      "new_mode": 33188,
      "new_path": "kernel/rcutree_plugin.h"
    },
    {
      "type": "modify",
      "old_id": "f09af28b826242f175a2d6d8a7a4218090f185e1",
      "old_mode": 33188,
      "old_path": "kernel/rcutree_trace.c",
      "new_id": "4b31c779e62e6bff126c270c1e8dae3578fd6932",
      "new_mode": 33188,
      "new_path": "kernel/rcutree_trace.c"
    }
  ]
}
