)]}'
{
  "log": [
    {
      "commit": "2b17c545a4cdbbbadcd7f1e9684c2d7db8f085a6",
      "tree": "a783e9c98438f0028ef4411a81eb0ca2a8387f55",
      "parents": [
        "b3eda8d05c1afe722dc19be3fee7eeadc75e25e2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 04 01:46:44 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Oct 05 10:22:20 2012 +0200"
      },
      "message": "nohz: Fix one jiffy count too far in idle cputime\n\nWhen we stop the tick in idle, we save the current jiffies value\nin ts-\u003eidle_jiffies. This snapshot is substracted from the later\nvalue of jiffies when the tick is restarted and the resulting\ndelta is accounted as idle cputime. This is how we handle the\nidle cputime accounting without the tick.\n\nBut sometimes we need to schedule the next tick to some time in\nthe future instead of completely stopping it. In this case, a\ntick may happen before we restart the periodic behaviour and\nfrom that tick we account one jiffy to idle cputime as usual but\nwe also increment the ts-\u003eidle_jiffies snapshot by one so that\nwhen we compute the delta to account, we substract the one jiffy\nwe just accounted.\n\nTo prepare for stopping the tick outside idle, we introduced a\ncheck that prevents from fixing up that ts-\u003eidle_jiffies if we\nare not running the idle task. But we use idle_cpu() for that\nand this is a problem if we run the tick while another CPU\nremotely enqueues a ttwu to our runqueue:\n\nCPU 0:                            CPU 1:\n\ntick_sched_timer() {              ttwu_queue_remote()\n       if (idle_cpu(CPU 0))\n           ts-\u003eidle_jiffies++;\n}\n\nHere, idle_cpu() notes that \u0026rq-\u003ewake_list is not empty and\nhence won\u0027t consider the CPU as idle. As a result,\nts-\u003eidle_jiffies won\u0027t be incremented. But this is wrong because\nwe actually account the current jiffy to idle cputime. And that\njiffy won\u0027t get substracted from the nohz time delta. So in the\nend, this jiffy is accounted twice.\n\nFix this by changing idle_cpu(smp_processor_id()) with\nis_idle_task(current). This way the jiffy is substracted\ncorrectly even if a ttwu operation is enqueued on the CPU.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e # 3.5+\nLink: http://lkml.kernel.org/r/1349308004-3482-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "da8347969f324db5f572581397d9b3a8e108cda4",
      "tree": "7df2ea8968ecb92e307bbffdbe8f9bcd0c79c36a",
      "parents": [
        "80749df4a1492004fdb7bd2cec094b92260c6d27",
        "c416ddf5b909736f5b57d348f5de159693e699ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:46:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:46:27 2012 -0700"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/asm changes from Ingo Molnar:\n \"The one change that stands out is the alternatives patching change\n  that prevents us from ever patching back instructions from SMP to UP:\n  this simplifies things and speeds up CPU hotplug.\n\n  Other than that it\u0027s smaller fixes, cleanups and improvements.\"\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Unspaghettize do_trap()\n  x86_64: Work around old GAS bug\n  x86: Use REP BSF unconditionally\n  x86: Prefer TZCNT over BFS\n  x86/64: Adjust types of temporaries used by ffs()/fls()/fls64()\n  x86: Drop unnecessary kernel_eflags variable on 64-bit\n  x86/smp: Don\u0027t ever patch back to UP if we unplug cpus\n"
    },
    {
      "commit": "2fff56641be96acd938c8bd8f5f4f6d04795436f",
      "tree": "656454f704f7ece2177bafaa7f6107409cd9a2f0",
      "parents": [
        "0b981cb94bc63a2d0e5eccccdca75fe57643ffce",
        "c5f66e99b7cb091e3d51ae8e8156892e8feb7fa3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:45:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:45:16 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes from Ingo Molnar:\n \"Timer enhancements, generalizations and cleanups from Tejun Heo, in\n  preparation for workqueue facility enhancements.\"\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timer: Implement TIMER_IRQSAFE\n  timer: Clean up timer initializers\n  timer: Relocate declarations of init_timer_on_stack_key()\n  timer: Generalize timer-\u003ebase flags handling\n"
    },
    {
      "commit": "0b981cb94bc63a2d0e5eccccdca75fe57643ffce",
      "tree": "966ad6e6807fd1041d9962c9904e032a5ab07a65",
      "parents": [
        "4cba3335826cbb36a218c3f5a1387e2c7c7ca9aa",
        "fdf9c356502ae02238efcdf90cefd7b473a63fd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:43:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:43:39 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Continued quest to clean up and enhance the cputime code by Frederic\n  Weisbecker, in preparation for future tickless kernel features.\n\n  Other than that, smallish changes.\"\n\nFix up trivial conflicts due to additions next to each other in arch/{x86/}Kconfig\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  cputime: Make finegrained irqtime accounting generally available\n  cputime: Gather time/stats accounting config options into a single menu\n  ia64: Reuse system and user vtime accounting functions on task switch\n  ia64: Consolidate user vtime accounting\n  vtime: Consolidate system/idle context detection\n  cputime: Use a proper subsystem naming for vtime related APIs\n  sched: cpu_power: enable ARCH_POWER\n  sched/nohz: Clean up select_nohz_load_balancer()\n  sched: Fix load avg vs. cpu-hotplug\n  sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: Fix nohz_idle_balance()\n  sched: Remove useless code in yield_to()\n  sched: Add time unit suffix to sched sysctl knobs\n  sched/debug: Limit sd-\u003e*_idx range on sysctl\n  sched: Remove AFFINE_WAKEUPS feature flag\n  s390: Remove leftover account_tick_vtime() header\n  cputime: Consolidate vtime handling on context switch\n  sched: Move cputime code to its own file\n  cputime: Generalize CONFIG_VIRT_CPU_ACCOUNTING\n  tile: Remove SD_PREFER_LOCAL leftover\n  ...\n"
    },
    {
      "commit": "7e92daaefa68e5ef1e1732e45231e73adbb724e7",
      "tree": "8e7f8ac9d82654df4c65939c6682f95510e22977",
      "parents": [
        "7a68294278ae714ce2632a54f0f46916dca64f56",
        "1d787d37c8ff6612b8151c6dff15bfa7347bcbdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:49 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf update from Ingo Molnar:\n \"Lots of changes in this cycle as well, with hundreds of commits from\n  over 30 contributors.  Most of the activity was on the tooling side.\n\n  Higher level changes:\n\n   - New \u0027perf kvm\u0027 analysis tool, from Xiao Guangrong.\n\n   - New \u0027perf trace\u0027 system-wide tracing tool\n\n   - uprobes fixes + cleanups from Oleg Nesterov.\n\n   - Lots of patches to make perf build on Android out of box, from\n     Irina Tirdea\n\n   - Extend ftrace function tracing utility to be more dynamic for its\n     users.  It allows for data passing to the callback functions, as\n     well as reading regs as if a breakpoint were to trigger at function\n     entry.\n\n     The main goal of this patch series was to allow kprobes to use\n     ftrace as an optimized probe point when a probe is placed on an\n     ftrace nop.  With lots of help from Masami Hiramatsu, and going\n     through lots of iterations, we finally came up with a good\n     solution.\n\n   - Add cpumask for uncore pmu, use it in \u0027stat\u0027, from Yan, Zheng.\n\n   - Various tracing updates from Steve Rostedt\n\n   - Clean up and improve \u0027perf sched\u0027 performance by elliminating lots\n     of needless calls to libtraceevent.\n\n   - Event group parsing support, from Jiri Olsa\n\n   - UI/gtk refactorings and improvements from Namhyung Kim\n\n   - Add support for non-tracepoint events in perf script python, from\n     Feng Tang\n\n   - Add --symbols to \u0027script\u0027, similar to the one in \u0027report\u0027, from\n     Feng Tang.\n\n  Infrastructure enhancements and fixes:\n\n   - Convert the trace builtins to use the growing evsel/evlist\n     tracepoint infrastructure, removing several open coded constructs\n     like switch like series of strcmp to dispatch events, etc.\n     Basically what had already been showcased in \u0027perf sched\u0027.\n\n   - Add evsel constructor for tracepoints, that uses libtraceevent just\n     to parse the /format events file, use it in a new \u0027perf test\u0027 to\n     make sure the libtraceevent format parsing regressions can be more\n     readily caught.\n\n   - Some strange errors were happening in some builds, but not on the\n     next, reported by several people, problem was some parser related\n     files, generated during the build, didn\u0027t had proper make deps, fix\n     from Eric Sandeen.\n\n   - Introduce struct and cache information about the environment where\n     a perf.data file was captured, from Namhyung Kim.\n\n   - Fix handling of unresolved samples when --symbols is used in\n     \u0027report\u0027, from Feng Tang.\n\n   - Add union member access support to \u0027probe\u0027, from Hyeoncheol Lee.\n\n   - Fixups to die() removal, from Namhyung Kim.\n\n   - Render fixes for the TUI, from Namhyung Kim.\n\n   - Don\u0027t enable annotation in non symbolic view, from Namhyung Kim.\n\n   - Fix pipe mode in \u0027report\u0027, from Namhyung Kim.\n\n   - Move related stats code from stat to util/, will be used by the\n     \u0027stat\u0027 kvm tool, from Xiao Guangrong.\n\n   - Remove die()/exit() calls from several tools.\n\n   - Resolve vdso callchains, from Jiri Olsa\n\n   - Don\u0027t pass const char pointers to basename, so that we can\n     unconditionally use libgen.h and thus avoid ifdef BIONIC lines,\n     from David Ahern\n\n   - Refactor hist formatting so that it can be reused with the GTK\n     browser, From Namhyung Kim\n\n   - Fix build for another rbtree.c change, from Adrian Hunter.\n\n   - Make \u0027perf diff\u0027 command work with evsel hists, from Jiri Olsa.\n\n   - Use the only field_sep var that is set up: symbol_conf.field_sep,\n     fix from Jiri Olsa.\n\n   - .gitignore compiled python binaries, from Namhyung Kim.\n\n   - Get rid of die() in more libtraceevent places, from Namhyung Kim.\n\n   - Rename libtraceevent \u0027private\u0027 struct member to \u0027priv\u0027 so that it\n     works in C++, from Steven Rostedt\n\n   - Remove lots of exit()/die() calls from tools so that the main perf\n     exit routine can take place, from David Ahern\n\n   - Fix x86 build on x86-64, from David Ahern.\n\n   - {int,str,rb}list fixes from Suzuki K Poulose\n\n   - perf.data header fixes from Namhyung Kim\n\n   - Allow user to indicate objdump path, needed in cross environments,\n     from Maciek Borzecki\n\n   - Fix hardware cache event name generation, fix from Jiri Olsa\n\n   - Add round trip test for sw, hw and cache event names, catching the\n     problem Jiri fixed, after Jiri\u0027s patch, the test passes\n     successfully.\n\n   - Clean target should do clean for lib/traceevent too, fix from David\n     Ahern\n\n   - Check the right variable for allocation failure, fix from Namhyung\n     Kim\n\n   - Set up evsel-\u003etp_format regardless of evsel-\u003ename being set\n     already, fix from Namhyung Kim\n\n   - Oprofile fixes from Robert Richter.\n\n   - Remove perf_event_attr needless version inflation, from Jiri Olsa\n\n   - Introduce libtraceevent strerror like error reporting facility,\n     from Namhyung Kim\n\n   - Add pmu mappings to perf.data header and use event names from cmd\n     line, from Robert Richter\n\n   - Fix include order for bison/flex-generated C files, from Ben\n     Hutchings\n\n   - Build fixes and documentation corrections from David Ahern\n\n   - Assorted cleanups from Robert Richter\n\n   - Let O\u003d makes handle relative paths, from Steven Rostedt\n\n   - perf script python fixes, from Feng Tang.\n\n   - Initial bash completion support, from Frederic Weisbecker\n\n   - Allow building without libelf, from Namhyung Kim.\n\n   - Support DWARF CFI based unwind to have callchains when %bp based\n     unwinding is not possible, from Jiri Olsa.\n\n   - Symbol resolution fixes, while fixing support PPC64 files with an\n     .opt ELF section was the end goal, several fixes for code that\n     handles all architectures and cleanups are included, from Cody\n     Schafer.\n\n   - Assorted fixes for Documentation and build in 32 bit, from Robert\n     Richter\n\n   - Cache the libtraceevent event_format associated to each evsel\n     early, so that we avoid relookups, i.e.  calling pevent_find_event\n     repeatedly when processing tracepoint events.\n\n     [ This is to reduce the surface contact with libtraceevents and\n        make clear what is that the perf tools needs from that lib: so\n        far parsing the common and per event fields.  ]\n\n   - Don\u0027t stop the build if the audit libraries are not installed, fix\n     from Namhyung Kim.\n\n   - Fix bfd.h/libbfd detection with recent binutils, from Markus\n     Trippelsdorf.\n\n   - Improve warning message when libunwind devel packages not present,\n     from Jiri Olsa\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (282 commits)\n  perf trace: Add aliases for some syscalls\n  perf probe: Print an enum type variable in \"enum variable-name\" format when showing accessible variables\n  perf tools: Check libaudit availability for perf-trace builtin\n  perf hists: Add missing period_* fields when collapsing a hist entry\n  perf trace: New tool\n  perf evsel: Export the event_format constructor\n  perf evsel: Introduce rawptr() method\n  perf tools: Use perf_evsel__newtp in the event parser\n  perf evsel: The tracepoint constructor should store sys:name\n  perf evlist: Introduce set_filter() method\n  perf evlist: Renane set_filters method to apply_filters\n  perf test: Add test to check we correctly parse and match syscall open parms\n  perf evsel: Handle endianity in intval method\n  perf evsel: Know if byte swap is needed\n  perf tools: Allow handling a NULL cpu_map as meaning \"all cpus\"\n  perf evsel: Improve tracepoint constructor setup\n  tools lib traceevent: Fix error path on pevent_parse_event\n  perf test: Fix build failure\n  trace: Move trace event enable from fs_initcall to core_initcall\n  tracing: Add an option for disabling markers\n  ...\n"
    },
    {
      "commit": "7a68294278ae714ce2632a54f0f46916dca64f56",
      "tree": "78f22ea7dcfa22cbb354ba1cab6c9824a380aad5",
      "parents": [
        "627312b9a877983f2164a67d042541ec1ffc435b",
        "17d83127d4c2b322dd8f217e0ac08c66eb403779"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:09 2012 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull trivial irq core update from Ingo Molnar:\n \"Two symbol exports for modular irq-chip drivers\"\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  genirq: Export dummy_irq_chip\n  genirq: Export irq_set_chip_and_handler_name()\n"
    },
    {
      "commit": "627312b9a877983f2164a67d042541ec1ffc435b",
      "tree": "a8109ce649b4ef26998254088a54b01acd3df73f",
      "parents": [
        "94095a1fff89dffe9451839deae4c6a40cf3ec21",
        "4fe84fb8c6b5081f7364af63aee8e118a665b966"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:27:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:27:18 2012 -0700"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core locking changes from Ingo Molnar:\n \"It includes a lockdep improvement plus a spinlock inlining Kconfig\n  cleanup.\"\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  locking: Adjust spin lock inlining Kconfig options\n  lockdep: Check if nested lock is actually held\n"
    },
    {
      "commit": "94095a1fff89dffe9451839deae4c6a40cf3ec21",
      "tree": "c1beac5dc336d836c269253db3b00a302777598f",
      "parents": [
        "620e77533f29796df7aff861e79bd72e08554ebb",
        "f784e8a7989c0da3062d04bfea3db90f41e8f738"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:25:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:25:54 2012 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core kernel fixes from Ingo Molnar:\n \"This is a complex task_work series from Oleg that fixes the bug that\n  this VFS commit tried to fix:\n\n    d35abdb28824 hold task_lock around checks in keyctl\n\n  but solves the problem without the lockup regression that d35abdb28824\n  introduced in v3.6.\n\n  This series came late in v3.6 and I did not feel confident about it so\n  late in the cycle.  Might be worth backporting to -stable if it proves\n  itself upstream.\"\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  task_work: Simplify the usage in ptrace_notify() and get_signal_to_deliver()\n  task_work: Revert \"hold task_lock around checks in keyctl\"\n  task_work: task_work_add() should not succeed after exit_task_work()\n  task_work: Make task_work_add() lockless\n"
    },
    {
      "commit": "cb349ca95407cbc11424d5e9fc7c8e700709041b",
      "tree": "b20795decb064af75aae8f9f6af77806b1a4769a",
      "parents": [
        "1fd2b4425a5702c112b441e20b250ac8833a9608"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Sep 04 17:35:31 2012 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:18 2012 +0200"
      },
      "message": "rcu: Apply micro-optimization and int/bool fixes to RCU\u0027s idle handling\n\nChecking \"user\" before \"is_idle_task()\" allows better optimizations\nin cases where inlining is possible.  Also, \"bool\" should be passed\n\"true\" or \"false\" rather than \"1\" or \"0\".  This commit therefore makes\nthese changes, as noted in Josh\u0027s review.\n\nReported-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "1fd2b4425a5702c112b441e20b250ac8833a9608",
      "tree": "502bd504d85db494a6876a37d1a847e9fb6477d8",
      "parents": [
        "edf55fda35c7dc7f2d9241c3abaddaf759b457c6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:40 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:16 2012 +0200"
      },
      "message": "rcu: Userspace RCU extended QS selftest\n\nProvide a config option that enables the userspace\nRCU extended quiescent state on every CPUs by default.\n\nThis is for testing purpose.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "20ab65e33f469c35f3dabde3445b668aa9c943ee",
      "tree": "9acfb3c837c1dfa2ed3bae4471871f154376a66a",
      "parents": [
        "90a340ed53f0f3bcc3fdf1b2cff56c0e4e911d01"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:37 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:11 2012 +0200"
      },
      "message": "rcu: Exit RCU extended QS on user preemption\n\nWhen exceptions or irq are about to resume userspace, if\nthe task needs to be rescheduled, the arch low level code\ncalls schedule() directly.\n\nIf we call it, it is because we have the TIF_RESCHED flag:\n\n- It can be set after random local calls to set_need_resched()\n(RCU, drm, ...)\n\n- A wake up happened and the CPU needs preemption. This can\n  happen in several ways:\n\n    * Remotely: the remote waking CPU has set TIF_RESCHED and send the\n      wakee an IPI to schedule the new task.\n    * Remotely enqueued: the remote waking CPU sends an IPI to the target\n      and the wake up is made by the target.\n    * Locally: waking CPU \u003d\u003d wakee CPU and the wakeup is done locally.\n      set_need_resched() is called without IPI.\n\nIn the case of local and remotely enqueued wake ups, the tick can\nbe restarted when we enqueue the new task and RCU can exit the\nextended quiescent state at the same time. Then by the time we reach\nirq exit path and we call schedule, we are not in RCU user mode.\n\nBut if we call schedule() only because something called set_need_resched(),\nRCU may still be in user mode when we reach schedule.\n\nAlso if a wake up is done remotely, the CPU might see the TIF_RESCHED\nflag and call schedule while the IPI has not yet happen to restart the\ntick and exit RCU user mode.\n\nWe need to manually protect against these corner cases.\n\nCreate a new API schedule_user() that calls schedule() inside\nrcu_user_exit()-rcu_user_enter() in order to protect it. Archs\nwill need to rely on it now to implement user preemption safely.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "90a340ed53f0f3bcc3fdf1b2cff56c0e4e911d01",
      "tree": "af5ad4146d5d79fff12c764f8695b86b36c47b31",
      "parents": [
        "6ba3c97a38803883c2eee489505796cb0a727122"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:36 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:09 2012 +0200"
      },
      "message": "rcu: Exit RCU extended QS on kernel preemption after irq/exception\n\nWhen an exception or an irq exits, and we are going to resume into\ninterrupted kernel code, the low level architecture code calls\npreempt_schedule_irq() if there is a need to reschedule.\n\nIf the interrupt/exception occured between a call to rcu_user_enter()\n(from syscall exit, exception exit, do_notify_resume exit, ...) and\na real resume to userspace (iret,...), preempt_schedule_irq() can be\ncalled whereas RCU thinks we are in userspace. But preempt_schedule_irq()\nis going to run kernel code and may be some RCU read side critical\nsection. We must exit the userspace extended quiescent state before\nwe call it.\n\nTo solve this, just call rcu_user_exit() in the beginning of\npreempt_schedule_irq().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "04e7e951532b390b16feb070be9972b8fad2fc57",
      "tree": "d1d18c2febd422428fad0746afd23c2fd84684d8",
      "parents": [
        "1e1a689f10a27a4fe1ab9b4c6db04fa7232746a5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jul 16 15:06:40 2012 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:02 2012 +0200"
      },
      "message": "rcu: Switch task\u0027s syscall hooks on context switch\n\nClear the syscalls hook of a task when it\u0027s scheduled out so that if\nthe task migrates, it doesn\u0027t run the syscall slow path on a CPU\nthat might not need it.\n\nAlso set the syscalls hook on the next task if needed.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "1e1a689f10a27a4fe1ab9b4c6db04fa7232746a5",
      "tree": "098f180287723813d248f59f452ca3a7db04b636",
      "parents": [
        "c5d900bf676b1e2a61c44483932c8088651bbb4e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:32 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:47:01 2012 +0200"
      },
      "message": "rcu: Ignore userspace extended quiescent state by default\n\nBy default we don\u0027t want to enter into RCU extended quiescent\nstate while in userspace because doing this produces some overhead\n(eg: use of syscall slowpath). Set it off by default and ready to\nrun when some feature like adaptive tickless need it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c5d900bf676b1e2a61c44483932c8088651bbb4e",
      "tree": "881ee6420ba291d68d451986d5ed9832ee95661f",
      "parents": [
        "2b1d5024e17be459aa6385763ca3faa8f01c52d9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:31 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:46:55 2012 +0200"
      },
      "message": "rcu: Allow rcu_user_enter()/exit() to nest\n\nAllow calls to rcu_user_enter() even if we are already\nin userspace (as seen by RCU) and allow calls to rcu_user_exit()\neven if we are already in the kernel.\n\nThis makes the APIs more flexible to be called from architectures.\nException entries for example won\u0027t need to know if they come from\nuserspace before calling rcu_user_exit().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "2b1d5024e17be459aa6385763ca3faa8f01c52d9",
      "tree": "45d1ea5872eea69b7f0443086d98ddbcbc221b94",
      "parents": [
        "9a0c6fef423528ba5b62aa31b29aabf689eb8f70"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 11 20:26:30 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:44:04 2012 +0200"
      },
      "message": "rcu: Settle config for userspace extended quiescent state\n\nCreate a new config option under the RCU menu that put\nCPUs under RCU extended quiescent state (as in dynticks\nidle mode) when they run in userspace. This require\nsome contribution from architectures to hook into kernel\nand userspace boundaries.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "9a0c6fef423528ba5b62aa31b29aabf689eb8f70",
      "tree": "8560ac17f9a19f2f03c47fed1eb3e02011a6205f",
      "parents": [
        "19dd1591fc379f1d89f39cd99cbbe97433baa3c3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 28 12:33:51 2012 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:44:02 2012 +0200"
      },
      "message": "rcu: Make RCU_FAST_NO_HZ handle adaptive ticks\n\nThe current implementation of RCU_FAST_NO_HZ tries reasonably hard to rid\nthe current CPU of RCU callbacks.  This is appropriate when the CPU is\nentering idle, where it doesn\u0027t have much useful to do anyway, but is most\ndefinitely not what you want when transitioning to user-mode execution.\nThis commit therefore detects the adaptive-tick case, and refrains from\nburning CPU time getting rid of RCU callbacks in that case.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "19dd1591fc379f1d89f39cd99cbbe97433baa3c3",
      "tree": "9c298c4c0f38e68f53c2e4a13080fbec1282953f",
      "parents": [
        "adf5091e6ccaa02905e7a28f9ff44f46c7f4c230"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jun 04 16:42:35 2012 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:44:01 2012 +0200"
      },
      "message": "rcu: New rcu_user_enter_after_irq() and rcu_user_exit_after_irq() APIs\n\nIn some cases, it is necessary to enter or exit userspace-RCU-idle mode\nfrom an interrupt handler, for example, if some other CPU sends this\nCPU a resched IPI.  In this case, the current CPU would enter the IPI\nhandler in userspace-RCU-idle mode, but would need to exit the IPI handler\nafter having exited that mode.\n\nTo allow this to work, this commit adds two new APIs to TREE_RCU:\n\n- rcu_user_enter_after_irq(). This must be called from an interrupt between\nrcu_irq_enter() and rcu_irq_exit().  After the irq calls rcu_irq_exit(),\nthe irq handler will return into an RCU extended quiescent state.\nIn theory, this interrupt is never a nested interrupt, but in practice\nit might interrupt softirq, which looks to RCU like a nested interrupt.\n\n- rcu_user_exit_after_irq(). This must be called from a non-nesting\ninterrupt, interrupting an RCU extended quiescent state, also\nbetween rcu_irq_enter() and rcu_irq_exit(). After the irq calls\nrcu_irq_exit(), the irq handler will return in an RCU non-quiescent\nstate.\n\n[ Combined with \"Allow calls to rcu_exit_user_irq from nesting irqs.\" ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "adf5091e6ccaa02905e7a28f9ff44f46c7f4c230",
      "tree": "14a9a14c07870063a2fdfb23fa7b4c54adca4502",
      "parents": [
        "593d1006cdf710ab3469c0c37c184fea0bc3da97"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jun 28 11:20:21 2012 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 26 15:43:50 2012 +0200"
      },
      "message": "rcu: New rcu_user_enter() and rcu_user_exit() APIs\n\nRCU currently insists that only idle tasks can enter RCU idle mode, which\nprohibits an adaptive tickless kernel (AKA nohz cpusets), which in turn\nwould mean that usermode execution would always take scheduling-clock\ninterrupts, even when there is only one task runnable on the CPU in\nquestion.\n\nThis commit therefore adds rcu_user_enter() and rcu_user_exit(), which\nallow non-idle tasks to enter RCU idle mode.  These are quite similar\nto rcu_idle_enter() and rcu_idle_exit(), respectively, except that they\nomit the idle-task checks.\n\n[ Updated to use \"user\" flag rather than separate check functions. ]\n\n[ paulmck: Updated to drop exports of new functions based on Josh\u0027s patch\n  getting rid of the need for them. ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nCc: Geoff Levand \u003cgeoff@infradead.org\u003e\nCc: Gilad Ben Yossef \u003cgilad@benyossef.com\u003e\nCc: Hakan Akkan \u003chakanakkan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Sven-Thorsten Dietrich \u003cthebigcorporation@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "593d1006cdf710ab3469c0c37c184fea0bc3da97",
      "tree": "e4db58440018a52089e8d6b39160f753ab10df99",
      "parents": [
        "5217192b85480353aeeb395574e60d0db04f3676",
        "9b20aa63b8fc9a6a3b6831f4eae3621755e51211"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:03:56 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:03:56 2012 -0700"
      },
      "message": "Merge remote-tracking branch \u0027tip/core/rcu\u0027 into next.2012.09.25b\n\nResolved conflict in kernel/sched/core.c using Peter Zijlstra\u0027s\napproach from https://lkml.org/lkml/2012/9/5/585.\n"
    },
    {
      "commit": "5217192b85480353aeeb395574e60d0db04f3676",
      "tree": "a45b440623a8fc55ece18b72e40829b2d9815d74",
      "parents": [
        "bda4ec9f6a7d7b249c7b14baa553731efedce300",
        "bff4a394795add6b919debc009f72b7607f5d4bf"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:01:45 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:01:45 2012 -0700"
      },
      "message": "Merge remote-tracking branch \u0027tip/smp/hotplug\u0027 into next.2012.09.25b\n\nThe conflicts between kernel/rcutree.h and kernel/rcutree_plugin.h\nwere due to adjacent insertions and deletions, which were resolved\nby simply accepting the changes on both branches.\n"
    },
    {
      "commit": "a7e1a9e3af71b45ecae2dae35851f238117b317d",
      "tree": "8b1d15d63779ba13d7884288c96a3510b7fde4b6",
      "parents": [
        "bf9fae9f5e4ca8dce4708812f9ad6281e61df109"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Sep 08 16:14:02 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 25 15:42:37 2012 +0200"
      },
      "message": "vtime: Consolidate system/idle context detection\n\nMove the code that finds out to which context we account the\ncputime into generic layer.\n\nArchs that consider the whole time spent in the idle task as idle\ntime (ia64, powerpc) can rely on the generic vtime_account()\nand implement vtime_account_system() and vtime_account_idle(),\nletting the generic code to decide when to call which API.\n\nArchs that have their own meaning of idle time, such as s390\nthat only considers the time spent in CPU low power mode as idle\ntime, can just override vtime_account().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "bf9fae9f5e4ca8dce4708812f9ad6281e61df109",
      "tree": "02318ac3db48dd993a4a430de5de66a337895d16",
      "parents": [
        "bc2a27cd27271c5257989a57f511be86b26f5e54"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Sep 08 15:23:11 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 25 15:31:31 2012 +0200"
      },
      "message": "cputime: Use a proper subsystem naming for vtime related APIs\n\nUse a naming based on vtime as a prefix for virtual based\ncputime accounting APIs:\n\n- account_system_vtime() -\u003e vtime_account()\n- account_switch_vtime() -\u003e vtime_task_switch()\n\nIt makes it easier to allow for further declension such\nas vtime_account_system(), vtime_account_idle(), ... if we\nwant to find out the context we account to from generic code.\n\nThis also make it better to know on which subsystem these APIs\nrefer to.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "bda4ec9f6a7d7b249c7b14baa553731efedce300",
      "tree": "3ef6df518d8d48a29f4aafc05ffa4d427b015ce9",
      "parents": [
        "b17c7035f37f47c7f7cb08a5555ab2aebfa31f91",
        "60f53782c51f27c695840ce90c6c432284319eef",
        "86f343b50bb9f56cce60fade22da9defff28934c",
        "429227bbe55647aa42f8f63cac61e4544e248629",
        "93482f4ef1093f5961a63359a34612183d6beea0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 20:37:55 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Sep 24 20:02:22 2012 -0700"
      },
      "message": "Merge branches \u0027bigrt.2012.09.23a\u0027, \u0027doctorture.2012.09.23a\u0027, \u0027fixes.2012.09.23a\u0027, \u0027hotplug.2012.09.23a\u0027 and \u0027idlechop.2012.09.23a\u0027 into HEAD\n\nbigrt.2012.09.23a contains additional commits to reduce scheduling latency\n\tfrom RCU on huge systems (many hundrends or thousands of CPUs).\n\ndoctorture.2012.09.23a contains documentation changes and rcutorture fixes.\n\nfixes.2012.09.23a contains miscellaneous fixes.\n\nhotplug.2012.09.23a contains CPU-hotplug-related changes.\n\nidle.2012.09.23a fixes architectures for which RCU no longer considered\n\tthe idle loop to be a quiescent state due to earlier\n\tadaptive-dynticks changes.  Affected architectures are alpha,\n\tcris, frv, h8300, m32r, m68k, mn10300, parisc, score, xtensa,\n\tand ia64.\n"
    },
    {
      "commit": "8781915ad2716adcd8cd5cc52cee791fc8b00fdf",
      "tree": "0d16c498542e57b9fe5d709dba9042af63c5c1d1",
      "parents": [
        "5224c3a31549f1c056039545b289e1b01ed02f12"
      ],
      "author": {
        "name": "Ezequiel Garcia",
        "email": "elezegarcia@gmail.com",
        "time": "Wed Sep 12 11:47:57 2012 -0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 24 14:13:02 2012 -0400"
      },
      "message": "trace: Move trace event enable from fs_initcall to core_initcall\n\nThis patch splits trace event initialization in two stages:\n * ftrace enable\n * sysfs event entry creation\n\nThis allows to capture trace events from an earlier point\nby using \u0027trace_event\u0027 kernel parameter and is important\nto trace boot-up allocations.\n\nNote that, in order to enable events at core_initcall,\nit\u0027s necessary to move init_ftrace_syscalls() from\ncore_initcall to early_initcall.\n\nLink: http://lkml.kernel.org/r/1347461277-25302-1-git-send-email-elezegarcia@gmail.com\n\nSigned-off-by: Ezequiel Garcia \u003celezegarcia@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5224c3a31549f1c056039545b289e1b01ed02f12",
      "tree": "30750af387cad904c3935418b0c17384abce1de8",
      "parents": [
        "50a011f6409e888d5f41343024d24885281f048c"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "mandeep.baines@gmail.com",
        "time": "Fri Sep 07 18:12:19 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 24 14:10:44 2012 -0400"
      },
      "message": "tracing: Add an option for disabling markers\n\nIn our application, we have trace markers spread through user-space.\nWe have markers in GL, X, etc. These are super handy for Chrome\u0027s\nabout:tracing feature (Chrome + system + kernel trace view), but\ncan be very distracting when you\u0027re trying to debug a kernel issue.\n\nI normally, use \"grep -v tracing_mark_write\" but it would be nice\nif I could just temporarily disable markers all together.\n\nLink: http://lkml.kernel.org/r/1347066739-26285-1-git-send-email-msb@chromium.org\n\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5d18023294abc22984886bd7185344e0c2be0daf",
      "tree": "13c90f90db9e00e28ae4c00bfa7ba6d0702bced5",
      "parents": [
        "0d8ee37e2fcb7b77b9c5dee784beca5a215cad4c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Aug 20 11:26:57 2012 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:43:56 2012 -0700"
      },
      "message": "sched: Fix load avg vs cpu-hotplug\n\nRabik and Paul reported two different issues related to the same few\nlines of code.\n\nRabik\u0027s issue is that the nr_uninterruptible migration code is wrong in\nthat he sees artifacts due to this (Rabik please do expand in more\ndetail).\n\nPaul\u0027s issue is that this code as it stands relies on us using\nstop_machine() for unplug, we all would like to remove this assumption\nso that eventually we can remove this stop_machine() usage altogether.\n\nThe only reason we\u0027d have to migrate nr_uninterruptible is so that we\ncould use for_each_online_cpu() loops in favour of\nfor_each_possible_cpu() loops, however since nr_uninterruptible() is the\nonly such loop and its using possible lets not bother at all.\n\nThe problem Rabik sees is (probably) caused by the fact that by\nmigrating nr_uninterruptible we screw rq-\u003ecalc_load_active for both rqs\ninvolved.\n\nSo don\u0027t bother with fancy migration schemes (meaning we now have to\nkeep using for_each_possible_cpu()) and instead fold any nr_active delta\nafter we migrate all tasks away to make sure we don\u0027t have any skewed\nnr_active accounting.\n\n[ paulmck: Move call to calc_load_migration to CPU_DEAD to avoid\nmiscounting noted by Rakib. ]\n\nReported-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nReported-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\n"
    },
    {
      "commit": "0d8ee37e2fcb7b77b9c5dee784beca5a215cad4c",
      "tree": "6e7661bf5231b4c48a6681a9fa8e8ede7915d0a7",
      "parents": [
        "1331e7a1bbe1f11b19c4327ba0853bee2a606543"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Aug 03 13:16:15 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:43:55 2012 -0700"
      },
      "message": "rcu: Disallow callback registry on offline CPUs\n\nPosting a callback after the CPU_DEAD notifier effectively leaks\nthat callback unless/until that CPU comes back online.  Silence is\nunhelpful when attempting to track down such leaks, so this commit emits\na WARN_ON_ONCE() and unconditionally leaks the callback when an offline\nCPU attempts to register a callback.  The rdp-\u003enxttail[RCU_NEXT_TAIL] is\nset to NULL in the CPU_DEAD notifier and restored in the CPU_UP_PREPARE\nnotifier, allowing _call_rcu() to determine exactly when posting callbacks\nis illegal.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "1331e7a1bbe1f11b19c4327ba0853bee2a606543",
      "tree": "596d9ed379ef7e2c5d8cf1cc0ba56ade084548ec",
      "parents": [
        "a10d206ef1a83121ab7430cb196e0376a7145b22"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Aug 02 17:43:50 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:43:55 2012 -0700"
      },
      "message": "rcu: Remove _rcu_barrier() dependency on __stop_machine()\n\nCurrently, _rcu_barrier() relies on preempt_disable() to prevent\nany CPU from going offline, which in turn depends on CPU hotplug\u0027s\nuse of __stop_machine().\n\nThis patch therefore makes _rcu_barrier() use get_online_cpus() to\nblock CPU-hotplug operations.  This has the added benefit of removing\nthe need for _rcu_barrier() to adopt callbacks:  Because CPU-hotplug\noperations are excluded, there can be no callbacks to adopt.  This\ncommit simplifies the code accordingly.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "86f343b50bb9f56cce60fade22da9defff28934c",
      "tree": "c2951c5b76afcd56a3d9f4a5d1d40e95528f3bbe",
      "parents": [
        "22a767269a767b3ee91e4aaea353ac6bec6a912d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Sep 21 10:41:50 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:52 2012 -0700"
      },
      "message": "rcu: Fix CONFIG_RCU_FAST_NO_HZ stall warning message\n\nThe print_cpu_stall_fast_no_hz() function attempts to print -1 when\nthe -\u003eidle_gp_timer is not pending, but unsigned arithmetic causes it\nto instead print ULONG_MAX, which is 4294967295 on 32-bit systems and\n18446744073709551615 on 64-bit systems.  Neither of these are the most\nreader-friendly values, so this commit instead causes \"timer not pending\"\nto be printed when -\u003eidle_gp_timer is not pending.\n\nReported-by: Paul Walmsley \u003cpaul@pwsan.com\u003e\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": "22a767269a767b3ee91e4aaea353ac6bec6a912d",
      "tree": "21ed83a572e345a81a9ed17182e0cf393712b003",
      "parents": [
        "58fac09566bb48592a09ef0fe0c7dbefa0cd2109"
      ],
      "author": {
        "name": "Li Zhong",
        "email": "zhong@linux.vnet.ibm.com",
        "time": "Wed Sep 19 08:52:32 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:52 2012 -0700"
      },
      "message": "rcu: Move TINY_RCU quiescent state out of extended quiescent state\n\nTINY_RCU\u0027s rcu_idle_enter_common() invokes rcu_sched_qs() in order\nto inform the RCU core of the quiescent state implied by idle entry.\nOf course, idle is also an extended quiescent state, so that the call\nto rcu_sched_qs() speeds up RCU\u0027s invoking of any callbacks that might\nbe queued.  This speed-up is important when entering into dyntick-idle\nmode -- if there are no further scheduling-clock interrupts, the callbacks\nmight never be invoked, which could result in a system hang.\n\nHowever, processing callbacks does event tracing, which in turn\nimplies RCU read-side critical sections, which are illegal in extended\nquiescent states.  This patch therefore moves the call to rcu_sched_qs()\nso that it precedes the point at which we inform lockdep that RCU has\nentered an extended quiescent state.\n\nSigned-off-by: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "803b0ebae921714d1c36f0996db8125eda5fae53",
      "tree": "06366b934b3e703e4f8e633d853e9eb22495931b",
      "parents": [
        "7a11e2058f02feb6884efb067f328012c318a13f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Aug 23 08:34:07 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:52 2012 -0700"
      },
      "message": "time: RCU permitted to stop idle entry via softirq\n\nThe can_stop_idle_tick() function complains if a softirq vector is\nraised too late in the idle-entry process, presumably in order to\nprevent dangling softirq invocations from being delayed across the\nfull idle period, which might be indefinitely long -- and if softirq\nwas asserted any later than the call to this function, such a delay\nmight well happen.\n\nHowever, RCU needs to be able to use softirq to stop idle entry in\norder to be able to drain RCU callbacks from the current CPU, which in\nturn enables faster entry into dyntick-idle mode, which in turn reduces\npower consumption.  Because RCU takes this action at a well-defined\npoint in the idle-entry path, it is safe for RCU to take this approach.\n\nThis commit therefore silences the error message that is sometimes\nproduced when the going-idle CPU suddenly finds that it has an RCU_SOFTIRQ\nto process.  The error message will continue to be issued for other\nsoftirq vectors.\n\nReported-by: Sedat Dilek \u003csedat.dilek@gmail.com\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: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "7a11e2058f02feb6884efb067f328012c318a13f",
      "tree": "a0e2694a5ea94bc670de640a2631545517201868",
      "parents": [
        "fdab649b1aa732cd6e79654349088465cdff49af"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Aug 21 12:14:19 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:51 2012 -0700"
      },
      "message": "rcu: Move TINY_PREEMPT_RCU away from raw_local_irq_save()\n\nThe use of raw_local_irq_save() is unnecessary, given that local_irq_save()\nreally does disable interrupts.  Also, it appears to interfere with lockdep.\nTherefore, this commit moves to local_irq_save().\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\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: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "fdab649b1aa732cd6e79654349088465cdff49af",
      "tree": "5a8b75266eb451b0766f2c622744ae984ac7c3b5",
      "parents": [
        "c96ea7cfdd88d0a67c970502bc5313fede34b86b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Aug 13 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:51 2012 -0700"
      },
      "message": "rcu: Remove redundant memory barrier from __call_rcu()\n\nThe first memory barrier in __call_rcu() is supposed to order any\nupdates done beforehand by the caller against the actual queuing\nof the callback.  However, the second memory barrier (which is intended\nto order incrementing the queue lengths before queuing the callback)\nis also between the caller\u0027s updates and the queuing of the callback.\nThe second memory barrier can therefore serve both purposes.\n\nThis commit therefore removes the first memory barrier.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c96ea7cfdd88d0a67c970502bc5313fede34b86b",
      "tree": "b5e8273bfa99f3ddf72e3a4fbfb6483b60d7f345",
      "parents": [
        "c8020a67e625c714c4dbedc8ae2944b461e204ec"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Aug 13 11:17:06 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:51 2012 -0700"
      },
      "message": "rcu: Avoid spurious RCU CPU stall warnings\n\nIf a given CPU avoids the idle loop but also avoids starting a new\nRCU grace period for a full minute, RCU can issue spurious RCU CPU\nstall warnings.  This commit fixes this issue by adding a check for\nongoing grace period to avoid these spurious stall warnings.\n\nReported-by: Becky Bruce \u003cbgillbruce@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c8020a67e625c714c4dbedc8ae2944b461e204ec",
      "tree": "12ad0e02b6e30dffd8c7e2b24cdb278a6b799ad4",
      "parents": [
        "5fd4dc068c4ded1339180dbcd1a99e15b1c0a728"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 10 16:55:59 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:51 2012 -0700"
      },
      "message": "rcu: Protect rcu_node accesses during CPU stall warnings\n\nThe print_other_cpu_stall() function accesses a number of rcu_node\nfields without protection from the -\u003elock.  In theory, this is not\na problem because the fields accessed are all integers, but in\npractice the compiler can get nasty.  Therefore, the commit extends\nthe existing critical section to cover the entire loop body.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5fd4dc068c4ded1339180dbcd1a99e15b1c0a728",
      "tree": "89e0113e51e255dac69a726ada08044d461a0c18",
      "parents": [
        "115f7a7ca0d412aab81acaaaa95eb1ab1c622e2f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 10 16:00:11 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:50 2012 -0700"
      },
      "message": "rcu: Avoid rcu_print_detail_task_stall_rnp() segfault\n\nThe rcu_print_detail_task_stall_rnp() function invokes\nrcu_preempt_blocked_readers_cgp() to verify that there are some preempted\nRCU readers blocking the current grace period outside of the protection\nof the rcu_node structure\u0027s -\u003elock.  This means that the last blocked\nreader might exit its RCU read-side critical section and remove itself\nfrom the -\u003eblkd_tasks list before the -\u003elock is acquired, resulting in\na segmentation fault when the subsequent code attempts to dereference\nthe now-NULL gp_tasks pointer.\n\nThis commit therefore moves the test under the lock.  This will not\nhave measurable effect on lock contention because this code is invoked\nonly when printing RCU CPU stall warnings, in other words, in the common\ncase, never.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "115f7a7ca0d412aab81acaaaa95eb1ab1c622e2f",
      "tree": "03efa7f9a3f796c88af60a8bf2cc7cdf2885000b",
      "parents": [
        "b065a85354239cc96295f696eeace67ad3a55e5c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 10 13:55:03 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:50 2012 -0700"
      },
      "message": "rcu: Apply for_each_rcu_flavor() to increment_cpu_stall_ticks()\n\nThe increment_cpu_stall_ticks() function listed each RCU flavor\nexplicitly, with an ifdef to handle preemptible RCU.  This commit\ntherefore applies for_each_rcu_flavor() to save a line of code.\n\nBecause this commit switches from a code-based enumeration of the\nflavors of RCU to an rcu_state-list-based enumeration, it is no longer\npossible to apply __get_cpu_var() to the per-CPU rcu_data structures.\nWe instead use __this_cpu_var() on the rcu_state structure\u0027s -\u003erda field\nthat references the corresponding rcu_data structures.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b065a85354239cc96295f696eeace67ad3a55e5c",
      "tree": "3f1d429c803ddf21c8bc0583711ba0d9e3ee4fab",
      "parents": [
        "a82dcc76021e22c174ba85d90b7a8c750b7362d0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Aug 01 15:57:54 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:50 2012 -0700"
      },
      "message": "rcu: Fix obsolete rcu_initiate_boost() header comment\n\nCommit 1217ed1b (rcu: permit rcu_read_unlock() to be called while holding\nrunqueue locks) made rcu_initiate_boost() restore irq state when releasing\nthe rcu_node structure\u0027s -\u003elock, but failed to update the header comment\naccordingly.  This commit therefore brings the header comment up to date.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "a82dcc76021e22c174ba85d90b7a8c750b7362d0",
      "tree": "f65ef1af700610b9e3e59545d2bf13e4cac33876",
      "parents": [
        "5cc900cf55fe58aaad93767c5a526e2a69cbcbc6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Aug 01 14:29:20 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:50 2012 -0700"
      },
      "message": "rcu: Make offline-CPU checking allow for indefinite delays\n\nThe rcu_implicit_offline_qs() function implicitly assumed that execution\nwould progress predictably when interrupts are disabled, which is of course\nnot guaranteed when running on a hypervisor.  Furthermore, this function\nis short, and is called from one place only in a short function.\n\nThis commit therefore ensures that the timing is checked before\nchecking the condition, which guarantees correct behavior even given\nindefinite delays.  It also inlines rcu_implicit_offline_qs() into\nrcu_implicit_dynticks_qs().\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "5cc900cf55fe58aaad93767c5a526e2a69cbcbc6",
      "tree": "d6eb08a2df0797927d5288e2fa0ba9f2b8b1d4b6",
      "parents": [
        "b4270ee356e5ecef5394ab80c0a0301c1676b7f0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 31 14:09:49 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:50 2012 -0700"
      },
      "message": "rcu: Improve boost selection when moving tasks to root rcu_node\n\nThe rcu_preempt_offline_tasks() moves all tasks queued on a given leaf\nrcu_node structure to the root rcu_node, which is done when the last CPU\ncorresponding the the leaf rcu_node structure goes offline.  Now that\nRCU-preempt\u0027s synchronize_rcu_expedited() implementation blocks CPU-hotplug\noperations during the initialization of each rcu_node structure\u0027s\n-\u003eboost_tasks pointer, rcu_preempt_offline_tasks() can do a better job\nof setting the root rcu_node\u0027s -\u003eboost_tasks pointer.\n\nThe key point is that rcu_preempt_offline_tasks() runs as part of the\nCPU-hotplug process, so that a concurrent synchronize_rcu_expedited()\nis guaranteed to either have not started on the one hand (in which case\nthere is no boosting on behalf of the expedited grace period) or to be\ncompletely initialized on the other (in which case, in the absence of\nother priority boosting, all -\u003eboost_tasks pointers will be initialized).\nTherefore, if rcu_preempt_offline_tasks() finds that the -\u003eboost_tasks\npointer is equal to the -\u003eexp_tasks pointer, it can be sure that it is\ncorrectly placed.\n\nIn the case where there was boosting ongoing at the time that the\nsynchronize_rcu_expedited() function started, different nodes might start\nboosting the tasks blocking the expedited grace period at different times.\nIn this mixed case, the root node will either be boosting tasks for\nthe expedited grace period already, or it will start as soon as it gets\ndone boosting for the normal grace period -- but in this latter case,\nthe root node\u0027s tasks needed to be boosted in any case.\n\nThis commit therefore adds a check of the -\u003eboost_tasks pointer against\nthe -\u003eexp_tasks pointer to the list that prevents updating -\u003eboost_tasks.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "b4270ee356e5ecef5394ab80c0a0301c1676b7f0",
      "tree": "d600c6dcea20363414220b9b369832af97a8a090",
      "parents": [
        "1e3fd2b38cea41f5386bf23440f2cbdd74cf13d0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 31 10:12:48 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:49 2012 -0700"
      },
      "message": "rcu: Permit RCU_NONIDLE() to be used from interrupt context\n\nThere is a need to use RCU from interrupt context, but either before\nrcu_irq_enter() is called or after rcu_irq_exit() is called.  If the\ninterrupt occurs from idle, then lockdep-RCU will complain about such\nuses, as they appear to be illegal uses of RCU from the idle loop.\nIn other environments, RCU_NONIDLE() could be used to properly protect\nthe use of RCU, but RCU_NONIDLE() currently cannot be invoked except\nfrom process context.\n\nThis commit therefore modifies RCU_NONIDLE() to permit its use more\nglobally.\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\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": "1e3fd2b38cea41f5386bf23440f2cbdd74cf13d0",
      "tree": "0323ed32ad7616b328d49d1f0a934278988ca5a4",
      "parents": [
        "818615c4cde2a71a5857007b134cce89d506cc3f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Jul 27 13:41:47 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:49 2012 -0700"
      },
      "message": "rcu: Properly initialize -\u003eboost_tasks on CPU offline\n\nWhen rcu_preempt_offline_tasks() clears tasks from a leaf rcu_node\nstructure, it does not NULL out the structure\u0027s -\u003eboost_tasks field.\nThis commit therefore fixes this issue.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "818615c4cde2a71a5857007b134cce89d506cc3f",
      "tree": "71204f4c20bac45df7875169d9baaa3953c0aec6",
      "parents": [
        "e3ebfb96f396731ca2d0b108785d5da31b53ab00"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Jul 11 00:24:57 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:49 2012 -0700"
      },
      "message": "rcu: Pull TINY_RCU dyntick-idle tracing into non-idle region\n\nBecause TINY_RCU\u0027s idle detection keys directly off of the nesting\nlevel, rather than from a separate variable as in TREE_RCU, the\nTINY_RCU dyntick-idle tracing on transition to idle must happen\nbefore the change to the nesting level.  This commit therefore makes\nthis change by passing the desired new value (rather than the old value)\nof the nesting level in to rcu_idle_enter_common().\n\n[ paulmck: Add fix for wrong-variable bug spotted by\n  Michael Wang \u003cwangyun@linux.vnet.ibm.com\u003e. ]\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "e3ebfb96f396731ca2d0b108785d5da31b53ab00",
      "tree": "7bac429c3cad5f00894746270322d5a4119cea47",
      "parents": [
        "a10d206ef1a83121ab7430cb196e0376a7145b22"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jul 02 14:42:01 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:49 2012 -0700"
      },
      "message": "rcu: Add PROVE_RCU_DELAY to provoke difficult races\n\nThere have been some recent bugs that were triggered only when\npreemptible RCU\u0027s __rcu_read_unlock() was preempted just after setting\n-\u003ercu_read_lock_nesting to INT_MIN, which is a low-probability event.\nTherefore, reproducing those bugs (to say nothing of gaining confidence\nin alleged fixes) was quite difficult.  This commit therefore creates\na new debug-only RCU kernel config option that forces a short delay\nin __rcu_read_unlock() to increase the probability of those sorts of\nbugs occurring.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "60f53782c51f27c695840ce90c6c432284319eef",
      "tree": "daf20b20a35f09ecfa214127cf3c676f12c4edd1",
      "parents": [
        "2caa1e4432be7260dca60c3de6949b77eb007515"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 25 15:27:40 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:23 2012 -0700"
      },
      "message": "rcu: Prevent initialization race in rcutorture kthreads\n\nWhen you do something like \"t \u003d kthread_run(...)\", it is possible that\nthe kthread will start running before the assignment to \"t\" happens.\nIf the child kthread expects to find a pointer to its task_struct in \"t\",\nit will then be fatally disappointed.  This commit therefore switches\nsuch cases to kthread_create() followed by wake_up_process(), guaranteeing\nthat the assignment happens before the child kthread starts running.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2caa1e4432be7260dca60c3de6949b77eb007515",
      "tree": "ea5eec9c09b048b700f8ae16834218c57119ca62",
      "parents": [
        "2aef619c7524d73d18ff7b102a1706066b69141d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 09 16:30:45 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:23 2012 -0700"
      },
      "message": "rcu: Switch rcutorture to pr_alert() and friends\n\nDrop a few characters by switching kernel/rcutorture.c from\n\"printk(KERN_ALERT\" to \"pr_alert(\".\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "13dbf9140c726c307a9c7e2b7ff83cf95da3bb44",
      "tree": "c74294271b88bb0a99f841c214c0f10b8b6ab449",
      "parents": [
        "ab840f7a06df780c4db01f34a5660b1e472d9ca6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jul 23 12:05:55 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:22 2012 -0700"
      },
      "message": "rcu: Track CPU-hotplug duration statistics\n\nMany rcutorture runs include CPU-hotplug operations in their stress\ntesting.  This commit accumulates statistics on the durations of these\noperations in deference to the recent concern about the overhead and\nlatency of these operations.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "ab840f7a06df780c4db01f34a5660b1e472d9ca6",
      "tree": "57e5b0875af07f21925d15709b779140e10bd1c8",
      "parents": [
        "a10d206ef1a83121ab7430cb196e0376a7145b22"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jul 23 12:30:22 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:22 2012 -0700"
      },
      "message": "rcu: Update rcutorture defaults\n\nA number of new features have been added to rcutorture over the years, but\nthe defaults have not been updated to include them.  This commit therefore\nturns on a couple of them that have proven helpful and trustworthy, namely\nperiodic progress reports and testing of NO_HZ.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "b17c7035f37f47c7f7cb08a5555ab2aebfa31f91",
      "tree": "995c37771f64470dda04e631a8223e74d6713b0a",
      "parents": [
        "4dbd6bb38dd1cbfa5cb21e56e51dffc74aa20038"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Sep 06 15:38:02 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:56 2012 -0700"
      },
      "message": "rcu: Shrink RCU based on number of CPUs\n\nCurrently, rcu_init_geometry() only reshapes RCU\u0027s combining trees\nif the leaf fanout is changed at boot time.  This means that by\ndefault, kernels compiled with (say) NR_CPUS\u003d4096 will keep oversized\ndata structures, even when running on systems with (say) four CPUs.\n\nThis commit therefore checks to see if the maximum number of CPUs on\nthe actual running system (nr_cpu_ids) differs from NR_CPUS, and if so\nreshapes the combining trees accordingly.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4dbd6bb38dd1cbfa5cb21e56e51dffc74aa20038",
      "tree": "db9a40357ca52d6b135c95ea3186c3f89205520e",
      "parents": [
        "d7d6a11e8609f0319d4a2d8ede348f8b3374b652"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 05 21:43:57 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:56 2012 -0700"
      },
      "message": "rcu: Handle unbalanced rcu_node configurations with few CPUs\n\nIf CONFIG_RCU_FANOUT_EXACT\u003dy, if there are not enough CPUs (according\nto nr_cpu_ids) to require more than a single rcu_node structure, but if\nNR_CPUS is larger than would fit into a single rcu_node structure, then\nthe current rcu_init_levelspread() code is subject to integer overflow\nin the eight-bit -\u003elevelspread[] array in the rcu_state structure.\n\nIn this case, the solution is -not- to increase the size of the\nelements in this array because the values in that array should be\nconstrained to the number of bits in an unsigned long.  Instead, this\ncommit replaces NR_CPUS with nr_cpu_ids in the rcu_init_levelspread()\nfunction\u0027s initialization of the cprv local variable.  This results in\nall of the arithmetic being consistently based off of the nr_cpu_ids\nvalue, thus avoiding the overflow, which was caused by the mixing of\nnr_cpu_ids and NR_CPUS.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d7d6a11e8609f0319d4a2d8ede348f8b3374b652",
      "tree": "64a2e3260690a85fe637a3e34c94e8ca540e8fc6",
      "parents": [
        "1943c89de700248d68385300a9b5588a1e314f90"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Aug 21 15:00:05 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:56 2012 -0700"
      },
      "message": "rcu: Simplify quiescent-state detection\n\nThe current quiescent-state detection algorithm is needlessly\ncomplex.  It records the grace-period number corresponding to\nthe quiescent state at the time of the quiescent state, which\nworks, but it seems better to simply erase any record of previous\nquiescent states at the time that the CPU notices the new grace\nperiod.  This has the further advantage of removing another piece\nof RCU for which lockless reasoning is required.\n\nTherefore, this commit makes this change.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "1943c89de700248d68385300a9b5588a1e314f90",
      "tree": "4b94666097ec98ebb5524799203d215c4c575148",
      "parents": [
        "bcfa57ce10d3d53d37a6e324f3010b1ce6a2784a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jul 30 17:19:25 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:56 2012 -0700"
      },
      "message": "rcu: Reduce synchronize_rcu_expedited() latency\n\nThe synchronize_rcu_expedited() function disables interrupts across a\nscan of all leaf rcu_node structures, which is not good for real-time\nscheduling latency on large systems (hundreds or especially thousands\nof CPUs).  This commit therefore holds off CPU-hotplug operations using\nget_online_cpus(), and removes the prior acquisiion of the -\u003eonofflock\n(which required disabling interrupts).\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "bcfa57ce10d3d53d37a6e324f3010b1ce6a2784a",
      "tree": "1d365a7a64e3ea1d1dc743afcc1de4b6935caa57",
      "parents": [
        "25d30cf4250f74e5ceb35f8f39739782408db633"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jul 23 16:03:51 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:56 2012 -0700"
      },
      "message": "rcu: Eliminate signed overflow in synchronize_rcu_expedited()\n\nIn the C language, signed overflow is undefined.  It is true that\ntwos-complement arithmetic normally comes to the rescue, but if the\ncompiler can subvert this any time it has any information about the values\nbeing compared.  For example, given \"if (a - b \u003e 0)\", if the compiler\nhas enough information to realize that (for example) the value of \"a\"\nis positive and that of \"b\" is negative, the compiler is within its\nrights to optimize to a simple \"if (1)\", which might not be what you want.\n\nThis commit therefore converts synchronize_rcu_expedited()\u0027s work-done\ndetection counter from signed to unsigned.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "25d30cf4250f74e5ceb35f8f39739782408db633",
      "tree": "0dd1ff6527fbdd42fd023d68f9a07fb0856d0de0",
      "parents": [
        "661a85dc0d2ec0404e3b80909e413a9d5e42a239"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 11 05:23:18 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:55 2012 -0700"
      },
      "message": "rcu: Adjust for unconditional -\u003ecompleted assignment\n\nNow that the rcu_node structures\u0027 -\u003ecompleted fields are unconditionally\nassigned at grace-period cleanup time, they should already have the\ncorrect value for the new grace period at grace-period initialization\ntime.  This commit therefore inserts a WARN_ON_ONCE() to verify this\ninvariant.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "661a85dc0d2ec0404e3b80909e413a9d5e42a239",
      "tree": "8ea9545a62835d8cd47978fd31ede669f988b43a",
      "parents": [
        "5d4b86594984d8746b01487c768d8548463c173f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Jul 07 05:57:03 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:55 2012 -0700"
      },
      "message": "rcu: Add random PROVE_RCU_DELAY to grace-period initialization\n\nPreemption greatly raised the probability of certain types of race\nconditions, so this commit adds an anti-heisenbug to greatly increase\nthe collision cross section, also known as the probability of occurrence.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "5d4b86594984d8746b01487c768d8548463c173f",
      "tree": "da857bda0cd263af8301f338b4879a47c7d25ae3",
      "parents": [
        "7e5c2dfb4de15e21f62c956ec32cda9372ca993b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Jul 07 07:56:57 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:55 2012 -0700"
      },
      "message": "rcu: Fix day-zero grace-period initialization/cleanup race\n\nThe current approach to grace-period initialization is vulnerable to\nextremely low-probability races.  These races stem from the fact that\nthe old grace period is marked completed on the same traversal through\nthe rcu_node structure that is marking the start of the new grace period.\nThis means that some rcu_node structures will believe that the old grace\nperiod is still in effect at the same time that other rcu_node structures\nbelieve that the new grace period has already started.\n\nThese sorts of disagreements can result in too-short grace periods,\nas shown in the following scenario:\n\n1.\tCPU 0 completes a grace period, but needs an additional\n\tgrace period, so starts initializing one, initializing all\n\tthe non-leaf rcu_node structures and the first leaf rcu_node\n\tstructure.  Because CPU 0 is both completing the old grace\n\tperiod and starting a new one, it marks the completion of\n\tthe old grace period and the start of the new grace period\n\tin a single traversal of the rcu_node structures.\n\n\tTherefore, CPUs corresponding to the first rcu_node structure\n\tcan become aware that the prior grace period has completed, but\n\tCPUs corresponding to the other rcu_node structures will see\n\tthis same prior grace period as still being in progress.\n\n2.\tCPU 1 passes through a quiescent state, and therefore informs\n\tthe RCU core.  Because its leaf rcu_node structure has already\n\tbeen initialized, this CPU\u0027s quiescent state is applied to the\n\tnew (and only partially initialized) grace period.\n\n3.\tCPU 1 enters an RCU read-side critical section and acquires\n\ta reference to data item A.  Note that this CPU believes that\n\tits critical section started after the beginning of the new\n\tgrace period, and therefore will not block this new grace period.\n\n4.\tCPU 16 exits dyntick-idle mode.  Because it was in dyntick-idle\n\tmode, other CPUs informed the RCU core of its extended quiescent\n\tstate for the past several grace periods.  This means that CPU 16\n\tis not yet aware that these past grace periods have ended.  Assume\n\tthat CPU 16 corresponds to the second leaf rcu_node structure --\n\twhich has not yet been made aware of the new grace period.\n\n5.\tCPU 16 removes data item A from its enclosing data structure\n\tand passes it to call_rcu(), which queues a callback in the\n\tRCU_NEXT_TAIL segment of the callback queue.\n\n6.\tCPU 16 enters the RCU core, possibly because it has taken a\n\tscheduling-clock interrupt, or alternatively because it has\n\tmore than 10,000 callbacks queued.  It notes that the second\n\tmost recent grace period has completed (recall that because it\n\tcorresponds to the second as-yet-uninitialized rcu_node structure,\n\tit cannot yet become aware that the most recent grace period has\n\tcompleted), and therefore advances its callbacks.  The callback\n\tfor data item A is therefore in the RCU_NEXT_READY_TAIL segment\n\tof the callback queue.\n\n7.\tCPU 0 completes initialization of the remaining leaf rcu_node\n\tstructures for the new grace period, including the structure\n\tcorresponding to CPU 16.\n\n8.\tCPU 16 again enters the RCU core, again, possibly because it has\n\ttaken a scheduling-clock interrupt, or alternatively because\n\tit now has more than 10,000 callbacks queued.\tIt notes that\n\tthe most recent grace period has ended, and therefore advances\n\tits callbacks.\tThe callback for data item A is therefore in\n\tthe RCU_DONE_TAIL segment of the callback queue.\n\n9.\tAll CPUs other than CPU 1 pass through quiescent states.  Because\n\tCPU 1 already passed through its quiescent state, the new grace\n\tperiod completes.  Note that CPU 1 is still in its RCU read-side\n\tcritical section, still referencing data item A.\n\n10.\tSuppose that CPU 2 wais the last CPU to pass through a quiescent\n\tstate for the new grace period, and suppose further that CPU 2\n\tdid not have any callbacks queued, therefore not needing an\n\tadditional grace period.  CPU 2 therefore traverses all of the\n\trcu_node structures, marking the new grace period as completed,\n\tbut does not initialize a new grace period.\n\n11.\tCPU 16 yet again enters the RCU core, yet again possibly because\n\tit has taken a scheduling-clock interrupt, or alternatively\n\tbecause it now has more than 10,000 callbacks queued.\tIt notes\n\tthat the new grace period has ended, and therefore advances\n\tits callbacks.\tThe callback for data item A is therefore in\n\tthe RCU_DONE_TAIL segment of the callback queue.  This means\n\tthat this callback is now considered ready to be invoked.\n\n12.\tCPU 16 invokes the callback, freeing data item A while CPU 1\n\tis still referencing it.\n\nThis scenario represents a day-zero bug for TREE_RCU.  This commit\ntherefore ensures that the old grace period is marked completed in\nall leaf rcu_node structures before a new grace period is marked\nstarted in any of them.\n\nThat said, it would have been insanely difficult to force this race to\nhappen before the grace-period initialization process was preemptible.\nTherefore, this commit is not a candidate for -stable.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n\nConflicts:\n\n\tkernel/rcutree.c\n"
    },
    {
      "commit": "7e5c2dfb4de15e21f62c956ec32cda9372ca993b",
      "tree": "0abd7beba01a6b7f61d9c9879bf397d138eefe0b",
      "parents": [
        "d40011f601b450396104de42c631981502946cf0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jul 01 15:42:33 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:55 2012 -0700"
      },
      "message": "rcu: Make rcutree module parameters visible in sysfs\n\nThe module parameters blimit, qhimark, and qlomark (and more\nrecently, rcu_fanout_leaf) have permission masks of zero, so\nthat their values are not visible from sysfs.  This is unnecessary\nand inconvenient to administrators who might like an easy way to\nsee what these values are on a running system.  This commit therefore\nsets their permission masks to 0444, allowing them to be read but\nnot written.\n\nReported-by: Rusty Russell \u003crusty@ozlabs.org\u003e\nReported-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "d40011f601b450396104de42c631981502946cf0",
      "tree": "62205b755bca9391c6924764387d4417e91014d3",
      "parents": [
        "394f2769aa0dbcf027bae6fb52835e25e05d332e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jun 26 20:45:57 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:54 2012 -0700"
      },
      "message": "rcu: Control grace-period duration from sysfs\n\nAlthough almost everyone is well-served by the defaults, some uses of RCU\nbenefit from shorter grace periods, while others benefit more from the\ngreater efficiency provided by longer grace periods.  Situations requiring\na large number of grace periods to elapse (and wireshark startup has\nbeen called out as an example of this) are helped by lower-latency\ngrace periods.  Furthermore, in some embedded applications, people are\nwilling to accept a small degradation in update efficiency (due to there\nbeing more of the shorter grace-period operations) in order to gain the\nlower latency.\n\nIn contrast, those few systems with thousands of CPUs need longer grace\nperiods because the CPU overhead of a grace period rises roughly\nlinearly with the number of CPUs.  Such systems normally do not make\nmuch use of facilities that require large numbers of grace periods to\nelapse, so this is a good tradeoff.\n\nTherefore, this commit allows the durations to be controlled from sysfs.\nThere are two sysfs parameters, one named \"jiffies_till_first_fqs\" that\nspecifies the delay in jiffies from the end of grace-period initialization\nuntil the first attempt to force quiescent states, and the other named\n\"jiffies_till_next_fqs\" that specifies the delay (again in jiffies)\nbetween subsequent attempts to force quiescent states.  They both default\nto three jiffies, which is compatible with the old hard-coded behavior.\n\nAt some future time, it may be possible to automatically increase the\ngrace-period length with the number of CPUs, but we do not yet have\nsufficient data to do a good job.  Preliminary data indicates that we\nshould add an addiitonal jiffy to each of the delays for every 200 CPUs\nin the system, but more experimentation is needed.  For now, the number\nof systems with more than 1,000 CPUs is small enough that this can be\nrelegated to boot-time hand tuning.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "394f2769aa0dbcf027bae6fb52835e25e05d332e",
      "tree": "78471127d379e8d128d73e976ce33022c195b0c5",
      "parents": [
        "4605c0143c6d611b3076025ba3a7e04293c01d69"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 26 17:00:35 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:54 2012 -0700"
      },
      "message": "rcu: Prevent force_quiescent_state() memory contention\n\nLarge systems running RCU_FAST_NO_HZ kernels see extreme memory\ncontention on the rcu_state structure\u0027s -\u003efqslock field.  This\ncan be avoided by disabling RCU_FAST_NO_HZ, either at compile time\nor at boot time (via the nohz kernel boot parameter), but large\nsystems will no doubt become sensitive to energy consumption.\nThis commit therefore uses a combining-tree approach to spread the\nmemory contention across new cache lines in the leaf rcu_node structures.\nThis can be thought of as a tournament lock that has only a try-lock\nacquisition primitive.\n\nThe effect on small systems is minimal, because such systems have\nan rcu_node \"tree\" consisting of a single node.  In addition, this\nfunctionality is not used on fastpaths.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "4605c0143c6d611b3076025ba3a7e04293c01d69",
      "tree": "bbdc00cf1043729d07b7e228fd5581d992b17cd1",
      "parents": [
        "b4be093fee0200789df59b6c90e2d099a20f55b3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 26 14:00:48 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:54 2012 -0700"
      },
      "message": "rcu: Adjust debugfs tracing for kthread-based quiescent-state forcing\n\nMoving quiescent-state forcing into a kthread dispenses with the need\nfor the -\u003en_rp_need_fqs field, so this commit removes it.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "b4be093fee0200789df59b6c90e2d099a20f55b3",
      "tree": "5eb8367be67bde57671240bfeb149c4c670ffd1c",
      "parents": [
        "4cdfc175c25c89eedc08460b5e6239c2ec67fcb6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 25 08:41:11 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:54 2012 -0700"
      },
      "message": "rcu: Allow RCU quiescent-state forcing to be preempted\n\nRCU quiescent-state forcing is currently carried out without preemption\npoints, which can result in excessive latency spikes on large systems\n(many hundreds or thousands of CPUs).  This patch therefore inserts\na voluntary preemption point into force_qs_rnp(), which should greatly\nreduce the magnitude of these spikes.\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "4cdfc175c25c89eedc08460b5e6239c2ec67fcb6",
      "tree": "716acd208cb0633cdd19fc0cd5ad601906cceb24",
      "parents": [
        "b402b73b3afe3614bc0e921ebe18013ea103115a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jun 22 17:06:26 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:54 2012 -0700"
      },
      "message": "rcu: Move quiescent-state forcing into kthread\n\nAs the first step towards allowing quiescent-state forcing to be\npreemptible, this commit moves RCU quiescent-state forcing into the\nsame kthread that is now used to initialize and clean up after grace\nperiods.  This is yet another step towards keeping scheduling\nlatency down to a dull roar.\n\nUpdated to change from raw_spin_lock_irqsave() to raw_spin_lock_irq()\nand to remove the now-unused rcu_state structure fields as suggested by\nPeter Zijlstra.\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b402b73b3afe3614bc0e921ebe18013ea103115a",
      "tree": "d5f941ae2bbae05e496ff1b8415bffc30b6a80b8",
      "parents": [
        "b626c1b689364859ccd2e86d5e043aeadfeb2cd4"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Fri Jun 29 14:17:29 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:53 2012 -0700"
      },
      "message": "rcu: Segregate rcu_state fields to improve cache locality\n\nThe fields in the rcu_state structure that are protected by the\nroot rcu_node structure\u0027s -\u003elock can share a cache line with the\nfields protected by -\u003eonofflock.  This can result in excessive\nmemory contention on large systems, so this commit applies\n____cacheline_internodealigned_in_smp to the -\u003eonofflock field in\norder to segregate them.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "b626c1b689364859ccd2e86d5e043aeadfeb2cd4",
      "tree": "6a9deb7bd94a1bcf30b60ca0eb8c1d5f3a2b9172",
      "parents": [
        "bfa00b4c4028f39357d16279ff0fddf550241593"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jun 11 17:39:43 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:53 2012 -0700"
      },
      "message": "rcu: Provide OOM handler to motivate lazy RCU callbacks\n\nIn kernels built with CONFIG_RCU_FAST_NO_HZ\u003dy, CPUs can accumulate a\nlarge number of lazy callbacks, which as the name implies will be slow\nto be invoked.  This can be a problem on small-memory systems, where the\ndefault 6-second sleep for CPUs having only lazy RCU callbacks could well\nbe fatal.  This commit therefore installs an OOM hander that ensures that\nevery CPU with lazy callbacks has at least one non-lazy callback, in turn\nensuring timely advancement for these callbacks.\n\nUpdated to fix bug that disabled OOM killing, noted by Lai Jiangshan.\n\nUpdated to push the for_each_rcu_flavor() loop into rcu_oom_notify_cpu(),\nthus reducing the number of IPIs, as suggested by Steven Rostedt.  Also\nto make the for_each_online_cpu() loop be preemptible.  (Later, it might\nbe good to use smp_call_function(), as suggested by Peter Zijlstra.)\n\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: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "bfa00b4c4028f39357d16279ff0fddf550241593",
      "tree": "81f7ba2a050d2ddb033bf690ade41052a866d7fb",
      "parents": [
        "7fdefc10e1d730d4608cc59d386bc446f5b9ee99"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 21 09:54:10 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:53 2012 -0700"
      },
      "message": "rcu: Prevent offline CPUs from executing RCU core code\n\nEarlier versions of RCU invoked the RCU core from the CPU_DYING notifier\nin order to note a quiescent state for the outgoing CPU.  Because the\nCPU is marked \"offline\" during the execution of the CPU_DYING notifiers,\nthe RCU core had to tolerate being invoked from an offline CPU.  However,\ncommit b1420f1c (Make rcu_barrier() less disruptive) left only tracing\ncode in the CPU_DYING notifier, so the RCU core need no longer execute\non offline CPUs.  This commit therefore enforces this restriction.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "7fdefc10e1d730d4608cc59d386bc446f5b9ee99",
      "tree": "8365a35be3c92af654667a6ff8e73969abb1e000",
      "parents": [
        "c856bafae7f5b3f59ac1d99279a9b99b3b36ad12"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jun 22 11:08:41 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:53 2012 -0700"
      },
      "message": "rcu: Break up rcu_gp_kthread() into subfunctions\n\nThen rcu_gp_kthread() function is too large and furthermore needs to\nhave the force_quiescent_state() code pulled in.  This commit therefore\nbreaks up rcu_gp_kthread() into rcu_gp_init() and rcu_gp_cleanup().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c856bafae7f5b3f59ac1d99279a9b99b3b36ad12",
      "tree": "2bc16cb69d397440c5082fd451d64db6efa67017",
      "parents": [
        "cabc49c1ff51baaf1958d501a7a616ce91245c93"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 21 08:19:05 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:53 2012 -0700"
      },
      "message": "rcu: Allow RCU grace-period cleanup to be preempted\n\nRCU grace-period cleanup is currently carried out with interrupts\ndisabled, which can result in excessive latency spikes on large systems\n(many hundreds or thousands of CPUs).  This patch therefore makes the\nRCU grace-period cleanup be preemptible, including voluntary preemption\npoints, which should eliminate those latency spikes.  Similar spikes from\nforcing of quiescent states will be dealt with similarly by later patches.\n\nUpdated to replace uses of spin_lock_irqsave() with spin_lock_irq(), as\nsuggested by Peter Zijlstra.\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "cabc49c1ff51baaf1958d501a7a616ce91245c93",
      "tree": "9d99237196fb45d01b38fb9235815b32fd1995d7",
      "parents": [
        "755609a9087fa983f567dc5452b2fa7b089b591f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 20 17:07:14 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:52 2012 -0700"
      },
      "message": "rcu: Move RCU grace-period cleanup into kthread\n\nAs a first step towards allowing grace-period cleanup to be preemptible,\nthis commit moves the RCU grace-period cleanup into the same kthread\nthat is now used to initialize grace periods.  This is needed to keep\nscheduling latency down to a dull roar.\n\n[ paulmck: Get rid of stray spin_lock_irqsave() calls. ]\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "755609a9087fa983f567dc5452b2fa7b089b591f",
      "tree": "8a0687cae001206535a22223efb73884daedde30",
      "parents": [
        "79bce6724366b3827c5c673fb07d7063082873cf"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 19 17:18:20 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:52 2012 -0700"
      },
      "message": "rcu: Allow RCU grace-period initialization to be preempted\n\nRCU grace-period initialization is currently carried out with interrupts\ndisabled, which can result in 200-microsecond latency spikes on systems\non which RCU has been configured for 4096 CPUs.  This patch therefore\nmakes the RCU grace-period initialization be preemptible, which should\neliminate those latency spikes.  Similar spikes from grace-period cleanup\nand the forcing of quiescent states will be dealt with similarly by later\npatches.\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "79bce6724366b3827c5c673fb07d7063082873cf",
      "tree": "87b02ed03a42a194324e369152049246ceb091e2",
      "parents": [
        "b3dbec76e5334fbb063987dea14e7b255602d7e4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Sep 17 14:32:58 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:52 2012 -0700"
      },
      "message": "rcu: Prevent initialization-time quiescent-state race\n\nThe next step in reducing RCU\u0027s grace-period initialization latency on\nlarge systems will make this initialization preemptible.  Unfortunately,\nmaking the grace-period initialization subject to interrupts (let alone\npreemption) exposes the following race on systems whose rcu_node tree\ncontains more than one node:\n\n1.\tCPU 31 starts initializing the grace period, including the\n    \tfirst leaf rcu_node structures, and is then preempted.\n\n2.\tCPU 0 refers to the first leaf rcu_node structure, and notes\n    \tthat a new grace period has started.  It passes through a\n    \tquiescent state shortly thereafter, and informs the RCU core\n    \tof this rite of passage.\n\n3.\tCPU 0 enters an RCU read-side critical section, acquiring\n    \ta pointer to an RCU-protected data item.\n\n4.\tCPU 31 takes an interrupt whose handler removes the data item\n\treferenced by CPU 0 from the data structure, and registers an\n\tRCU callback in order to free it.\n\n5.\tCPU 31 resumes initializing the grace period, including its\n    \town rcu_node structure.  In invokes rcu_start_gp_per_cpu(),\n    \twhich advances all callbacks, including the one registered\n    \tin #4 above, to be handled by the current grace period.\n\n6.\tThe remaining CPUs pass through quiescent states and inform\n    \tthe RCU core, but CPU 0 remains in its RCU read-side critical\n    \tsection, still referencing the now-removed data item.\n\n7.\tThe grace period completes and all the callbacks are invoked,\n    \tincluding the one that frees the data item that CPU 0 is still\n    \treferencing.  Oops!!!\n\nOne way to avoid this race is to remove grace-period acceleration from\nrcu_start_gp_per_cpu().  Now, the only reason for this acceleration was\nto allow CPUs bringing RCU out of idle state to have their callbacks\ninvoked after only one grace period, rather than the two grace periods\nthat would otherwise be required.  But this acceleration does not\nwork when RCU grace-period initialization is moved to a kthread because\nthe CPU posting the callback is no longer necessarily the CPU that is\ninitializing the resulting grace period.\n\nThis commit therefore removes this now-pointless (and soon to be dangerous)\ngrace-period acceleration, thus avoiding the above race.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b3dbec76e5334fbb063987dea14e7b255602d7e4",
      "tree": "5b75e737856baf09b2303bebf7d9893b8279c84e",
      "parents": [
        "a10d206ef1a83121ab7430cb196e0376a7145b22"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 18 18:36:08 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:41:52 2012 -0700"
      },
      "message": "rcu: Move RCU grace-period initialization into a kthread\n\nAs the first step towards allowing grace-period initialization to be\npreemptible, this commit moves the RCU grace-period initialization\ninto its own kthread.  This is needed to keep large-system scheduling\nlatency at reasonable levels.\n\nAlso change raw_spin_lock_irqsave() to raw_spin_lock_irq() as suggested\nby Peter Zijlstra in review comments.\n\nReported-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nReported-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "a10d206ef1a83121ab7430cb196e0376a7145b22",
      "tree": "2d213786e6a3fcb1f597c0b05f879014791555bc",
      "parents": [
        "7ece55a4a3a04abe37118b1d4fb0b702eeb1de4c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sat Sep 22 13:55:30 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:31:52 2012 -0700"
      },
      "message": "rcu: Fix day-one dyntick-idle stall-warning bug\n\nEach grace period is supposed to have at least one callback waiting\nfor that grace period to complete.  However, if CONFIG_NO_HZ\u003dn, an\nextra callback-free grace period is no big problem -- it will chew up\na tiny bit of CPU time, but it will complete normally.  In contrast,\nCONFIG_NO_HZ\u003dy kernels have the potential for all the CPUs to go to\nsleep indefinitely, in turn indefinitely delaying completion of the\ncallback-free grace period.  Given that nothing is waiting on this grace\nperiod, this is also not a problem.\n\nThat is, unless RCU CPU stall warnings are also enabled, as they are\nin recent kernels.  In this case, if a CPU wakes up after at least one\nminute of inactivity, an RCU CPU stall warning will result.  The reason\nthat no one noticed until quite recently is that most systems have enough\nOS noise that they will never remain absolutely idle for a full minute.\nBut there are some embedded systems with cut-down userspace configurations\nthat consistently get into this situation.\n\nAll this begs the question of exactly how a callback-free grace period\ngets started in the first place.  This can happen due to the fact that\nCPUs do not necessarily agree on which grace period is in progress.\nIf a CPU still believes that the grace period that just completed is\nstill ongoing, it will believe that it has callbacks that need to wait for\nanother grace period, never mind the fact that the grace period that they\nwere waiting for just completed.  This CPU can therefore erroneously\ndecide to start a new grace period.  Note that this can happen in\nTREE_RCU and TREE_PREEMPT_RCU even on a single-CPU system:  Deadlock\nconsiderations mean that the CPU that detected the end of the grace\nperiod is not necessarily officially informed of this fact for some time.\n\nOnce this CPU notices that the earlier grace period completed, it will\ninvoke its callbacks.  It then won\u0027t have any callbacks left.  If no\nother CPU has any callbacks, we now have a callback-free grace period.\n\nThis commit therefore makes CPUs check more carefully before starting a\nnew grace period.  This new check relies on an array of tail pointers\ninto each CPU\u0027s list of callbacks.  If the CPU is up to date on which\ngrace periods have completed, it checks to see if any callbacks follow\nthe RCU_DONE_TAIL segment, otherwise it checks to see if any callbacks\nfollow the RCU_WAIT_TAIL segment.  The reason that this works is that\nthe RCU_WAIT_TAIL segment will be promoted to the RCU_DONE_TAIL segment\nas soon as the CPU is officially notified that the old grace period\nhas ended.\n\nThis change is to cpu_needs_another_gp(), which is called in a number\nof places.  The only one that really matters is in rcu_start_gp(), where\nthe root rcu_node structure\u0027s -\u003elock is held, which prevents any\nother CPU from starting or completing a grace period, so that the\ncomparison that determines whether the CPU is missing the completion\nof a grace period is stable.\n\nReported-by: Becky Bruce \u003cbgillbruce@gmail.com\u003e\nReported-by: Subodh Nijsure \u003csnijsure@grid-net.com\u003e\nReported-by: Paul Walmsley \u003cpaul@pwsan.com\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: Paul Walmsley \u003cpaul@pwsan.com\u003e  # OMAP3730, OMAP4430\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "519b3b742d7d29c3386f0f35f3cee5dd362dd8e2",
      "tree": "1be195c58ea6e209ddd1c1325e3c9d9565972f21",
      "parents": [
        "18f5600ba2629feca202a7d6387b9c32371af329",
        "ec145babe754f9ea1079034a108104b6001e001c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 21 14:25:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 21 14:25:46 2012 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fix from Ingo Molnar:\n \"One more timekeeping fix for v3.6\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  time: Fix timeekeping_get_ns overflow on 32bit systems\n"
    },
    {
      "commit": "c5c473e29c641380aef4a9d1f9c39de49219980f",
      "tree": "7cc1d52fa7757ecd0903fc6e86bb22188d2a8bbd",
      "parents": [
        "925a6f0bf8bd122d5d2429af7f0ca0fecf4ae71f",
        "6889125b8b4e09c5e53e6ecab3433bed1ce198c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 19 11:00:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 19 11:00:07 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue / powernow-k8 fix from Tejun Heo:\n \"This is the fix for the bug where cpufreq/powernow-k8 was tripping\n  BUG_ON() in try_to_wake_up_local() by migrating workqueue worker to a\n  different CPU.\n\n    https://bugzilla.kernel.org/show_bug.cgi?id\u003d47301\n\n  As discussed, the fix is now two parts - one to reimplement\n  work_on_cpu() so that it doesn\u0027t create a new kthread each time and\n  the actual fix which makes powernow-k8 use work_on_cpu() instead of\n  performing manual migration.\n\n  While pretty late in the merge cycle, both changes are on the safer\n  side.  Jiri and I verified two existing users of work_on_cpu() and\n  Duncan confirmed that the powernow-k8 fix survived about 18 hours of\n  testing.\"\n\n* \u0027for-3.6-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  cpufreq/powernow-k8: workqueue user shouldn\u0027t migrate the kworker to another CPU\n  workqueue: reimplement work_on_cpu() using system_wq\n"
    },
    {
      "commit": "ed48ece27cd3d5ee0354c32bbaec0f3e1d4715c3",
      "tree": "9ead3fba10ccd3118e6c4f38ed61cbf2bb2cbb3f",
      "parents": [
        "960bd11bf2daf669d0d910428fd9ef5a15c3d7cb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Sep 18 12:48:43 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 19 10:13:12 2012 -0700"
      },
      "message": "workqueue: reimplement work_on_cpu() using system_wq\n\nThe existing work_on_cpu() implementation is hugely inefficient.  It\ncreates a new kthread, execute that single function and then let the\nkthread die on each invocation.\n\nNow that system_wq can handle concurrent executions, there\u0027s no\nadvantage of doing this.  Reimplement work_on_cpu() using system_wq\nwhich makes it simpler and way more efficient.\n\nstable: While this isn\u0027t a fix in itself, it\u0027s needed to fix a\n        workqueue related bug in cpufreq/powernow-k8.  AFAICS, this\n        shouldn\u0027t break other existing users.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "d0616c1775035496fb355248d296fb16ea7fb235",
      "tree": "7a6cbefa1ba8ed3fd1e03d3267b196d074c47279",
      "parents": [
        "bea8f35421628266658c14ea990d18b0969c4c0b",
        "baedbf02b1912225d60dd7403acb4b4e003088b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Sep 19 17:03:07 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Sep 19 17:03:07 2012 +0200"
      },
      "message": "Merge branch \u0027uprobes/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core\n\nPull uprobes fixes + cleanups from Oleg Nesterov.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4651afbbae968772efd6dc4ba461cba9b49bb9d8",
      "tree": "486bfb263e8b7ad09c29db16f3d2925fc6c03555",
      "parents": [
        "08077ca849ced0306ce842ed597b0d80434a8bf0",
        "960bd11bf2daf669d0d910428fd9ef5a15c3d7cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 17 16:05:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 17 16:05:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull another workqueue fix from Tejun Heo:\n \"Unfortunately, yet another late fix.  This too is discovered and fixed\n  by Lai.  This bug was introduced during this merge window by commit\n  25511a477657 (\"workqueue: reimplement CPU online rebinding to handle\n  idle workers\") which started using WORKER_REBIND flag for idle rebind\n  too.\n\n  The bug is relatively easy to trigger if the CPU rapidly goes through\n  off, on and then off (and stay off).  The fix is on the safer side.\n  This hasn\u0027t been on linux-next yet but I\u0027m pushing early so that it\n  can get more exposure before v3.6 release.\"\n\n* \u0027for-3.6-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: always clear WORKER_REBIND in busy_worker_rebind_fn()\n"
    },
    {
      "commit": "960bd11bf2daf669d0d910428fd9ef5a15c3d7cb",
      "tree": "f2649d121f402be4a19a0432a1987615a2e45c09",
      "parents": [
        "ee378aa49b594da9bda6a2c768cc5b2ad585f911"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Sep 17 15:42:31 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Sep 17 15:42:31 2012 -0700"
      },
      "message": "workqueue: always clear WORKER_REBIND in busy_worker_rebind_fn()\n\nbusy_worker_rebind_fn() didn\u0027t clear WORKER_REBIND if rebinding failed\n(CPU is down again).  This used to be okay because the flag wasn\u0027t\nused for anything else.\n\nHowever, after 25511a477 \"workqueue: reimplement CPU online rebinding\nto handle idle workers\", WORKER_REBIND is also used to command idle\nworkers to rebind.  If not cleared, the worker may confuse the next\nCPU_UP cycle by having REBIND spuriously set or oops / get stuck by\nprematurely calling idle_worker_rebind().\n\n  WARNING: at /work/os/wq/kernel/workqueue.c:1323 worker_thread+0x4cd/0x5\n 00()\n  Hardware name: Bochs\n  Modules linked in: test_wq(O-)\n  Pid: 33, comm: kworker/1:1 Tainted: G           O 3.6.0-rc1-work+ #3\n  Call Trace:\n   [\u003cffffffff8109039f\u003e] warn_slowpath_common+0x7f/0xc0\n   [\u003cffffffff810903fa\u003e] warn_slowpath_null+0x1a/0x20\n   [\u003cffffffff810b3f1d\u003e] worker_thread+0x4cd/0x500\n   [\u003cffffffff810bc16e\u003e] kthread+0xbe/0xd0\n   [\u003cffffffff81bd2664\u003e] kernel_thread_helper+0x4/0x10\n  ---[ end trace e977cf20f4661968 ]---\n  BUG: unable to handle kernel NULL pointer dereference at           (null)\n  IP: [\u003cffffffff810b3db0\u003e] worker_thread+0x360/0x500\n  PGD 0\n  Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC\n  Modules linked in: test_wq(O-)\n  CPU 0\n  Pid: 33, comm: kworker/1:1 Tainted: G        W  O 3.6.0-rc1-work+ #3 Bochs Bochs\n  RIP: 0010:[\u003cffffffff810b3db0\u003e]  [\u003cffffffff810b3db0\u003e] worker_thread+0x360/0x500\n  RSP: 0018:ffff88001e1c9de0  EFLAGS: 00010086\n  RAX: 0000000000000000 RBX: ffff88001e633e00 RCX: 0000000000004140\n  RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000009\n  RBP: ffff88001e1c9ea0 R08: 0000000000000000 R09: 0000000000000001\n  R10: 0000000000000002 R11: 0000000000000000 R12: ffff88001fc8d580\n  R13: ffff88001fc8d590 R14: ffff88001e633e20 R15: ffff88001e1c6900\n  FS:  0000000000000000(0000) GS:ffff88001fc00000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n  CR2: 0000000000000000 CR3: 00000000130e8000 CR4: 00000000000006f0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n  Process kworker/1:1 (pid: 33, threadinfo ffff88001e1c8000, task ffff88001e1c6900)\n  Stack:\n   ffff880000000000 ffff88001e1c9e40 0000000000000001 ffff88001e1c8010\n   ffff88001e519c78 ffff88001e1c9e58 ffff88001e1c6900 ffff88001e1c6900\n   ffff88001e1c6900 ffff88001e1c6900 ffff88001fc8d340 ffff88001fc8d340\n  Call Trace:\n   [\u003cffffffff810bc16e\u003e] kthread+0xbe/0xd0\n   [\u003cffffffff81bd2664\u003e] kernel_thread_helper+0x4/0x10\n  Code: b1 00 f6 43 48 02 0f 85 91 01 00 00 48 8b 43 38 48 89 df 48 8b 00 48 89 45 90 e8 ac f0 ff ff 3c 01 0f 85 60 01 00 00 48 8b 53 50 \u003c8b\u003e 02 83 e8 01 85 c0 89 02 0f 84 3b 01 00 00 48 8b 43 38 48 8b\n  RIP  [\u003cffffffff810b3db0\u003e] worker_thread+0x360/0x500\n   RSP \u003cffff88001e1c9de0\u003e\n  CR2: 0000000000000000\n\nThere was no reason to keep WORKER_REBIND on failure in the first\nplace - WORKER_UNBOUND is guaranteed to be set in such cases\npreventing incorrectly activating concurrency management.  Always\nclear WORKER_REBIND.\n\ntj: Updated comment and description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "579035dc5ddd6d48fd8529e7358b03d911ab9d8a",
      "tree": "bd54e0a33715547454b241124258c0c3c0d2be5e",
      "parents": [
        "35c448a8a3471b95ebc0ebcf91eb1183401b4274"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Mon Sep 17 14:09:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 17 15:00:38 2012 -0700"
      },
      "message": "pid-namespace: limit value of ns_last_pid to (0, max_pid)\n\nThe kernel doesn\u0027t check the pid for negative values, so if you try to\nwrite -2 to /proc/sys/kernel/ns_last_pid, you will get a kernel panic.\n\nThe crash happens because the next pid is -1, and alloc_pidmap() will\ntry to access to a nonexistent pidmap.\n\n  map \u003d \u0026pid_ns-\u003epidmap[pid/BITS_PER_PAGE];\n\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37407ea7f93864c2cfc03edf8f37872ec539ea2b",
      "tree": "7c07e7adadd40fc94cebfe816f1c65a4a630b147",
      "parents": [
        "3f0c3c8fe30c725c1264fb6db8cc4b69db3a658a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 16 12:29:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 16 12:29:43 2012 -0700"
      },
      "message": "Revert \"sched: Improve scalability via \u0027CPU buddies\u0027, which withstand random perturbations\"\n\nThis reverts commit 970e178985cadbca660feb02f4d2ee3a09f7fdda.\n\nNikolay Ulyanitsky reported thatthe 3.6-rc5 kernel has a 15-20%\nperformance drop on PostgreSQL 9.2 on his machine (running \"pgbench\").\n\nBorislav Petkov was able to reproduce this, and bisected it to this\ncommit 970e178985ca (\"sched: Improve scalability via \u0027CPU buddies\u0027 ...\")\napparently because the new single-idle-buddy model simply doesn\u0027t find\nidle CPU\u0027s to reschedule on aggressively enough.\n\nMike Galbraith suspects that it is likely due to the user-mode spinlocks\nin PostgreSQL not reacting well to preemption, but we don\u0027t really know\nthe details - I\u0027ll just revert the commit for now.\n\nThere are hopefully other approaches to improve scheduler scalability\nwithout it causing these kinds of downsides.\n\nReported-by: Nikolay Ulyanitsky \u003clystor@gmail.com\u003e\nBisected-by: Borislav Petkov \u003cbp@alien8.de\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d778782266f95e5c6ec43ed8195ba331c821018",
      "tree": "99872945803a76d1ff9e438cf48864cd0a5d9bf4",
      "parents": [
        "499a4f3ec057a0f79636cc3c1e581bb6e977a30f"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Aug 07 18:12:28 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:28 2012 +0200"
      },
      "message": "uprobes: Introduce arch_uprobe_enable/disable_step()\n\nAs Oleg pointed out in [0] uprobe should not use the ptrace interface\nfor enabling/disabling single stepping.\n\n[0] http://lkml.kernel.org/r/20120730141638.GA5306@redhat.com\n\nAdd the new \"__weak arch\" helpers which simply call user_*_single_step()\nas a preparation. This is only needed to not break the powerpc port, we\nwill fold this logic into arch_uprobe_pre/post_xol() hooks later.\n\nWe should also change handle_singlestep(), _disable_step(\u0026uprobe-\u003earch)\nshould be called before put_uprobe().\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "499a4f3ec057a0f79636cc3c1e581bb6e977a30f",
      "tree": "6c24cbd3d9eeb3d1711da4b5aa114e6ff17955c9",
      "parents": [
        "9f68f672c47b9bd4cfe0a667ecb0b1382c61e2de"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Aug 19 17:41:34 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:27 2012 +0200"
      },
      "message": "uprobes: Teach find_active_uprobe() to clear MMF_HAS_UPROBES\n\nThe wrong MMF_HAS_UPROBES doesn\u0027t really hurt, just it triggers\nthe \"slow\" and unnecessary handle_swbp() path if the task hits\nthe non-uprobe breakpoint.\n\nSo this patch changes find_active_uprobe() to check every valid\nvma and clear MMF_HAS_UPROBES if no uprobes were found. This is\nadds the slow O(n) path, but it is only called in unlikely case\nwhen the task hits the normal breakpoint first time after\nuprobe_unregister().\n\nNote the \"not strictly accurate\" comment in mmf_recalc_uprobes().\nWe can fix this, we only need to teach vma_has_uprobes() to return\na bit more more info, but I am not sure this worth the trouble.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9f68f672c47b9bd4cfe0a667ecb0b1382c61e2de",
      "tree": "eb389851ce75fa15ad2b5e34c88d4c6af1fb197a",
      "parents": [
        "6f47caa0e1e4887aa2ddca8388d058d35725d815"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Aug 19 16:15:09 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:27 2012 +0200"
      },
      "message": "uprobes: Introduce MMF_RECALC_UPROBES\n\nAdd the new MMF_RECALC_UPROBES flag, it means that MMF_HAS_UPROBES\ncan be false positive after remove_breakpoint() or uprobe_munmap().\nIt is also set by uprobe_dup_mmap(), this is not optimal but simple.\nWe could add the new hook, uprobe_dup_vma(), to set MMF_HAS_UPROBES\nonly if the new mm actually has uprobes, but I don\u0027t think this\nmakes sense.\n\nThe next patch will use this flag to clear MMF_HAS_UPROBES.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6f47caa0e1e4887aa2ddca8388d058d35725d815",
      "tree": "2f88ea604c353b4a97006fbd220dceceb36e76f9",
      "parents": [
        "6d1d8dfa8b65831cfa9a528e3d17efa7e7f4226c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Aug 18 17:01:57 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:26 2012 +0200"
      },
      "message": "uprobes: uprobes_treelock should not disable irqs\n\nNobody plays with uprobes_tree/uprobes_treelock in interrupt context,\nno need to disable irqs.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6d1d8dfa8b65831cfa9a528e3d17efa7e7f4226c",
      "tree": "2e13b65228f1c879bee978acc35ec7f6755f7ba5",
      "parents": [
        "ded86e7c8fc4404414c4700010c9962ea8bd083a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Aug 30 19:26:22 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:34:05 2012 +0200"
      },
      "message": "uprobes: Don\u0027t put NULL pointer in uprobe_register()\n\nalloc_uprobe() might return a NULL pointer, put_uprobe() can\u0027t deal with\nthis.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "889cb3b9a4da012f8f8a336b050d7871d1f7383f",
      "tree": "e6d9a04aa86840e5367f69b6227b7e195f9bd132",
      "parents": [
        "7ef6e97380a1cb0f38cab795fe696f43c71d3ae9",
        "9450d57eab5cad36774c297da123062744472588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 14 17:44:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 14 17:44:52 2012 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar:\n \"Smaller fixlets\"\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Fix kernel-doc warnings in kernel/sched/fair.c\n  sched: Unthrottle rt runqueues in __disable_runtime()\n  sched: Add missing call to calc_load_exit_idle()\n  sched: Fix load avg vs cpu-hotplug\n"
    },
    {
      "commit": "7ef6e97380a1cb0f38cab795fe696f43c71d3ae9",
      "tree": "0557d01616fb4a41bfc98e6908ace912fa6d717c",
      "parents": [
        "7076cca9a700af5ccb0bd5eb7261dcfd7356dc5a",
        "e4390fa632d7c592e68e8106b7daea923ac995f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 14 17:43:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 14 17:43:45 2012 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"This tree includes various fixes\"\n\nIngo really needs to improve on the whole \"explain git pull\" part.\n\"Various fixes\" indeed.\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/hwpb: Invoke __perf_event_disable() if interrupts are already disabled\n  perf/x86: Enable Intel Cedarview Atom suppport\n  perf_event: Switch to internal refcount, fix race with close()\n  oprofile, s390: Fix uninitialized memory access when writing to oprofilefs\n  perf/x86: Fix microcode revision check for SNB-PEBS\n"
    },
    {
      "commit": "26f45274afd938d82463816a12ec67448513294a",
      "tree": "97c232667794b039a9ef3a2ab4444311fb44cbfd",
      "parents": [
        "4553f0b90e1fd93b95a97918804528d4039201fc",
        "c6aaf4d0bb86e2154ea31a33804cec300611255f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 14 10:06:51 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 14 10:06:51 2012 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n\nPull tracing updates from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c6aaf4d0bb86e2154ea31a33804cec300611255f",
      "tree": "34f973a7ee081daa773b8d4cea9cffaf28bf018a",
      "parents": [
        "47d5a5f88b9d25d6464c9b60c28f391e84e3ed65"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Wed Sep 05 23:31:25 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 13 22:52:11 2012 -0400"
      },
      "message": "kprobes/x86: Fix to support jprobes on ftrace-based kprobe\n\nFix kprobes/x86 to support jprobes on ftrace-based kprobes.\nBecause of -mfentry support of ftrace, ftrace is now put\non the beginning of function where jprobes are put.\n\nOriginally ftrace-based kprobes doesn\u0027t support jprobe\nbecause it will change regs-\u003eip and ftrace doesn\u0027t support\nchanging IP and ftrace itself doesn\u0027t conflict jprobe.\nHowever, ftrace -mfentry support moves mcount call on the\ntop of functions where jprobes are put. This means that\njprobe always conflicts with ftrace-based kprobe and fails.\n\nThis patch allows ftrace-based kprobes to support jprobes\nby allowing to modify regs-\u003eip and kprobes breakpoint\nhandler also allows to skip singlestepping because there\nis a ftrace call (not an original instruction).\n\nLink: http://lkml.kernel.org/r/20120905143125.10329.90836.stgit@localhost.localdomain\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ea632e9f12033346cc68247faa3b924d54936b8b",
      "tree": "b87fe48b7127a8d890ba7073fd460a1c99b0c831",
      "parents": [
        "76bab1b78ab6f25d5f74165f94526c25fc93d984"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Sun Sep 02 19:45:14 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 13 22:52:08 2012 -0400"
      },
      "message": "trace: Stop compiling in trace_clock unconditionally\n\nCommit 56449f437 \"tracing: make the trace clocks available generally\",\nin April 2009, made trace_clock available unconditionally, since\nCONFIG_X86_DS used it too.\n\nCommit faa4602e47 \"x86, perf, bts, mm: Delete the never used BTS-ptrace code\",\nin March 2010, removed CONFIG_X86_DS, and now only CONFIG_RING_BUFFER (split\nout from CONFIG_TRACING for general use) has a dependency on trace_clock. So,\nonly compile in trace_clock with CONFIG_RING_BUFFER or CONFIG_TRACING\nenabled.\n\nLink: http://lkml.kernel.org/r/20120903024513.GA19583@leaf\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "76bab1b78ab6f25d5f74165f94526c25fc93d984",
      "tree": "d6640f7bffa1fdeea0403b1c793a82fc880b9faa",
      "parents": [
        "d57c5d51a30152f3175d2344cb6395f08bf8ee0c"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yuanhan.liu@linux.intel.com",
        "time": "Mon Aug 27 15:13:45 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 13 22:52:07 2012 -0400"
      },
      "message": "tracing: Skip printing \"OK\" if failed to disable event\n\nNo acutal case found. But logically, we should skip \"OK\" in case any\nerror met.\n\nLink: http://lkml.kernel.org/r/1346051625-25231-1-git-send-email-yuanhan.liu@linux.intel.com\n\nSigned-off-by: Yuanhan Liu \u003cyuanhan.liu@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4fe84fb8c6b5081f7364af63aee8e118a665b966",
      "tree": "d82d2eef06ea39bc367da0d394235b92a00841b4",
      "parents": [
        "d094595078d00b63839d0c5ccb8b184ef242cb45"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Mon Sep 10 13:01:16 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 17:56:13 2012 +0200"
      },
      "message": "locking: Adjust spin lock inlining Kconfig options\n\nBreak out the DEBUG_SPINLOCK dependency (requires moving up\nUNINLINE_SPIN_UNLOCK, as this was the only one in that block not\ndepending on that option).\n\nAvoid putting values not selected into the resulting .config -\nthey are not useful for anything, make the output less legible,\nand just consume space: Use \"depends on\" rather than directly\nsetting the default from the combined dependency values.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/504DF2AC020000780009A2DF@nat28.tlf.novell.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ec145babe754f9ea1079034a108104b6001e001c",
      "tree": "2b65fdc6916989cacdc2bbcc94a48ef847eae099",
      "parents": [
        "0bd1189e239c76eb3a50e458548fbe7e4a5dfff1"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Sep 11 19:26:03 2012 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 17:39:14 2012 +0200"
      },
      "message": "time: Fix timeekeping_get_ns overflow on 32bit systems\n\nDaniel Lezcano reported seeing multi-second stalls from\nkeyboard input on his T61 laptop when NOHZ and CPU_IDLE\nwere enabled on a 32bit kernel.\n\nHe bisected the problem down to commit\n1e75fa8be9fb6 (\"time: Condense timekeeper.xtime into xtime_sec\").\n\nAfter reproducing this issue, I narrowed the problem down\nto the fact that timekeeping_get_ns() returns a 64bit\nnsec value that hasn\u0027t been accumulated. In some cases\nthis value was being then stored in timespec.tv_nsec\n(which is a long).\n\nOn 32bit systems, with idle times larger then 4 seconds\n(or less, depending on the value of xtime_nsec), the\nreturned nsec value would overflow 32bits. This limited\nkept time from increasing, causing timers to not expire.\n\nThe fix is to make sure we don\u0027t directly store the\nresult of timekeeping_get_ns() into a tv_nsec field,\ninstead using a 64bit nsec value which can then be\nadded into the timespec via timespec_add_ns().\n\nReported-and-bisected-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nTested-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nAcked-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1347405963-35715-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4553f0b90e1fd93b95a97918804528d4039201fc",
      "tree": "e17524a262d3e0708479ad35edb706c3e1af5415",
      "parents": [
        "be267be8b191d5fac9f65a29e047470f364315eb",
        "7ece55a4a3a04abe37118b1d4fb0b702eeb1de4c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 17:18:38 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 17:18:38 2012 +0200"
      },
      "message": "Merge branch \u0027core/rcu\u0027 into perf/core\n\nSteve Rostedt asked for the merge of a single commit, into both\nthe RCU and the perf/tracing tree:\n\n | Josh made a change to the tracing code that affects both the\n | work Paul McKenney and I are currently doing. At the last\n | Kernel Summit back in August, Linus said when such a case\n | exists, it is best to make a separate branch based off of his\n | tree and place the change there. This way, the repositories\n | that need to share the change can both pull them in and the\n | SHA1 will match for both. Whichever branch is pulled in first\n | by Linus will also pull in the necessary change for the other\n | branch as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d094595078d00b63839d0c5ccb8b184ef242cb45",
      "tree": "31929a5e414de13c0c4df46f3e1b3f276f0c58bf",
      "parents": [
        "0bd1189e239c76eb3a50e458548fbe7e4a5dfff1"
      ],
      "author": {
        "name": "Maarten Lankhorst",
        "email": "maarten.lankhorst@canonical.com",
        "time": "Thu Sep 13 11:39:51 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 17:00:44 2012 +0200"
      },
      "message": "lockdep: Check if nested lock is actually held\n\nIt is considered good form to lock the lock you claim to be nested in.\n\nSigned-off-by: Maarten Lankhorst \u003cmaarten.lankhorst@canonical.com\u003e\n\n[ removed nest_lock arg to print_lock_nested_lock_not_held in favour\n  of hlock-\u003enest_lock, also renamed the lock arg to hlock since its\n  a held_lock type ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/5051A9E7.5040501@canonical.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bc2a27cd27271c5257989a57f511be86b26f5e54",
      "tree": "0055b497c57cc65d38d2d178a474720448a413bb",
      "parents": [
        "c1cc017c59c44d9ede7003631c43adc0cfdce2f9"
      ],
      "author": {
        "name": "Vincent Guittot",
        "email": "vincent.guittot@linaro.org",
        "time": "Mon Jul 09 11:27:06 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:06 2012 +0200"
      },
      "message": "sched: cpu_power: enable ARCH_POWER\n\nHeteregeneous ARM platform uses arch_scale_freq_power function\nto reflect the relative capacity of each core\n\nSigned-off-by: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1341826026-6504-6-git-send-email-vincent.guittot@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c1cc017c59c44d9ede7003631c43adc0cfdce2f9",
      "tree": "7db4bad5a78af2bdc5197740012e462811422d40",
      "parents": [
        "08bedae1d0acd8c9baf514fb69fa199d0c8345f6"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Mon Sep 10 15:10:58 2012 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:05 2012 +0200"
      },
      "message": "sched/nohz: Clean up select_nohz_load_balancer()\n\nThere is no load_balancer to be selected now. It just sets the\nstate of the nohz tick to stop.\n\nSo rename the function, pass the \u0027cpu\u0027 as a parameter and then\nremove the useless call from tick_nohz_restart_sched_tick().\n\n[ s/set_nohz_tick_stopped/nohz_balance_enter_idle/g\n  s/clear_nohz_tick_stopped/nohz_balance_exit_idle/g ]\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1347261059-24747-1-git-send-email-alex.shi@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "08bedae1d0acd8c9baf514fb69fa199d0c8345f6",
      "tree": "82cda177bc9c52658d350c9686ea2b8b07b8ee5b",
      "parents": [
        "f3e947867478af9a12b9956bcd000ac7613a8a95"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 06 00:03:50 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:05 2012 +0200"
      },
      "message": "sched: Fix load avg vs. cpu-hotplug\n\nCommit f319da0c68 (\"sched: Fix load avg vs cpu-hotplug\") was an\nincomplete fix:\n\nIn particular, the problem is that at the point it calls\ncalc_load_migrate() nr_running :\u003d 1 (the stopper thread), so move the\ncall to CPU_DEAD where we\u0027re sure that nr_running :\u003d 0.\n\nAlso note that we can call calc_load_migrate() without serialization, we\nknow the state of rq is stable since its cpu is dead, and we modify the\nglobal state using appropriate atomic ops.\n\nSuggested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1346882630.2600.59.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f3e947867478af9a12b9956bcd000ac7613a8a95",
      "tree": "63fabb89439447e0f72c465e8b8d0852e9deff08",
      "parents": [
        "5ed4f1d96deee82ee92cd1ac1e0108c27e80e9b0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 12 11:22:00 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:04 2012 +0200"
      },
      "message": "sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nNow that the last architecture to use this has stopped doing so (ARM,\nthanks Catalin!) we can remove this complexity from the scheduler\ncore.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nLink: http://lkml.kernel.org/n/tip-g9p2a1w81xxbrze25v9zpzbf@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    }
  ],
  "next": "5ed4f1d96deee82ee92cd1ac1e0108c27e80e9b0"
}
