)]}'
{
  "commit": "a26ac2455ffcf3be5c6ef92bc6df7182700f2114",
  "tree": "601697c7c3fd152a1b3f29f43d3a028fc8fefd5f",
  "parents": [
    "12f5f524cafef3ab689929b118f2dfb8bf2be321"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paul.mckenney@linaro.org",
    "time": "Wed Jan 12 14:10:23 2011 -0800"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Thu May 05 23:16:54 2011 -0700"
  },
  "message": "rcu: move TREE_RCU from softirq to kthread\n\nIf RCU priority boosting is to be meaningful, callback invocation must\nbe boosted in addition to preempted RCU readers.  Otherwise, in presence\nof CPU real-time threads, the grace period ends, but the callbacks don\u0027t\nget invoked.  If the callbacks don\u0027t get invoked, the associated memory\ndoesn\u0027t get freed, so the system is still subject to OOM.\n\nBut it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit\nmoves the callback invocations to a kthread, which can be boosted easily.\n\nAlso add comments and properly synchronized all accesses to\nrcu_cpu_kthread_task, as suggested by Lai Jiangshan.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b0b814d75ca138090395820794d5a2749d0052f4",
      "old_mode": 33188,
      "old_path": "Documentation/filesystems/proc.txt",
      "new_id": "60740e8ecb3779e7bb314dcde47d88f54183788b",
      "new_mode": 33188,
      "new_path": "Documentation/filesystems/proc.txt"
    },
    {
      "type": "modify",
      "old_id": "bea0ac750712855bcfdd94289f4514ca57d4efb6",
      "old_mode": 33188,
      "old_path": "include/linux/interrupt.h",
      "new_id": "6c12989839d9093f970b9f90d8dffe44dec6f7a2",
      "new_mode": 33188,
      "new_path": "include/linux/interrupt.h"
    },
    {
      "type": "modify",
      "old_id": "1c09820df58564f8d0430d996998edc6f8d893c0",
      "old_mode": 33188,
      "old_path": "include/trace/events/irq.h",
      "new_id": "ae045ca7d356033d49c8a9650a618c206503f68c",
      "new_mode": 33188,
      "new_path": "include/trace/events/irq.h"
    },
    {
      "type": "modify",
      "old_id": "0ac1cc03f9353212d34aa8828fa49c11da941f46",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.c",
      "new_id": "18e33313873ee48aaa951c1b127dea4d196b1278",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.c"
    },
    {
      "type": "modify",
      "old_id": "5a439c180e69efe0b2fc7a274e3d918eb4f991d2",
      "old_mode": 33188,
      "old_path": "kernel/rcutree.h",
      "new_id": "c0213802d164796af4a46a955e349453b057a60c",
      "new_mode": 33188,
      "new_path": "kernel/rcutree.h"
    },
    {
      "type": "modify",
      "old_id": "774f010a461974a6ad5bdfcf8f189c8951e89082",
      "old_mode": 33188,
      "old_path": "kernel/rcutree_plugin.h",
      "new_id": "b9bd69a5a4fed6c2363ccdcfe2acd7db57f98787",
      "new_mode": 33188,
      "new_path": "kernel/rcutree_plugin.h"
    },
    {
      "type": "modify",
      "old_id": "174f976c2874a19f1d06fee972468e2c730bc7f9",
      "old_mode": 33188,
      "old_path": "kernel/softirq.c",
      "new_id": "13960170cad4d91f0ec00dba8e0132d64e7c68fd",
      "new_mode": 33188,
      "new_path": "kernel/softirq.c"
    },
    {
      "type": "modify",
      "old_id": "0a7ed5b5e281c88b321de87ced66a3d29ebb003d",
      "old_mode": 33188,
      "old_path": "tools/perf/util/trace-event-parse.c",
      "new_id": "1e88485c16a04b755e68bb14510c3fd5cf368769",
      "new_mode": 33188,
      "new_path": "tools/perf/util/trace-event-parse.c"
    }
  ]
}
