)]}'
{
  "log": [
    {
      "commit": "68cd235dda15c5eb223c86803e9068d2cfbf64b5",
      "tree": "d6adf414406b502393e93df740802cf46a986724",
      "parents": [
        "8c59c45bc55f052d7d767d93c88a6f1666dcdecf"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jul 25 14:54:03 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jul 25 15:05:56 2011 -0700"
      },
      "message": "PM: Fix printing IRQ names for pending wakeup IRQs\n\nThe IRQ name has moved to the struct irqaction list (so print\nfirst action\u0027s name).\n\nChange-Id: I65a627457f9abaf7c1dcc32d8814243ba2ff4717\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "fec502d9a18bbe8045c67bd4f9d3a1ade4e78555",
      "tree": "281dcb3e41e55462634ca107329bb3415d989a8f",
      "parents": [
        "d74348cebf7b883a872c5f0cfdf815855e08db5a"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Jul 21 14:07:45 2011 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Jul 21 14:09:16 2011 -0700"
      },
      "message": "earlysuspend: add verbose debug flag\n\nwhen enabled, prints out the function of each handler as they are called\n\nChange-Id: I5ed251867e0e3aa3cd05f030ff3579808cedd0c2\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "07b02fbd98dcc988eb3379b916832473bd8bdfc1",
      "tree": "6bcc897fba2b8cde9b22e863108f34fdc6dade13",
      "parents": [
        "9549cff379d6ca4640dd71c3e8637d4f0248d8eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 19 12:33:45 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jul 20 15:40:48 2011 -0700"
      },
      "message": "power: Add option to log time spent in suspend\n\nPrints the time spent in suspend in the kernel log, and\nkeeps statistics on the time spent in suspend in\n/sys/kernel/debug/suspend_time\n\nChange-Id: Ia6b9ebe4baa0f7f5cd211c6a4f7e813aefd3fa1d\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "9a736a21691d48cc6e956ce8d49849823fd6af40",
      "tree": "e04b1bfcd4b39cb71c9213c0e0518bccd3a1d8e7",
      "parents": [
        "ce4022b8d1c9e1b380dc5177f955bfe5f1327e3e"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jun 15 17:21:57 2011 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri Jul 15 15:26:45 2011 -0700"
      },
      "message": "Move x86_64 idle notifiers to generic\n\nMove the x86_64 idle notifiers originally by Andi Kleen and Venkatesh\nPallipadi to generic.\n\nChange-Id: Idf29cda15be151f494ff245933c12462643388d5\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "bb5b603036b99d80527b222dc98eba4ee8341020",
      "tree": "dcce59f7dd49c7f3f40ccaa1973dae94381f8fff",
      "parents": [
        "497f5982a7eae716267213a8fdc3ea4c6ac09e5e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 19:53:24 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 22:58:35 2011 -0700"
      },
      "message": "cgroup: Add generic cgroup subsystem permission checks\n\nRather than using explicit euid \u003d\u003d 0 checks when trying to move\ntasks into a cgroup via CFS, move permission checks into each\nspecific cgroup subsystem. If a subsystem does not specify a\n\u0027allow_attach\u0027 handler, then we fall back to doing our checks\nthe old way.\n\nUse the \u0027allow_attach\u0027 handler for the \u0027cpu\u0027 cgroup to allow\nnon-root processes to add arbitrary processes to a \u0027cpu\u0027 cgroup\nif it has the CAP_SYS_NICE capability set.\n\nThis version of the patch adds a \u0027allow_attach\u0027 handler instead\nof reusing the \u0027can_attach\u0027 handler.  If the \u0027can_attach\u0027 handler\nis reused, a new cgroup that implements \u0027can_attach\u0027 but not\nthe permission checks could end up with no permission checks\nat all.\n\nChange-Id: Icfa950aa9321d1ceba362061d32dc7dfa2c64f0c\nOriginal-Author: San Mehat \u003csan@google.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "497f5982a7eae716267213a8fdc3ea4c6ac09e5e",
      "tree": "98b363939e3c4a302d4194f86f3f06b0f5a54bdf",
      "parents": [
        "75c56a81116e51c5cf15c0641906d0745188cd16"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:12:45 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:45:13 2011 -0700"
      },
      "message": "Revert \"cgroup: Add generic cgroup subsystem permission checks.\"\n\nThis reverts commit 1d38bc7d0523af2233b4280e2aeab34c6a076665.\n\nChange-Id: I2c5066b696cbdd5ca117ed74718bcb7e70e878e7\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "75c56a81116e51c5cf15c0641906d0745188cd16",
      "tree": "c1d8e7def5bbb099a39d5e9ccfb13508ea5ca46a",
      "parents": [
        "b4294d618e8a19bb47826e51ae52b9fb2fe05f80",
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:10:37 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 12 20:10:37 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0-rc7\u0027 into android-3.0\n"
    },
    {
      "commit": "0226f8a76da6bc97c9bb4af3fd2f6eeb03c5b0b0",
      "tree": "103470d3c4a2865d1cafc4d4527f97d62660fc5d",
      "parents": [
        "814cdea670616252e4cdf297a07b02ce59698bf1"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Jul 07 17:27:59 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Jul 08 14:15:44 2011 -0700"
      },
      "message": "plist: Remove the need to supply locks to plist heads\n\nThis was legacy code brought over from the RT tree and\nis no longer necessary.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Daniel Walker \u003cdwalker@codeaurora.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/1310084879-10351-2-git-send-email-dima@android.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31cb852809c86541c817538c98003678546dfa58",
      "tree": "324808c5a9def43a7f15c0fda97f58ee01f03c42",
      "parents": [
        "2a9d6df425d7b46b23cbc8673b2dfefa4678abdb",
        "4d4cf23cdde2f8f9324f5684a7f349e182039529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Fix free_unnecessary_pages()\n"
    },
    {
      "commit": "27a3b735b70651f28db03e5f92775a40661ba7a6",
      "tree": "9f300b93aa34381aa1d3121e9d53e8c8e1623a24",
      "parents": [
        "85746e429f8e5dc8c5c0beadc0f099cb1feab93e",
        "161b6ae0e067e421b20bb35caf66bdb405c929ac",
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
        "e4c2fb0d5776b58049d2556b456144a4db3fe5a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  debugobjects: Fix boot crash when kmemleak and debugobjects enabled\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  jump_label: Fix jump_label update for modules\n  oprofile, x86: Fix race in nmi handler while starting counters\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Disable (revert) SCHED_LOAD_SCALE increase\n  sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n"
    },
    {
      "commit": "4d4cf23cdde2f8f9324f5684a7f349e182039529",
      "tree": "f84a26d15f1112cc7c452d1fdac3bd70857774e0",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "message": "PM / Hibernate: Fix free_unnecessary_pages()\n\nThere is a bug in free_unnecessary_pages() that causes it to\nattempt to free too many pages in some cases, which triggers the\nBUG_ON() in memory_bm_clear_bit() for copy_bm.  Namely, if\ncount_data_pages() is initially greater than alloc_normal, we get\nto_free_normal equal to 0 and \"save\" greater from 0.  In that case,\nif the sum of \"save\" and count_highmem_pages() is greater than\nalloc_highmem, we subtract a positive number from to_free_normal.\nHence, since to_free_normal was 0 before the subtraction and is\nan unsigned int, the result is converted to a huge positive number\nthat is used as the number of pages to free.\n\nFix this bug by checking if to_free_normal is actually greater\nthan or equal to the number we\u0027re going to subtract from it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "23c570a67448e803408191f529ed9a83fd34a25a",
      "tree": "8705e1ad863d745c42d8eb95a8c3f53f26fd0e38",
      "parents": [
        "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Tue Jul 05 23:44:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:54:08 2011 -0700"
      },
      "message": "resource: ability to resize an allocated resource\n\nProvides the ability to resize a resource that is already allocated.\nThis functionality is put in place to support reallocation needs of\npci resources.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd62287e364c0d15d517c6ced4e4808b54711475",
      "tree": "12544d4a0b84f378691be2a1d3d48a46f42595fc",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Jun 04 15:03:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:25:03 2011 +0200"
      },
      "message": "sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n\nCommit c8b28116 (\"sched: Increase SCHED_LOAD_SCALE resolution\")\nintended to have no user-visible effect, but allows setting\ncpu.shares to \u003c MIN_SHARES, which the user then sees.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nLink: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e55d4fa96762fd767a3b6d842c904e994db6bb2e",
      "tree": "c74157e01cb128cb97f106a50cfadc4c8b872c41",
      "parents": [
        "e32c14667e4fe9f16ac9b918d15d29abd2315a55",
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 29 13:54:42 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 29 13:54:42 2011 -0700"
      },
      "message": "Merge commit \u0027v3.0-rc5\u0027 into android-3.0\n"
    },
    {
      "commit": "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
      "tree": "e59debeb1aea1650fd490b0264f66b4f70a26aca",
      "parents": [
        "debf1d4948bccf58fa172acb1a7306792d77705d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 21 10:35:55 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 29 09:59:17 2011 -0400"
      },
      "message": "jump_label: Fix jump_label update for modules\n\nThe jump labels entries for modules do not stop at __stop__jump_table,\nbut after mod-\u003ejump_entries + mod_num_jump_entries.\n\nBy checking the wrong end point, module trace events never get enabled.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nTested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4E00038B.2060404@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c4caea9d697043cc5a458b96411b86d7f6babd",
      "tree": "cf4de2553fbfcafc41eb4f84bc9ee1eb69adf725",
      "parents": [
        "08142579b6ca35883c1ed066a2681de6f6917062"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Jun 27 16:18:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "taskstats: don\u0027t allow duplicate entries in listener mode\n\nCurrently a single process may register exit handlers unlimited times.\nIt may lead to a bloated listeners chain and very slow process\nterminations.\n\nEg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of\nkernel memory is stolen for the handlers chain and \"time id\" shows 2-7\nseconds instead of normal 0.003.  It makes it possible to exhaust all\nkernel memory and to eat much of CPU time by triggerring numerous exits\non a single CPU.\n\nThe patch limits the number of times a single process may register\nitself on a single CPU to one.\n\nOne little issue is kept unfixed - as taskstats_exit() is called before\nexit_files() in do_exit(), the orphaned listener entry (if it was not\nexplicitly deregistered) is kept until the next someone\u0027s exit() and\nimplicit deregistration in send_cpu_listeners().  So, if a process\nregistered itself as a listener exits and the next spawned process gets\nthe same pid, it would inherit taskstats attributes.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8abf55883431a91d4877933240c8419b7fc17274",
      "tree": "c7de035cf068f3edf5053a30d912c2024bac88d8",
      "parents": [
        "4d362ad280fca0f2e098de607534f72f2c243e12",
        "b1eb085c064d0843826d7402db7fc5f3032e01fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "message": "Merge branch \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtc: vt8500: Fix build error \u0026 cleanup rtc_class_ops-\u003eupdate_irq_enable()\n  alarmtimers: Return -ENOTSUPP if no RTC device is present\n  alarmtimers: Handle late rtc module loading\n"
    },
    {
      "commit": "1c6b39ad3f01514fd8dd84b5b412bafb75c19388",
      "tree": "bd31cf5d3e67acc9ef23c97ddd92c961b73f40c7",
      "parents": [
        "c008ba58af24dc5d0d8e9fe6e59d876910254761"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:47:37 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:32:28 2011 -0700"
      },
      "message": "alarmtimers: Return -ENOTSUPP if no RTC device is present\n\nToralf Förster and Richard Weinberger noted that if there is\nno RTC device, the alarm timers core prints out an annoying\n\"ALARM timers will not wake from suspend\" message.\n\nThis warning has been removed in a previous patch, however\nthe issue still remains:  The original idea was to support\nalarm timers even if there was no rtc device, as long as the\nsystem didn\u0027t go into suspend.\n\nHowever, after further consideration, communicating to the application\nthat alarmtimers are not fully functional seems like the better\nsolution.\n\nSo this patch makes it so we return -ENOTSUPP to any posix _ALARM\nclockid calls if there is no backing RTC device on the system.\n\nFurther this changes the behavior where when there is no rtc device\nwe will check for one on clock_getres, clock_gettime, timer_create,\nand timer_nsleep instead of on suspend.\n\nCC: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: Richard Weinberger \u003crichard@nod.at\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nReported by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c008ba58af24dc5d0d8e9fe6e59d876910254761",
      "tree": "0e718ce49992b6a7dfde619cd6ebf05afe06ae12",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:27:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 15:38:33 2011 -0700"
      },
      "message": "alarmtimers: Handle late rtc module loading\n\nThe alarmtimers code currently picks a rtc device to use at\nlate init time. However, if your rtc driver is loaded as a module,\nit may be registered after the alarmtimers late init code, leaving\nthe alarmtimers nonfunctional.\n\nThis patch moves the the rtcdevice selection to when we actually try\nto use it, allowing us to make use of rtc modules that may have been\nloaded at any point since bootup.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8440f4b19494467883f8541b7aa28c7bbf6ac92b",
      "tree": "3682e034553d8b9ac676e17b144fe5b15cbb0174",
      "parents": [
        "f76b168b6f117a49d36307053e1acbe30580ea5b"
      ],
      "author": {
        "name": "Michal Kubecek",
        "email": "mkubecek@suse.cz",
        "time": "Sat Jun 18 20:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:06 2011 +0200"
      },
      "message": "PM: Free memory bitmaps if opening /dev/snapshot fails\n\nWhen opening /dev/snapshot device, snapshot_open() creates memory\nbitmaps which are freed in snapshot_release(). But if any of the\ncallbacks called by pm_notifier_call_chain() returns NOTIFY_BAD, open()\nfails, snapshot_release() is never called and bitmaps are not freed.\nNext attempt to open /dev/snapshot then triggers BUG_ON() check in\ncreate_basic_memory_bitmaps(). This happens e.g. when vmwatchdog module\nis active on s390x.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8816ead9d8e7c2745788e0684797e1912b504f33",
      "tree": "2a619a821024d31be2ce6ff422f287792379fe5b",
      "parents": [
        "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
        "203db2952bc87f5d610c9ad53a7d02b85897721f",
        "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
        "b5199515c25cca622495eb9c6a8a1d275e775088",
        "c1f5c54b57341e872a9d375dccef7257f86033ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "message": "Merge branches \u0027perf-urgent-for-linus\u0027, \u0027sched-urgent-for-linus\u0027, \u0027timers-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tools/perf: Fix static build of perf tool\n  tracing: Fix regression in printk_formats file\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Make watchdog robust vs. interruption\n  timerfd: Fix wakeup of processes when timer is cancelled on clock change\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, MAINTAINERS: Add x86 MCE people\n  x86, efi: Do not reserve boot services regions within reserved areas\n"
    },
    {
      "commit": "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
      "tree": "ff4eb7e809e547bc3c0680dfd51793a8f57b2063",
      "parents": [
        "de505e709ffb09a7382ca8e0d8c7dbb171ba5830",
        "f8b7fc6b514f34a51875dd48dff70d4d17a54f38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Move RCU_BOOST #ifdefs to header file\n  rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n  rcu: Use softirq to address performance regression\n  rcu: Simplify curing of load woes\n"
    },
    {
      "commit": "879669961b11e7f40b518784863a259f735a72bf",
      "tree": "9bff5392e365caf656c9dd9be38f7471c182278c",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 17 11:25:59 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 09:40:48 2011 -0700"
      },
      "message": "KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring\n\n____call_usermodehelper() now erases any credentials set by the\nsubprocess_inf::init() function.  The problem is that commit\n17f60a7da150 (\"capabilites: allow the application of capability limits\nto usermode helpers\") creates and commits new credentials with\nprepare_kernel_cred() after the call to the init() function.  This wipes\nall keyrings after umh_keys_init() is called.\n\nThe best way to deal with this is to put the init() call just prior to\nthe commit_creds() call, and pass the cred pointer to init().  That\nmeans that umh_keys_init() and suchlike can modify the credentials\n_before_ they are published and potentially in use by the rest of the\nsystem.\n\nThis prevents request_key() from working as it is prevented from passing\nthe session keyring it set up with the authorisation token to\n/sbin/request-key, and so the latter can\u0027t assume the authority to\ninstantiate the key.  This causes the in-kernel DNS resolver to fail\nwith ENOKEY unconditionally.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
      "tree": "0260df1b5b5b1601f56229c7dde54594d2dfebcb",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "Takao Indoh",
        "email": "indou.takao@jp.fujitsu.com",
        "time": "Tue Mar 29 12:35:04 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 17 10:17:12 2011 +0200"
      },
      "message": "generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\nThere is a problem that kdump(2nd kernel) sometimes hangs up due\nto a pending IPI from 1st kernel. Kernel panic occurs because IPI\ncomes before call_single_queue is initialized.\n\nTo fix the crash, rename init_call_single_data() to call_function_init()\nand call it in start_kernel() so that call_single_queue can be\ninitialized before enabling interrupts.\n\nThe details of the crash are:\n\n (1) 2nd kernel boots up\n\n (2) A pending IPI from 1st kernel comes when irqs are first enabled\n     in start_kernel().\n\n (3) Kernel tries to handle the interrupt, but call_single_queue\n     is not initialized yet at this point. As a result, in the\n     generic_smp_call_function_single_interrupt(), NULL pointer\n     dereference occurs when list_replace_init() tries to access\n     \u0026q-\u003elist.next.\n\nTherefore this patch changes the name of init_call_single_data()\nto call_function_init() and calls it before local_irq_enable()\nin start_kernel().\n\nSigned-off-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: kexec@lists.infradead.org\nLink: http://lkml.kernel.org/r/D6CBEE2F420741indou.takao@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f8b7fc6b514f34a51875dd48dff70d4d17a54f38",
      "tree": "dc6583851e3536516761b0fd9b07f5a3a1743ebb",
      "parents": [
        "a46e0899eec7a3069bcadd45dfba7bf67c6ed016"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 16 08:26:32 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 16 16:12:05 2011 -0700"
      },
      "message": "rcu: Move RCU_BOOST #ifdefs to header file\n\nThe commit \"use softirq instead of kthreads except when RCU_BOOST\u003dy\"\njust applied #ifdef in place.  This commit is a cleanup that moves\nthe newly #ifdef\u0027ed code to the header file kernel/rcutree_plugin.h.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b5199515c25cca622495eb9c6a8a1d275e775088",
      "tree": "250fc4f3d02c58eddf770e9d040edeafd0012e76",
      "parents": [
        "1123d93963cbd2546449d4d9f0c568e323cb0ac6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 16:22:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 19:30:53 2011 +0200"
      },
      "message": "clocksource: Make watchdog robust vs. interruption\n\nThe clocksource watchdog code is interruptible and it has been\nobserved that this can trigger false positives which disable the TSC.\n\nThe reason is that an interrupt storm or a long running interrupt\nhandler between the read of the watchdog source and the read of the\nTSC brings the two far enough apart that the delta is larger than the\nunstable treshold. Move both reads into a short interrupt disabled\nregion to avoid that.\n\nReported-and-tested-by: Vernon Mauery \u003cvernux@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a46e0899eec7a3069bcadd45dfba7bf67c6ed016",
      "tree": "78158b4056fe1365d5086f66769abdc3ef2643c3",
      "parents": [
        "09223371deac67d08ca0b70bd18787920284c967"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 15:47:09 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 23:07:21 2011 -0700"
      },
      "message": "rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n\nThis patch #ifdefs RCU kthreads out of the kernel unless RCU_BOOST\u003dy,\nthus eliminating context-switch overhead if RCU priority boosting has\nnot been configured.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1b6ae8ed01736dae19a33e74ea4e8dd88f891b5",
      "tree": "62019061cacdc90ba1454a8f9d227acbd7a64cde",
      "parents": [
        "21c5977a836e399fc710ff2c5367845ed5c2527f",
        "0da938c44921cfb690283d3b0c9c48a10375db2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Check if lowest_mask is initialized in find_lowest_rq()\n  sched: Fix need_resched() when checking peempt\n"
    },
    {
      "commit": "d2c32258798f813dc2be6cbc32f78aa5ac5cb205",
      "tree": "e44c0d0feeaa52fe7d7b02ed343f7f5b671c372a",
      "parents": [
        "b0461a44a2f1fc052fc949ae19c3a5d684627b09"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Wed Jun 15 15:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "gcov: disable CONFIG_CONSTRUCTORS when not needed by CONFIG_GCOV_KERNEL\n\nCONFIG_CONSTRUCTORS controls support for running constructor functions at\nkernel init time.  According to commit b99b87f70c7785ab (\"kernel:\nconstructor support\"), gcov (CONFIG_GCOV_KERNEL) needs this.  However,\nCONFIG_CONSTRUCTORS currently defaults to y, with no option to disable it,\nand CONFIG_GCOV_KERNEL depends on it.  Instead, default it to n and have\nCONFIG_GCOV_KERNEL select it, so that the normal case of\nCONFIG_GCOV_KERNEL\u003dn will result in CONFIG_CONSTRUCTORS\u003dn.\n\nObserved in the short list of \u003dy values in a minimal kernel configuration.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "733eda7ac316cd4e550fa096e4ed42356dc546e7",
      "tree": "6522f47608fb97314a7b615b1cb1d6e2c58952c8",
      "parents": [
        "37573e8c718277103f61f03741bdc5606d31b07e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jun 15 15:08:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "memcg: clear mm-\u003eowner when last possible owner leaves\n\nThe following crash was reported:\n\n\u003e Call Trace:\n\u003e [\u003cffffffff81139792\u003e] mem_cgroup_from_task+0x15/0x17\n\u003e [\u003cffffffff8113a75a\u003e] __mem_cgroup_try_charge+0x148/0x4b4\n\u003e [\u003cffffffff810493f3\u003e] ? need_resched+0x23/0x2d\n\u003e [\u003cffffffff814cbf43\u003e] ? preempt_schedule+0x46/0x4f\n\u003e [\u003cffffffff8113afe8\u003e] mem_cgroup_charge_common+0x9a/0xce\n\u003e [\u003cffffffff8113b6d1\u003e] mem_cgroup_newpage_charge+0x5d/0x5f\n\u003e [\u003cffffffff81134024\u003e] khugepaged+0x5da/0xfaf\n\u003e [\u003cffffffff81078ea0\u003e] ? __init_waitqueue_head+0x4b/0x4b\n\u003e [\u003cffffffff81133a4a\u003e] ? add_mm_counter.constprop.5+0x13/0x13\n\u003e [\u003cffffffff81078625\u003e] kthread+0xa8/0xb0\n\u003e [\u003cffffffff814d13e8\u003e] ? sub_preempt_count+0xa1/0xb4\n\u003e [\u003cffffffff814d5664\u003e] kernel_thread_helper+0x4/0x10\n\u003e [\u003cffffffff814ce858\u003e] ? retint_restore_args+0x13/0x13\n\u003e [\u003cffffffff8107857d\u003e] ? __init_kthread_worker+0x5a/0x5a\n\nWhat happens is that khugepaged tries to charge a huge page against an mm\nwhose last possible owner has already exited, and the memory controller\ncrashes when the stale mm-\u003eowner is used to look up the cgroup to charge.\n\nmm-\u003eowner has never been set to NULL with the last owner going away, but\nnobody cared until khugepaged came along.\n\nEven then it wasn\u0027t a problem because the final mmput() on an mm was\nforced to acquire and release mmap_sem in write-mode, preventing an\nexiting owner to go away while the mmap_sem was held, and until \"692e0b3\nmm: thp: optimize memcg charge in khugepaged\", the memory cgroup charge\nwas protected by mmap_sem in read-mode.\n\nInstead of going back to relying on the mmap_sem to enforce lifetime of a\ntask, this patch ensures that mm-\u003eowner is properly set to NULL when the\nlast possible owner is exiting, which the memory controller can handle\njust fine.\n\n[akpm@linux-foundation.org: tweak comments]\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0da938c44921cfb690283d3b0c9c48a10375db2c",
      "tree": "7e9374a3ed16a4118f2f5d600067c471aaa80c70",
      "parents": [
        "8dd0de8be31b4b966d17750a0b10df2f575c91ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 18:36:25 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 11:44:48 2011 +0200"
      },
      "message": "sched: Check if lowest_mask is initialized in find_lowest_rq()\n\nOn system boot up, the lowest_mask is initialized with an\nearly_initcall(). But RT tasks may wake up on other\nearly_initcall() callers before the lowest_mask is initialized,\ncausing a system crash.\n\nCommit \"d72bce0e67 rcu: Cure load woes\" was the first commit\nto wake up RT tasks in early init. Before this commit this bug\nshould not happen.\n\nReported-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.824872966@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dd0de8be31b4b966d17750a0b10df2f575c91ac",
      "tree": "991b9dddf6ef092f94bba5af7609c13c8d7b113c",
      "parents": [
        "2c53b436a30867eb6b47dd7bab23ba638d1fb0d2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jun 14 18:36:24 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 09:50:32 2011 +0200"
      },
      "message": "sched: Fix need_resched() when checking peempt\n\nThe RT preempt check tests the wrong task if NEED_RESCHED is\nset. It currently checks the local CPU task. It is supposed to\ncheck the task that is running on the runqueue we are about to\nwake another task on.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.450239027@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ada9c93312f7ec49514c68c211595ce2601cebae",
      "tree": "d20d678c04daf68705f3006e3bc2a00746f3eb18",
      "parents": [
        "60b8b1de0dd2bf246f0e074d287bb3f0bc42a755"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 14 15:50:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 14 19:12:17 2011 -0700"
      },
      "message": "signal.c: fix kernel-doc notation\n\nFix kernel-doc warnings in signal.c:\n\n  Warning(kernel/signal.c:2374): No description found for parameter \u0027nset\u0027\n  Warning(kernel/signal.c:2374): Excess function parameter \u0027set\u0027 description in \u0027sys_rt_sigprocmask\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09223371deac67d08ca0b70bd18787920284c967",
      "tree": "0ad0354a93ac209c8cfd2b79d03d0462aa3c5c58",
      "parents": [
        "9a432736904d386cda28b987b38ba14dae960ecc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 14 13:26:25 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:39 2011 -0700"
      },
      "message": "rcu: Use softirq to address performance regression\n\nCommit a26ac2455ffcf3(rcu: move TREE_RCU from softirq to kthread)\nintroduced performance regression. In an AIM7 test, this commit degraded\nperformance by about 40%.\n\nThe commit runs rcu callbacks in a kthread instead of softirq. We observed\nhigh rate of context switch which is caused by this. Out test system has\n64 CPUs and HZ is 1000, so we saw more than 64k context switch per second\nwhich is caused by RCU\u0027s per-CPU kthread.  A trace showed that most of\nthe time the RCU per-CPU kthread doesn\u0027t actually handle any callbacks,\nbut instead just does a very small amount of work handling grace periods.\nThis means that RCU\u0027s per-CPU kthreads are making the scheduler do quite\na bit of work in order to allow a very small amount of RCU-related\nprocessing to be done.\n\nAlex Shi\u0027s analysis determined that this slowdown is due to lock\ncontention within the scheduler.  Unfortunately, as Peter Zijlstra points\nout, the scheduler\u0027s real-time semantics require global action, which\nmeans that this contention is inherent in real-time scheduling.  (Yes,\nperhaps someone will come up with a workaround -- otherwise, -rt is not\ngoing to do well on large SMP systems -- but this patch will work around\nthis issue in the meantime.  And \"the meantime\" might well be forever.)\n\nThis patch therefore re-introduces softirq processing to RCU, but only\nfor core RCU work.  RCU callbacks are still executed in kthread context,\nso that only a small amount of RCU work runs in softirq context in the\ncommon case.  This should minimize ksoftirqd execution, allowing us to\nskip boosting of ksoftirqd for CONFIG_RCU_BOOST\u003dy kernels.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nTested-by: \"Alex,Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a432736904d386cda28b987b38ba14dae960ecc",
      "tree": "20294203f9c6132d79737e9ab54c746546afe7d4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 30 20:38:55 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:15 2011 -0700"
      },
      "message": "rcu: Simplify curing of load woes\n\nMake the functions creating the kthreads wake them up.  Leverage the\nfact that the per-node and boost kthreads can run anywhere, thus\ndispensing with the need to wake them up once the incoming CPU has\ngone fully online.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\n"
    },
    {
      "commit": "abbb445f65bbb139202fde5a66f9a249977058c9",
      "tree": "07f1a792c9c1fba2c291b64887f9cb08b661e811",
      "parents": [
        "4700c54b66189fe2acaa49df63e56a1615d99d32"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 11:36:39 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 11:37:53 2011 -0700"
      },
      "message": "HACK: time: Disable alarmtimer\n\nkernel/time/alarmtimer.c conflicts with drivers/rtc/alarm.c,\ndisable it for now.\n\nChange-Id: I6cdb3b885828d45836a54971adf16143039b0a0e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "36cf5520be8537fa554761194f2fd8cfa2527440",
      "tree": "3a9241c9e08b9043ac7217fc3da565746f0ae299",
      "parents": [
        "37b0597b0ff75c625d486c4b9e39ee498fe71c37"
      ],
      "author": {
        "name": "mhban",
        "email": "mhban@samsung.com",
        "time": "Wed Jun 08 09:13:15 2011 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:10:07 2011 -0700"
      },
      "message": "printk: do not handle non-sleepable notification in console_cpu_notify\n\n- CPU_DYING should not be handled in sleepable context\n\nSigned-off-by: Minho Ban \u003cmhban@samsung.com\u003e\n"
    },
    {
      "commit": "28e23cf73c26d2bb13451804e328797a55f471e4",
      "tree": "06b4e77dabde6ac914133a48303ddcfaf47fcdb6",
      "parents": [
        "e67dd1611d5330ba9d41ba9ccdc78d6ff2963398"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 30 12:37:49 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:53 2011 -0700"
      },
      "message": "power: wakelock: use get_xtime_and_monotonic_and_sleep_offset in get_expired_time\n\nChange-Id: I6ebe6b954b2ff328d46898d683650dafb9c4fe74\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "1613ecd0e1282b13559c45a7406ef46b8bd367ef",
      "tree": "9f7d52314a970ecb0c18ef93c0066b53f69f0fef",
      "parents": [
        "f780a1f78fe3f4a4ce27bf862cb6cf1fb14950f2"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Mon Jan 24 14:36:39 2011 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:50 2011 -0700"
      },
      "message": "Print pending wakeup IRQ preventing suspend to dmesg\n\nChange-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "dbc38c633f4b7abe97c53036df55fbb2040188bc",
      "tree": "57123eb96e4b840a3efd1fc4c51073f7229dd23d",
      "parents": [
        "6d51e762b1b58226ddaf922673970162e71c9ed9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 23 21:37:04 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:40 2011 -0700"
      },
      "message": "cgroup: Remove call to synchronize_rcu in cgroup_attach_task\n\nsynchronize_rcu can be very expensive, averaging 100 ms in\nsome cases.  In cgroup_attach_task, it is used to prevent\na task-\u003ecgroups pointer dereferenced in an RCU read side\ncritical section from being invalidated, by delaying the\ncall to put_css_set until after an RCU grace period.\n\nTo avoid the call to synchronize_rcu, make the put_css_set\ncall rcu-safe by moving the deletion of the css_set links\ninto free_css_set_work, scheduled by the rcu callback\nfree_css_set_rcu.\n\nThe decrement of the cgroup refcount is no longer\nsynchronous with the call to put_css_set, which can result\nin the cgroup refcount staying positive after the last call\nto cgroup_attach_task returns.  To allow the cgroup to be\ndeleted with cgroup_rmdir synchronously after\ncgroup_attach_task, have rmdir check the refcount of all\nassociated css_sets.  If cgroup_rmdir is called on a cgroup\nfor which the css_sets all have refcount zero but the\ncgroup refcount is nonzero, reuse the rmdir waitqueue to\nblock the rmdir until free_css_set_work is called.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "6d51e762b1b58226ddaf922673970162e71c9ed9",
      "tree": "25231ef1d676fab8edfeb091daeb6354921c42f8",
      "parents": [
        "a0f07aae54e87a9fad6d19c0e57398f54d858f06"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 23 21:37:03 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:40 2011 -0700"
      },
      "message": "cgroup: Set CGRP_RELEASABLE when adding to a cgroup\n\nChanges the meaning of CGRP_RELEASABLE to be set on any cgroup\nthat has ever had a task or cgroup in it, or had css_get called\non it.  The bit is set in cgroup_attach_task, cgroup_create,\nand __css_get.  It is not necessary to set the bit in\ncgroup_fork, as the task is either in the root cgroup, in\nwhich can never be released, or the task it was forked from\nalready set the bit in croup_attach_task.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "435aacd2a0cf0fc6402719fb69a3fac614686347",
      "tree": "93d26b8397539b0351f0e6c02529d8bda78ef079",
      "parents": [
        "7ef37e015313dc58064d39bcdd5e25adb36518f5"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Mon Aug 30 18:22:20 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:35 2011 -0700"
      },
      "message": "power: wakelock: call __get_wall_to_monotonic() instead of using wall_to_monotonic\n\nChange-Id: I9e9c3b923bf9a22ffd48f80a72050289496e57d8\n"
    },
    {
      "commit": "0c7841ce3e0a90bab630f671992348dafb022558",
      "tree": "a1e95e7106d661813176d7aeb64873bdce265d26",
      "parents": [
        "5eb6fdc0c710873d2be76db4965f247f484f531a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@google.com",
        "time": "Sat Aug 21 17:27:02 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:34 2011 -0700"
      },
      "message": "wakelock: Fix operator precedence bug\n\nChange-Id: I21366ace371d1b8f4684ddbe4ea8d555a926ac21\nSigned-off-by: Colin Cross \u003cccross@google.com\u003e\n"
    },
    {
      "commit": "be17d1d867677666e6a126fcf71c6fc4cd08df09",
      "tree": "a705c1ff62d3da31752faf3c7241262f4edd91ca",
      "parents": [
        "c69233f5544478b55ede08b2180a33729ab27788"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Wed May 12 15:52:14 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:33 2011 -0700"
      },
      "message": "scheduler: cpuacct: Enable platform callbacks for cpuacct power tracking\n\nPlatform must register cpu power function that return power in\nmilliWatt seconds.\n\nChange-Id: I1caa0335e316c352eee3b1ddf326fcd4942bcbe8\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "c69233f5544478b55ede08b2180a33729ab27788",
      "tree": "c0ea18f59072b83a7c64befea0fc69b7f05f1d77",
      "parents": [
        "c1dbe304b2f161b140b1696f9ffd45c455e5505b"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Mon May 10 17:54:48 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:33 2011 -0700"
      },
      "message": "scheduler: cpuacct: Enable platform hooks to track cpuusage for CPU frequencies\n\nIntroduce new platform callback hooks for cpuacct for tracking CPU frequencies\n\nNot all platforms / architectures have a set CPU_FREQ_TABLE defined\nfor CPU transition speeds. In order to track time spent in at various\nCPU frequencies, we enable platform callbacks from cpuacct for this accounting.\n\nArchitectures that support overclock boosting, or don\u0027t have pre-defined\nfrequency tables can implement their own bucketing system that makes sense\ngiven their cpufreq scaling abilities.\n\nNew file:\ncpuacct.cpufreq reports the CPU time (in nanoseconds) spent at each CPU\nfrequency.\n\nChange-Id: I10a80b3162e6fff3a8a2f74dd6bb37e88b12ba96\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "39958f678c52fac3d522f345d61b9ffa1b4bfecb",
      "tree": "e01b8fb0077935862a16af6aec6190f79e3a2dde",
      "parents": [
        "29023ce8df1bbc9236dc1f632e9cdf77019dffb0"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 06 15:37:55 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:31 2011 -0700"
      },
      "message": "sched: Add a generic notifier when a task struct is about to be freed\n\nThis patch adds a notifier which can be used by subsystems that may\nbe interested in when a task has completely died and is about to\nhave it\u0027s last resource freed.\n\n  The Android lowmemory killer uses this to determine when a task\nit has killed has finally given up its goods.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "af62b25adba1fe01c91aa88c95d1584371ab2bf9",
      "tree": "b03c0757132204a2e7a423f17f6319ca32e30624",
      "parents": [
        "617a3dcb3fc460098b5347b9c49ff59ce6f4b05d"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Feb 16 14:18:55 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:27 2011 -0700"
      },
      "message": "power: wakelock: Print active wakelocks when has_wake_lock() is called\n\nWhen DEBUG_SUSPEND is enabled print active wakelocks when we check\nif there are any active wakelocks.\n\nIn print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled\n\nChange-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "ce84ca9acef1cb5209b7d0f1fff7b6a5640fab2f",
      "tree": "44175201674c01f542e2ee653c91d5c437a98d59",
      "parents": [
        "d3f8fd3e74564f3241dc2ef7501b1ae13f7d1f13"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Aug 06 10:25:21 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:18 2011 -0700"
      },
      "message": "kernel: printk: Add non exported function for clearing the log ring buffer\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0da19af0b8c8b8d8bd19a262479d49d8061c0c13",
      "tree": "af1ba23b042e0ebf4f075c552e217362a45d1df3",
      "parents": [
        "fc4fb2825c927af3a67ff5120816e2a37748d6af"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Apr 14 21:35:25 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:14 2011 -0700"
      },
      "message": "printk: Fix log_buf_copy termination.\n\nIf idx was non-zero and the log had wrapped, len did not get truncated\nto stop at the last byte written to the log.\n"
    },
    {
      "commit": "fc4fb2825c927af3a67ff5120816e2a37748d6af",
      "tree": "b6503feedd22ff0614ee0e823be68a735c984fce",
      "parents": [
        "ebd4673cf669673567d8e5990fc45bfc12fe69ac"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Jan 15 19:07:27 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:14 2011 -0700"
      },
      "message": "Revert \"printk: remove unused code from kernel/printk.c\"\n\nThis reverts commit acff181d3574244e651913df77332e897b88bff4.\n"
    },
    {
      "commit": "1d38bc7d0523af2233b4280e2aeab34c6a076665",
      "tree": "16c8c61cd13cc2e0d4fd879cc0cd87c893e867d6",
      "parents": [
        "22e9cd9dc9b51f5ad96588ecbfde5f3221e0e6dd"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 21 14:10:06 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:09:13 2011 -0700"
      },
      "message": "cgroup: Add generic cgroup subsystem permission checks.\n\n    Rather than using explicit euid \u003d\u003d 0 checks when trying to move\ntasks into a cgroup via CFS, move permission checks into each\nspecific cgroup subsystem. If a subsystem does not specify a\n\u0027can_attach\u0027 handler, then we fall back to doing our checks the old way.\n\n    This way non-root processes can add arbitrary processes to\na cgroup if all the registered subsystems on that cgroup agree.\n\n    Also change explicit euid \u003d\u003d 0 check to CAP_SYS_ADMIN\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4b0ea27fc8202b21ce338c82b55eee9c281bd7da",
      "tree": "a4527ae113321bc7a55d316183435ad38ccfabc6",
      "parents": [
        "b28a6a111c2c4779f92f310cfefe10606df4999f"
      ],
      "author": {
        "name": "Rebecca Schultz",
        "email": "rschultz@google.com",
        "time": "Thu Jul 17 18:14:55 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: earlysuspend: Removing dependence on console.\n\nRather than signaling a full update of the display from userspace via a\nconsole switch, this patch introduces 2 files int /sys/power,\nwait_for_fb_sleep and wait_for_fb_wake.  Reading these files will block\nuntil the requested state has been entered.  When a read from\nwait_for_fb_sleep returns userspace should stop drawing.  When\nwait_for_fb_wake returns, it should do a full update.  If either are called\nwhen the fb driver is already in the requested state, they will return\nimmediately.\n\nSigned-off-by: Rebecca Schultz \u003crschultz@google.com\u003e\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "b28a6a111c2c4779f92f310cfefe10606df4999f",
      "tree": "86d2995f2c24e7adb96e557eeac2dadb2f709237",
      "parents": [
        "c8bb31538d668c9d451e029d45edcd7c35892624"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Dec 14 22:14:52 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "consoleearlysuspend: Fix for 2.6.32\n\nvt_waitactive now needs a 1 based console number\n\nChange-Id: I07ab9a3773c93d67c09d928c8d5494ce823ffa2e\n"
    },
    {
      "commit": "c8bb31538d668c9d451e029d45edcd7c35892624",
      "tree": "ec9dcfe5f157d7ef78fc89747fc11410339e3d3c",
      "parents": [
        "01e13543e486f1007ba5656e30c5f0932f4187b0"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Oct 15 17:52:20 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: earlysuspend: Add console switch when user requested sleep state changes.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "01e13543e486f1007ba5656e30c5f0932f4187b0",
      "tree": "e7a5c2fd6659e006bbd833573d998b8ed48d1080",
      "parents": [
        "677f10402f85bfab6b540f6e3f64cca7f7cb79a4"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Dec 01 20:54:37 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: wakelock: Don\u0027t dump unfrozen task list when aborting try_to_freeze_tasks after less than one second\n\nChange-Id: Ib2976e5b97a5ee4ec9abd4d4443584d9257d0941\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "677f10402f85bfab6b540f6e3f64cca7f7cb79a4",
      "tree": "6037d617a2fcfbe372125a0632ce71700c5136fa",
      "parents": [
        "47dfb46bf609015a383206417c8e596df1d84017"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Oct 14 16:02:39 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:43 2011 -0700"
      },
      "message": "PM: wakelock: Abort task freezing if a wake lock is held.\n\nAvoids a problem where the device sometimes hangs for 20 seconds\nbefore the screen is turned on.\n"
    },
    {
      "commit": "47dfb46bf609015a383206417c8e596df1d84017",
      "tree": "19a77e0c978ccff1b9af287d86d8feb6539f2fe7",
      "parents": [
        "b0dc34309fc9f98de480aa383c7f6f035ce3b54a"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Oct 09 21:01:46 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Add user-space wake lock api.\n\nThis adds /sys/power/wake_lock and /sys/power/wake_unlock.\nWriting a string to wake_lock creates a wake lock the\nfirst time is sees a string and locks it. Optionally, the\nstring can be followed by a timeout.\nTo unlock the wake lock, write the same string to wake_unlock.\n\nChange-Id: I66c6e3fe6487d17f9c2fafde1174042e57d15cd7\n"
    },
    {
      "commit": "b0dc34309fc9f98de480aa383c7f6f035ce3b54a",
      "tree": "6b8633a1b37edc00b10a8c05a27eb35795a3776f",
      "parents": [
        "c1783f55b10d7dfb4ada9a7149821b644255d8df"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Oct 09 19:17:11 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Enable early suspend through /sys/power/state\n\nIf EARLYSUSPEND is enabled then writes to /sys/power/state no longer\nblocks, and the kernel will try to enter the requested state every\ntime no wakelocks are held. Write \"on\" to resume normal operation.\n"
    },
    {
      "commit": "c1783f55b10d7dfb4ada9a7149821b644255d8df",
      "tree": "b57f37018d30e734588c761366168c9255c95d2b",
      "parents": [
        "1b0749512f76005ce41607472e6f36411fa96649"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Oct 07 20:48:01 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: Implement early suspend api\n"
    },
    {
      "commit": "1b0749512f76005ce41607472e6f36411fa96649",
      "tree": "f3bde94119c39656e1df9f1647c1426f9ca6d213",
      "parents": [
        "10f0138c56a31a39c2a123af5af95cf8fd5de1ac"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Dec 02 18:22:00 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "PM: wakelocks: Use seq_file for /proc/wakelocks so we can get more than 3K of stats.\n\nChange-Id: I42ed8bea639684f7a8a95b2057516764075c6b01\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "10f0138c56a31a39c2a123af5af95cf8fd5de1ac",
      "tree": "d0ceb6e9c5ed17f2a6408754c371854b81fd6690",
      "parents": [
        "97a0a74383d19a1a43ffca81271894ba3edc07b6"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 25 20:09:12 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "power: wakelocks: fix buffer overflow in print_wake_locks\n\nChange-Id: Ic944e3b3d3bc53eddc6fd0963565fd072cac373c\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "97a0a74383d19a1a43ffca81271894ba3edc07b6",
      "tree": "02cfdfeaa54aab75b96492bfc14fc4f0ec8e9e65",
      "parents": [
        "fe6cd633efb6d6070507deee0116be43cf4bc76b"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Aug 25 18:10:32 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:42 2011 -0700"
      },
      "message": "power: Prevent spinlock recursion when wake_unlock() is called\n\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "fe6cd633efb6d6070507deee0116be43cf4bc76b",
      "tree": "15672fada835124d320b33407aa5f0ee2a8694f5",
      "parents": [
        "9e3725811792edff4c3ec0baa71df22ebb1a7d23"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Sep 09 22:14:34 2008 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:41 2011 -0700"
      },
      "message": "PM: Implement wakelock api.\n\nPM: wakelock: Replace expire work with a timer\n\nThe expire work function did not work in the normal case.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "f2a96a65e2486d60b3bcb47f5184462690b3eeac",
      "tree": "29fd645ed44a0a69fde1f941b978b3c1e6d42886",
      "parents": [
        "ac7df7d13e258e059dd75341043913498302dcb8"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Dec 10 20:06:28 2008 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:40 2011 -0700"
      },
      "message": "sched: Enable might_sleep before initializing drivers.\n\nThis allows detection of init bugs in built-in drivers.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "ac7df7d13e258e059dd75341043913498302dcb8",
      "tree": "c1644e71b604084d13afa8ad36eef7e7eb7b73b9",
      "parents": [
        "2d35c8339d425a2f0a8201a35adb0fd1210bf822"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue May 08 15:39:13 2007 +0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:39 2011 -0700"
      },
      "message": "Add build option to to set the default panic timeout.\n"
    },
    {
      "commit": "83de731ffcc6777a33e8a6132c7da8d91faac9ca",
      "tree": "b206ab0d3b2ff4bf814d63772aeaab9f4559080f",
      "parents": [
        "180b7a0ba65bb1c60076b9f5efee22cf6b1361bf"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Feb 17 14:51:02 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:39 2011 -0700"
      },
      "message": "mm: Add min_free_order_shift tunable.\n\nBy default the kernel tries to keep half as much memory free at each\norder as it does for one order below. This can be too agressive when\nrunning without swap.\n\nChange-Id: I5efc1a0b50f41ff3ac71e92d2efd175dedd54ead\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "76b39908bbdce6db5fe8f9c60fb9dcc74357aa68",
      "tree": "043d687c8d34357044848daa973eda42f3f1374e",
      "parents": [
        "054651f25359e099f8568330078a88b74098aa8d"
      ],
      "author": {
        "name": "Tony Lindgren",
        "email": "tony@atomide.com",
        "time": "Mon May 09 14:10:26 2005 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 14 09:08:38 2011 -0700"
      },
      "message": "ARM: Make low-level printk work\n\nMakes low-level printk work.\n\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\n"
    },
    {
      "commit": "c78a9b9b8e36b8de302eddbe7a1688af3d9650ff",
      "tree": "3857996cf30ae6a60b5afe2e1e3e30f75fbca05e",
      "parents": [
        "842c895d140a75e5d67fa346213deb3ca2b460f8",
        "5f127133ee432d0b83ee26e8e3a3d7828ab5f2b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n  kprobes/trace: Fix kprobe selftest for gcc 4.6\n  ftrace: Fix possible undefined return code\n  oprofile, dcookies: Fix possible circular locking dependency\n  oprofile: Fix locking dependency in sync_start()\n  oprofile: Free potentially owned tasks in case of errors\n  oprofile, x86: Add comments to IBS LVT offset initialization\n"
    },
    {
      "commit": "13863a66c9c8a663665445cf05d68de96ff31830",
      "tree": "cb7864cf23b6f26f3eb11cfe09526eb7110a0e9a",
      "parents": [
        "7f45e5cd1718ed769295033ca214032848a0097d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Jun 09 23:14:58 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 10 10:53:42 2011 +0200"
      },
      "message": "genirq: Prevent potential NULL dereference in irq_set_irq_wake()\n\nIn kernel/irq/manage.c::irq_set_irq_wake() we call\nirq_get_desc_buslock() which may return NULL, but the code\ndereferences the result unconditionally.\n\nirq_set_irq_wake() has lots of callers - I checked a few and I couldn\u0027t\nfind anything that guarantees that they won\u0027t call it with some input that\nwill cause irq_get_desc_buslock() to return NULL, so I think it\u0027s a good\nthing to test and -EINVAL was the most sane error code in this situation\nthat I could think of.\n\nNot all callers test the return value of irq_set_irq_wake(), but those\nthat do take !\u003d 0 to mean error as far as I can see, so they should be\nfine. I guess those that don\u0027t test actually should, but that\u0027s a\ndifferent issue.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1106092300360.17868@swampdragon.chaosbits.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "db5e7ecc4abc91b9f26f0c0d79ef88a51e987d90",
      "tree": "022c475cc132e64f01c0765d2d965c0aa5df2286",
      "parents": [
        "5cf42f7055648aaba68ce95ecec69128d7fbf65f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 09 08:40:59 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 09 08:42:15 2011 -0400"
      },
      "message": "tracing: Fix regression in printk_formats file\n\nThe fix to fix the printk_formats of modules broke the\nprintk_formats of trace_printks in the kernel.\n\nThe update of what to show via the seq_file was only updated\nif the passed in fmt was NULL, which happens only on the first\niteration. The result was showing the first format every time\ninstead of iterating through the available formats.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33726bf2140a0e7c9de3ccd7cba6d69962f0b773",
      "tree": "a4f5bca74d61072533806a2fe7f257357cae1ce2",
      "parents": [
        "5b28f6a25ee202046e2d57bd431671bc23cf3dd1",
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix comments in include/linux/perf_event.h\n  perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n  perf python: Fix argument name list of read_on_cpu()\n  perf evlist: Don\u0027t die if sample_{id_all|type} is invalid\n  perf python: Use exception to propagate errors\n  perf evlist: Remove dependency on debug routines\n  perf, cgroups: Fix up for new API\n"
    },
    {
      "commit": "cb0a02ecf95e5f47d92e7d4c513cc1f7aeb40cda",
      "tree": "3e9b2341855a1b5ddac5f0edb74a679111f8a350",
      "parents": [
        "d681f1204d701cafbc45fa90e0ac977acddc33cc",
        "c5182b8867e189e14a8df5dbfcba1c73f286e061"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n  genirq: Fix descriptor init on non-sparse IRQs\n  irq: Handle spurios irq detection for threaded irqs\n  genirq: Print threaded handler in spurious debug output\n"
    },
    {
      "commit": "6715a52a581c891e9a2034abe1c81ddb482d70b3",
      "tree": "03bac8851232d11382af718c2d10559cc16e4f0f",
      "parents": [
        "ef2398019b305827ea7130ebaf7bf521b444530e",
        "6c6c54e1807faf116724451ef2bd14993780470a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix/clarify set_task_cpu() locking rules\n  lockdep: Fix lock_is_held() on recursion\n  sched: Fix schedstat.nr_wakeups_migrate\n  sched: Fix cross-cpu clock sync on remote wakeups\n"
    },
    {
      "commit": "a4f18ed11a4ddf327dd91cd19e237278600ad327",
      "tree": "bbe96241c6db2be16e881920a3312ec937ed7cd1",
      "parents": [
        "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 07 09:26:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:49:19 2011 -0400"
      },
      "message": "ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n\nRevert the commit that removed the disabling of interrupts around\nthe initial modifying of mcount callers to nops, and update the comment.\n\nThe original comment was outdated and stated that the interrupts were\nbeing disabled to prevent kstop machine, which was required with the\nold ftrace daemon, but was no longer the case.\n\nWhat the comment failed to mention was that interrupts needed to be\ndisabled to keep interrupts from preempting the modifying of the code\nand then executing the code that was partially modified.\n\nRevert the commit and update the comment.\n\nReported-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nTested-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39",
      "tree": "52ad853f49e8949a307f475115cc682d44753287",
      "parents": [
        "0aff1c0cef13b34c17e81a502336fad738151c37"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 06 22:35:13 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:47:36 2011 -0400"
      },
      "message": "kprobes/trace: Fix kprobe selftest for gcc 4.6\n\nWith gcc 4.6, the self test kprobe function:\n\n kprobe_trace_selftest_target()\n\nis optimized such that kallsyms does not list it. The kprobes\ntest uses this function to insert a probe and test it. But\nit will fail the test if the function is not listed in kallsyms.\n\nAdding a __used annotation keeps the symbol in the kallsyms table.\n\nSuggested-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6c6c54e1807faf116724451ef2bd14993780470a",
      "tree": "c306ec3d4876b70022b81f577d96ddb1c643c1d5",
      "parents": [
        "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jun 03 17:37:07 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:26:40 2011 +0200"
      },
      "message": "sched: Fix/clarify set_task_cpu() locking rules\n\nSergey reported a CONFIG_PROVE_RCU warning in push_rt_task where\nset_task_cpu() was called with both relevant rq-\u003elocks held, which\nshould be sufficient for running tasks since holding its rq-\u003elock\nwill serialize against sched_move_task().\n\nUpdate the comments and fix the task_group() lockdep test.\n\nReported-and-tested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1307115427.2353.3456.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d",
      "tree": "b461cb0836170eb555b20818802c121c79e76d33",
      "parents": [
        "f339b9dc1f03591761d5d930800db24bc0eda1e1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 06 12:32:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:25:50 2011 +0200"
      },
      "message": "lockdep: Fix lock_is_held() on recursion\n\nThe main lock_is_held() user is lockdep_assert_held(), avoid false\nassertions in lockdep_off() sections by unconditionally reporting the\nlock is taken.\n\n[ the reason this is important is a lockdep_assert_held() in ttwu()\n  which triggers a warning under lockdep_off() as in printk() which\n  can trigger another wakeup and lock up due to spinlock\n  recursion, as reported and heroically debugged by Arne Jansen ]\n\nReported-and-tested-by: Arne Jansen \u003clists@die-jansens.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1307398759.2497.966.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0aff1c0cef13b34c17e81a502336fad738151c37",
      "tree": "3bf383429c3d948bd34ff71ae78d82bb2439fab5",
      "parents": [
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "GuoWen Li",
        "email": "guowen.li.linux@gmail.com",
        "time": "Wed Jun 01 19:18:47 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 06 22:34:25 2011 -0400"
      },
      "message": "ftrace: Fix possible undefined return code\n\nkernel/trace/ftrace.c: In function \u0027ftrace_regex_write.clone.15\u0027:\nkernel/trace/ftrace.c:2743:6: warning: \u0027ret\u0027 may be used uninitialized in this\nfunction\n\nSigned-off-by: GuoWen Li \u003cguowen.li.linux@gmail.com\u003e\nLink: http://lkml.kernel.org/r/201106011918.47939.guowen.li.linux@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa4a221875873d2a1f9656cb7fd7e545e952b4fa",
      "tree": "44f66345c06c94cfc95d17b337d45e09917e475d",
      "parents": [
        "710054ba25c0d1f8f41c22ce13ba336503fb5318"
      ],
      "author": {
        "name": "Vince Weaver",
        "email": "vweaver1@eecs.utk.edu",
        "time": "Fri Jun 03 17:54:40 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:22:04 2011 +0200"
      },
      "message": "perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n\nTurns out that distro packages use this file as an indicator of\nthe perf event subsystem - this is easier to check for from scripts\nthan the existence of the system call.\n\nThis is easy enough to keep around for the kernel, so add a\ncomment to make sure it stays so.\n\nSigned-off-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nCc: David Ahern \u003cdsahern@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus@samba.org\nCc: acme@redhat.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.00.1106031751170.29381@cl320.eecs.utk.edu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "710054ba25c0d1f8f41c22ce13ba336503fb5318",
      "tree": "f9b09b722bf511841539173d946f90a20fc2e59a",
      "parents": [
        "74c355fbdfedd3820046dba4f537876cea54c207",
        "b273fa9716aa1564bee88ceee62f9042981cdc81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent\n"
    },
    {
      "commit": "1c3cc11602111d1318c2a5743bd2e88c82813927",
      "tree": "d46a1e4a1914f3bc307f8f6215864144926d0193",
      "parents": [
        "1b054b67d3bfc6dca9f634c104780f3f24ff3eec"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sat May 21 12:58:28 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 15:02:32 2011 +0200"
      },
      "message": "timers: Consider slack value in mod_timer()\n\nThere is an optimization which does not update the timer if the timer\nwas pending and the expiration time was unchanged.\n\nSince commit 3bbb9ec9 (\"timers: Introduce the concept of timer slack\nfor legacy timers\") this optimization is no longer applied for timers\nwhere the expiration time got extended due to the slack value. So we\nneed to check again after the expiration time might have been updated.\n\n[ tglx: Made it a single check by applying slack first and sorting\n  out the slack \u003d 0 value (all timeouts \u003c 256 jiffies) early ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/20110521105828.GA29442@Chamillionaire.breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c5182b8867e189e14a8df5dbfcba1c73f286e061",
      "tree": "89ac7169ab5009625770124e8b78549e69009ea1",
      "parents": [
        "e7fbad300a7a6432238f086e3c9a61538a905858"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Jun 02 18:55:13 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n\nWhen irq_alloc_descs() is called with no base IRQ specified then it will\nsearch for a range of IRQs starting from a specified base address. In the\ncase where an IRQ is specified it still does this search in order to ensure\nthat none of the requested range is already allocated and it still uses the\nfrom parameter to specify the base for the search. This means that in the\ncase where a base is specified but from is zero (which is reasonable as\nany IRQ number is in the range specified by a zero from) the function will\nget confused and try to allocate the first suitably sized block of free IRQs\nit finds.\n\nInstead use a specified IRQ as the base address for the search, and insist\nthat any from that is specified can support that IRQ.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nLink: http://lkml.kernel.org/r/1307037313-15733-1-git-send-email-broonie@opensource.wolfsonmicro.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e7fbad300a7a6432238f086e3c9a61538a905858",
      "tree": "76841c453717fd32be49d7d2b06e835e15b87c99",
      "parents": [
        "3a43e05f4d0600e906fa09f4a65d749288c44592"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Tue May 31 18:14:39 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Fix descriptor init on non-sparse IRQs\n\nThe genirq changes are initializing descriptors for sparse IRQs quite\ndifferently from how non-sparse (stacked?) IRQs are initialized, with\nthe effect that on my platform all IRQs are default-disabled on sparse\nIRQs and default-enabled if non-sparse IRQs are used, crashing some\nGPIO driver.\n\nFix this by refactoring the non-sparse IRQs to use the same descriptor\ninit function as the sparse IRQs.\n\nSigned-off: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306858479-16622-1-git-send-email-linus.walleij@stericsson.com\nCc: stable@kernel.org # 2.6.39\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3a43e05f4d0600e906fa09f4a65d749288c44592",
      "tree": "b99732c8f459e70078c7dd90f62a5174376e3c62",
      "parents": [
        "ef26f20cd117eb3c185038ed7cbf7b235575751d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:11 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "irq: Handle spurios irq detection for threaded irqs\n\nThe detection of spurios interrupts is currently limited to first level\nhandler. In force-threaded mode we never notice if the threaded irq does\nnot feel responsible.\nThis patch catches the return value of the threaded handler and forwards\nit to the spurious detector. If the primary handler returns only\nIRQ_WAKE_THREAD then the spourious detector ignores it because it gets\ncalled again from the threaded handler.\n\n[ tglx: Report the erroneous return value early and bail out ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-2-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ef26f20cd117eb3c185038ed7cbf7b235575751d",
      "tree": "630c5b348bb2dc7abbb3bd820a51a6fa8c6e5c5d",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:10 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "genirq: Print threaded handler in spurious debug output\n\nIn forced threaded mode (or with an explicit threaded handler) we only\nsee the primary handler, but not the threaded handler.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-1-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1b054b67d3bfc6dca9f634c104780f3f24ff3eec",
      "tree": "af50fb7333001692879c18474e84ac2736f984d1",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "message": "clockevents: Handle empty cpumask gracefully\n\nFor UP it\u0027s stupid to request an initialized cpumask for the clock\nevent devices. Though we need the mask set even on UP to avoid a\nhorrible ifdeffery especially in the broadcast code.\n\nFor SMP we can at least try to survive with a warning and set the\ncpumask of the cpu we\u0027re running on. That gives a decent chance to\nbring the machine up and retrieve the debug info.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\nCc: Lee Jones \u003clee.jones@linaro.org\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "74c355fbdfedd3820046dba4f537876cea54c207",
      "tree": "3a07851e63f5eb9a233286c6683f7e8c7d9d61a2",
      "parents": [
        "89e1be50c68eb5e58b873dce87bbac627ee18d1f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 30 16:48:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:20:25 2011 +0200"
      },
      "message": "perf, cgroups: Fix up for new API\n\nBen changed the cgroup API in commit f780bdb7c1c (cgroups: add\nper-thread subsystem callbacks) in an incompatible way, but\nforgot to convert the perf cgroup bits.\n\nAvoid compile warnings and runtime splats and convert perf too ;-)\n\nAcked-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306767651.1200.2990.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f339b9dc1f03591761d5d930800db24bc0eda1e1",
      "tree": "901c78b6e8ccaf9e74515d176084c75389bc2832",
      "parents": [
        "f01114cb59d670e9b4f2c335930dd57db96e9360"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 10:49:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:57 2011 +0200"
      },
      "message": "sched: Fix schedstat.nr_wakeups_migrate\n\nWhile looking over the code I found that with the ttwu rework the\nnr_wakeups_migrate test broke since we now switch cpus prior to\ncalling ttwu_stat(), hence the test is always true.\n\nCure this by passing the migration state in wake_flags. Also move the\nwhole test under CONFIG_SMP, its hard to migrate tasks on UP :-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-pwwxl7gdqs5676f1d4cx6pj7@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f01114cb59d670e9b4f2c335930dd57db96e9360",
      "tree": "98e2c76fd78e1e6762c92423a3e6f867a027ca3c",
      "parents": [
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 12:26:55 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:56 2011 +0200"
      },
      "message": "sched: Fix cross-cpu clock sync on remote wakeups\n\nMarkus reported that commit 317f394160e (\"sched: Move the second half\nof ttwu() to the remote cpu\") caused some accounting funnies on his AMD\nPhenom II X4, such as weird \u0027top\u0027 results.\n\nIt turns out that this is due to non-synced TSC and the queued remote\nwakeups stopped coupeling the two relevant cpu clocks, which leads to\nwakeups seeing time jumps, which in turn lead to skewed runtime stats.\n\nAdd an explicit call to sched_clock_cpu() to couple the per-cpu clocks\nto restore the normal flow of time.\n\nReported-and-tested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306835745.2353.3.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d72bce0e67e8afc6eb959f656013cbb577426f1e",
      "tree": "9c93d4df9aa895d6f2f555e0cf50e7ae5ebaded4",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon May 30 13:34:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 10:01:48 2011 +0200"
      },
      "message": "rcu: Cure load woes\n\nCommit cc3ce5176d83 (rcu: Start RCU kthreads in TASK_INTERRUPTIBLE\nstate) fudges a sleeping task\u0027 state, resulting in the scheduler seeing\na TASK_UNINTERRUPTIBLE task going to sleep, but a TASK_INTERRUPTIBLE\ntask waking up. The result is unbalanced load calculation.\n\nThe problem that patch tried to address is that the RCU threads could\nstay in UNINTERRUPTIBLE state for quite a while and triggering the hung\ntask detector due to on-demand wake-ups.\n\nCure the problem differently by always giving the tasks at least one\nwake-up once the CPU is fully up and running, this will kick them out of\nthe initial UNINTERRUPTIBLE state and into the regular INTERRUPTIBLE\nwait state.\n\n[ The alternative would be teaching kthread_create() to start threads as\n  INTERRUPTIBLE but that needs a tad more thought. ]\n\nReported-by: Damien Wyart \u003cdamien.wyart@free.fr\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306755291.1200.2872.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "333c5ae9948194428fe6c5ef5c088304fc98263b",
      "tree": "83d1cf3a781642e2c366086e0b9e244a7b60fae5",
      "parents": [
        "7467571f4480b273007517b26297c07154c73924"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Feb 11 12:49:04 2011 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun May 29 00:50:59 2011 -0400"
      },
      "message": "idle governor: Avoid lock acquisition to read pm_qos before entering idle\n\nThanks to the reviews and comments by Rafael, James, Mark and Andi.\nHere\u0027s version 2 of the patch incorporating your comments and also some\nupdate to my previous patch comments.\n\nI noticed that before entering idle state, the menu idle governor will\nlook up the current pm_qos target value according to the list of qos\nrequests received.  This look up currently needs the acquisition of a\nlock to access the list of qos requests to find the qos target value,\nslowing down the entrance into idle state due to contention by multiple\ncpus to access this list.  The contention is severe when there are a lot\nof cpus waking and going into idle.  For example, for a simple workload\nthat has 32 pair of processes ping ponging messages to each other, where\n64 cpu cores are active in test system, I see the following profile with\n37.82% of cpu cycles spent in contention of pm_qos_lock:\n\n-     37.82%          swapper  [kernel.kallsyms]          [k]\n_raw_spin_lock_irqsave\n   - _raw_spin_lock_irqsave\n      - 95.65% pm_qos_request\n           menu_select\n           cpuidle_idle_call\n         - cpu_idle\n              99.98% start_secondary\n\nA better approach will be to cache the updated pm_qos target value so\nreading it does not require lock acquisition as in the patch below.\nWith this patch the contention for pm_qos_lock is removed and I saw a\n2.2X increase in throughput for my message passing workload.\n\ncc: stable@kernel.org\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "08a8b79600101fd6e13dcf05409b330e7f5b0478",
      "tree": "461cf4061eb33d96966c5c348029bc3b5cb523bf",
      "parents": [
        "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n  sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n  sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: More sched_domain iterations fixes\n"
    },
    {
      "commit": "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
      "tree": "e42d1967025670401758d32964a5fa048f59f10a",
      "parents": [
        "c4a227d89f758e582fd167bb15245f2704de99ef",
        "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n  rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n  rcu: Avoid acquiring rcu_node locks in timer functions\n  atomic: Add atomic_or()\n  Documentation: Add statistics about nested locks\n  rcu: Decrease memory-barrier usage based on semi-formal proof\n  rcu: Make rcu_enter_nohz() pay attention to nesting\n  rcu: Don\u0027t do reschedule unless in irq\n  rcu: Remove old memory barriers from rcu_process_callbacks()\n  rcu: Add memory barriers\n  rcu: Fix unpaired rcu_irq_enter() from locking selftests\n"
    },
    {
      "commit": "c4a227d89f758e582fd167bb15245f2704de99ef",
      "tree": "f5b6e0091e6543c14d1cd7cf1f93e097a96bbd64",
      "parents": [
        "87367a0b71a5188e34a913c05673b5078f71a64d",
        "f506b3dc0ec454a16d40cab9ee5d75435b39dc50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  perf: Fix SIGIO handling\n  perf top: Don\u0027t stop if no kernel symtab is found\n  perf top: Handle kptr_restrict\n  perf top: Remove unused macro\n  perf events: initialize fd array to -1 instead of 0\n  perf tools: Make sure kptr_restrict warnings fit 80 col terms\n  perf tools: Fix build on older systems\n  perf symbols: Handle /proc/sys/kernel/kptr_restrict\n  perf: Remove duplicate headers\n  ftrace: Add internal recursive checks\n  tracing: Update btrfs\u0027s tracepoints to use u64 interface\n  tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n  ftrace: Set ops-\u003eflag to enabled even on static function tracing\n  tracing: Have event with function tracer check error return\n  ftrace: Have ftrace_startup() return failure code\n  jump_label: Check entries limit in __jump_label_update\n  ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM\n  scripts/tags.sh: Add magic for trace-events for etags too\n  scripts/tags.sh: Fix ctags for DEFINE_EVENT()\n  x86/ftrace: Fix compiler warning in ftrace.c\n  ...\n"
    },
    {
      "commit": "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e",
      "tree": "a28ada4c1e5fd8c3e8210ca1a1df950af8a704ff",
      "parents": [
        "08bca60a6912ad225254250c0a9c3a05b4152cfa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 25 13:42:06 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:56 2011 +0200"
      },
      "message": "rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n\nUpon creation, kthreads are in TASK_UNINTERRUPTIBLE state, which can\nresult in softlockup warnings.  Because some of RCU\u0027s kthreads can\nlegitimately be idle indefinitely, start them in TASK_INTERRUPTIBLE\nstate in order to avoid those warnings.\n\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08bca60a6912ad225254250c0a9c3a05b4152cfa",
      "tree": "760b20e6eaaa02412fcecb6bc5c3598b6bc0fdce",
      "parents": [
        "8826f3b0397562eee6f8785d548be9dfdb169100"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 20 16:06:29 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:52 2011 +0200"
      },
      "message": "rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n\nIt is not necessary to use waitqueues for the RCU kthreads because\nwe always know exactly which thread is to be awakened.  In addition,\nwake_up() only issues an actual wakeup when there is a thread waiting on\nthe queue, which was why there was an extra explicit wake_up_process()\nto get the RCU kthreads started.\n\nEliminating the waitqueues (and wake_up()) in favor of wake_up_process()\neliminates the need for the initial wake_up_process() and also shrinks\nthe data structure size a bit.  The wakeup logic is placed in a new\nrcu_wait() macro.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8826f3b0397562eee6f8785d548be9dfdb169100",
      "tree": "3b911e0ffe56b1792126f3f36f1fa4de39fd5979",
      "parents": [
        "55c2945aa9d4d907ec5ca4f6a4e30ae908d8d30d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 11 05:41:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:49 2011 +0200"
      },
      "message": "rcu: Avoid acquiring rcu_node locks in timer functions\n\nThis commit switches manipulations of the rcu_node -\u003ewakemask field\nto atomic operations, which allows rcu_cpu_kthread_timer() to avoid\nacquiring the rcu_node lock.  This should avoid the following lockdep\nsplat reported by Valdis Kletnieks:\n\n[   12.872150] usb 1-4: new high speed USB device number 3 using ehci_hcd\n[   12.986667] usb 1-4: New USB device found, idVendor\u003d413c, idProduct\u003d2513\n[   12.986679] usb 1-4: New USB device strings: Mfr\u003d0, Product\u003d0, SerialNumber\u003d0\n[   12.987691] hub 1-4:1.0: USB hub found\n[   12.987877] hub 1-4:1.0: 3 ports detected\n[   12.996372] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input10\n[   13.071471] udevadm used greatest stack depth: 3984 bytes left\n[   13.172129]\n[   13.172130] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[   13.172425] [ INFO: possible circular locking dependency detected ]\n[   13.172650] 2.6.39-rc6-mmotm0506 #1\n[   13.172773] -------------------------------------------------------\n[   13.172997] blkid/267 is trying to acquire lock:\n[   13.173009]  (\u0026p-\u003epi_lock){-.-.-.}, at: [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]\n[   13.173009] but task is already holding lock:\n[   13.173009]  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] which lock already depends on the new lock.\n[   13.173009]\n[   13.173009]\n[   13.173009] the existing dependency chain (in reverse order) is:\n[   13.173009]\n[   13.173009] -\u003e #2 (rcu_node_level_0){..-...}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81090794\u003e] rcu_read_unlock_special+0x8c/0x1d5\n[   13.173009]        [\u003cffffffff8109092c\u003e] __rcu_read_unlock+0x4f/0xd7\n[   13.173009]        [\u003cffffffff81027bd3\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff8102cc34\u003e] cpuacct_charge+0x6c/0x75\n[   13.173009]        [\u003cffffffff81030cc6\u003e] update_curr+0x101/0x12e\n[   13.173009]        [\u003cffffffff810311d0\u003e] check_preempt_wakeup+0xf7/0x23b\n[   13.173009]        [\u003cffffffff8102acb3\u003e] check_preempt_curr+0x2b/0x68\n[   13.173009]        [\u003cffffffff81031d40\u003e] ttwu_do_wakeup+0x76/0x128\n[   13.173009]        [\u003cffffffff81031e49\u003e] ttwu_do_activate.constprop.63+0x57/0x5c\n[   13.173009]        [\u003cffffffff81031e96\u003e] scheduler_ipi+0x48/0x5d\n[   13.173009]        [\u003cffffffff810177d5\u003e] smp_reschedule_interrupt+0x16/0x18\n[   13.173009]        [\u003cffffffff815710f3\u003e] reschedule_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810b66d1\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff810b739c\u003e] find_get_page+0xa9/0xb9\n[   13.173009]        [\u003cffffffff810b8b48\u003e] filemap_fault+0x6a/0x34d\n[   13.173009]        [\u003cffffffff810d1a25\u003e] __do_fault+0x54/0x3e6\n[   13.173009]        [\u003cffffffff810d447a\u003e] handle_pte_fault+0x12c/0x1ed\n[   13.173009]        [\u003cffffffff810d48f7\u003e] handle_mm_fault+0x1cd/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] -\u003e #1 (\u0026rq-\u003elock){-.-.-.}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81027e19\u003e] __task_rq_lock+0x8b/0xd3\n[   13.173009]        [\u003cffffffff81032f7f\u003e] wake_up_new_task+0x41/0x108\n[   13.173009]        [\u003cffffffff810376c3\u003e] do_fork+0x265/0x33f\n[   13.173009]        [\u003cffffffff81007d02\u003e] kernel_thread+0x6b/0x6d\n[   13.173009]        [\u003cffffffff8153a9dd\u003e] rest_init+0x21/0xd2\n[   13.173009]        [\u003cffffffff81b1db4f\u003e] start_kernel+0x3bb/0x3c6\n[   13.173009]        [\u003cffffffff81b1d29f\u003e] x86_64_start_reservations+0xaf/0xb3\n[   13.173009]        [\u003cffffffff81b1d393\u003e] x86_64_start_kernel+0xf0/0xf7\n[   13.173009]\n[   13.173009] -\u003e #0 (\u0026p-\u003epi_lock){-.-.-.}:\n[   13.173009]        [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]        [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]        [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]        [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]        [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]        [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]        [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]        [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]        [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]        [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]        [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]        [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]        [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]        [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]        [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]        [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] other info that might help us debug this:\n[   13.173009]\n[   13.173009] Chain exists of:\n[   13.173009]   \u0026p-\u003epi_lock --\u003e \u0026rq-\u003elock --\u003e rcu_node_level_0\n[   13.173009]\n[   13.173009]  Possible unsafe locking scenario:\n[   13.173009]\n[   13.173009]        CPU0                    CPU1\n[   13.173009]        ----                    ----\n[   13.173009]   lock(rcu_node_level_0);\n[   13.173009]                                lock(\u0026rq-\u003elock);\n[   13.173009]                                lock(rcu_node_level_0);\n[   13.173009]   lock(\u0026p-\u003epi_lock);\n[   13.173009]\n[   13.173009]  *** DEADLOCK ***\n[   13.173009]\n[   13.173009] 3 locks held by blkid/267:\n[   13.173009]  #0:  (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cffffffff8156cdb4\u003e] do_page_fault+0x1f3/0x5de\n[   13.173009]  #1:  (\u0026yield_timer){+.-...}, at: [\u003cffffffff810451da\u003e] call_timer_fn+0x0/0x1e9\n[   13.173009]  #2:  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] stack backtrace:\n[   13.173009] Pid: 267, comm: blkid Not tainted 2.6.39-rc6-mmotm0506 #1\n[   13.173009] Call Trace:\n[   13.173009]  \u003cIRQ\u003e  [\u003cffffffff8154a529\u003e] print_circular_bug+0xc8/0xd9\n[   13.173009]  [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]  [\u003cffffffff8100c861\u003e] ? save_stack_trace+0x28/0x46\n[   13.173009]  [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]  [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]  [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]  [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]  [\u003cffffffff810451da\u003e] ? del_timer+0x75/0x75\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]  [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]  [\u003cffffffff8106365f\u003e] ? tick_dev_program_event+0x37/0xf6\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]  [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]  [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]  [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]  [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]  \u003cEOI\u003e  [\u003cffffffff810bd384\u003e] ? get_page_from_freelist+0x114/0x310\n[   13.173009]  [\u003cffffffff810bd51a\u003e] ? get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff812220e7\u003e] ? clear_page_c+0x7/0x10\n[   13.173009]  [\u003cffffffff810bd1ef\u003e] ? prep_new_page+0x14c/0x1cd\n[   13.173009]  [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]  [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]  [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]  [\u003cffffffff810d915f\u003e] ? sys_brk+0x32/0x10c\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff81065c4f\u003e] ? trace_hardirqs_off_caller+0x3f/0x9c\n[   13.173009]  [\u003cffffffff812235dd\u003e] ? trace_hardirqs_off_thunk+0x3a/0x3c\n[   13.173009]  [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   14.010075] usb 5-1: new full speed USB device number 2 using uhci_hcd\n\nReported-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29f742f88a32c9ab8cf6d9ba69e1ea918be5aa58",
      "tree": "a38aa38c8025e050ec82a7e64d02dca07f90ffc7",
      "parents": [
        "f62508f68d04adefc4cf9b0177ba02c8818b3eec",
        "23b5c8fa01b723c70a20d6e4ef4ff54c7656d6e1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 12:38:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:05 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    }
  ],
  "next": "f506b3dc0ec454a16d40cab9ee5d75435b39dc50"
}
