)]}'
{
  "log": [
    {
      "commit": "fa5058f3b63153e0147ef65bcdb3a4ee63581346",
      "tree": "d9d88284e22953fc8a175b334f1ead0c455e4cd1",
      "parents": [
        "b080935c8638e08134629d0a9ebdf35669bec14d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Oct 06 04:07:19 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 29 21:31:32 2012 +0100"
      },
      "message": "cputime: Specialize irq vtime hooks\n\nWith CONFIG_VIRT_CPU_ACCOUNTING, when vtime_account()\nis called in irq entry/exit, we perform a check on the\ncontext: if we are interrupting the idle task we\naccount the pending cputime to idle, otherwise account\nto system time or its sub-areas: tsk-\u003estime, hardirq time,\nsoftirq time, ...\n\nHowever this check for idle only concerns the hardirq entry\nand softirq entry:\n\n* Hardirq may directly interrupt the idle task, in which case\nwe need to flush the pending CPU time to idle.\n\n* The idle task may be directly interrupted by a softirq if\nit calls local_bh_enable(). There is probably no such call\nin any idle task but we need to cover every case. Ksoftirqd\nis not concerned because the idle time is flushed on context\nswitch and softirq in the end of hardirq have the idle time\nalready flushed from the hardirq entry.\n\nIn the other cases we always account to system/irq time:\n\n* On hardirq exit we account the time to hardirq time.\n* On softirq exit we account the time to softirq time.\n\nTo optimize this and avoid the indirect call to vtime_account()\nand the checks it performs, specialize the vtime irq APIs and\nonly perform the check on irq entry. Irq exit can directly call\nvtime_account_system().\n\nCONFIG_IRQ_TIME_ACCOUNTING behaviour doesn\u0027t change and directly\nmaps to its own vtime_account() implementation. One may want\nto take benefits from the new APIs to optimize irq time accounting\nas well in the future.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\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": "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": "3e339b5dae24a7065e196eb8d0145ab2f8cc2d2d",
      "tree": "4c538fa2a01dd3564bf7949c489ddad4d654e7a4",
      "parents": [
        "3180d89b47701072cf129f800a735baf3acdbb8a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 16 10:42:37 2012 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 13 17:01:07 2012 +0200"
      },
      "message": "softirq: Use hotplug thread infrastructure\n\n[ paulmck: Call rcu_note_context_switch() with interrupts enabled. ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20120716103948.456416747@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "907aed48f65efeecf91575397e3d79335d93a466",
      "tree": "8e06d29e71888f65a7217880c55472125d1b88d4",
      "parents": [
        "b37f1dd0f543d9714f96c2f9b9f74f7bdfdfdf31"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: allow PF_MEMALLOC from softirq context\n\nThis is needed to allow network softirq packet processing to make use of\nPF_MEMALLOC.\n\nCurrently softirq context cannot use PF_MEMALLOC due to it not being\nassociated with a task, and therefore not having task flags to fiddle with\n- thus the gfp to alloc flag mapping ignores the task flags when in\ninterrupts (hard or soft) context.\n\nAllowing softirqs to make use of PF_MEMALLOC therefore requires some\ntrickery.  This patch borrows the task flags from whatever process happens\nto be preempted by the softirq.  It then modifies the gfp to alloc flags\nmapping to not exclude task flags in softirq context, and modify the\nsoftirq code to save, clear and restore the PF_MEMALLOC flag.\n\nThe save and clear, ensures the preempted task\u0027s PF_MEMALLOC flag doesn\u0027t\nleak into the softirq.  The restore ensures a softirq\u0027s PF_MEMALLOC flag\ncannot leak back into the preempted process.  This should be safe due to\nthe following reasons\n\nSoftirqs can run on multiple CPUs sure but the same task should not be\n\texecuting the same softirq code. Neither should the softirq\n\thandler be preempted by any other softirq handler so the flags\n\tshould not leak to an unrelated softirq.\n\nSoftirqs re-enable hardware interrupts in __do_softirq() so can be\n\tpreempted by hardware interrupts so PF_MEMALLOC is inherited\n\tby the hard IRQ. However, this is similar to a process in\n\treclaim being preempted by a hardirq. While PF_MEMALLOC is\n\tset, gfp_to_alloc_flags() distinguishes between hard and\n\tsoft irqs and avoids giving a hardirq the ALLOC_NO_WATERMARKS\n\tflag.\n\nIf the softirq is deferred to ksoftirq then its flags may be used\n        instead of a normal tasks but as the softirq cannot be preempted,\n        the PF_MEMALLOC flag does not leak to other code by accident.\n\n[davem@davemloft.net: Document why PF_MEMALLOC is safe]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "161f7a7161191ab9c2e97f787829ef8dd2b95771",
      "tree": "9776d3f963c7f0d247b7fb324eab4811a1302f67",
      "parents": [
        "2ba68940c893c8f0bfc8573c041254251bb6aeab",
        "a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 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 for v3.4 from Ingo Molnar\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)\n  ntp: Fix integer overflow when setting time\n  math: Introduce div64_long\n  cs5535-clockevt: Allow the MFGPT IRQ to be shared\n  cs5535-clockevt: Don\u0027t ignore MFGPT on SMP-capable kernels\n  x86/time: Eliminate unused irq0_irqs counter\n  clocksource: scx200_hrt: Fix the build\n  x86/tsc: Reduce the TSC sync check time for core-siblings\n  timer: Fix bad idle check on irq entry\n  nohz: Remove ts-\u003eEinidle checks before restarting the tick\n  nohz: Remove update_ts_time_stat from tick_nohz_start_idle\n  clockevents: Leave the broadcast device in shutdown mode when not needed\n  clocksource: Load the ACPI PM clocksource asynchronously\n  clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz\n  clocksource: Get rid of clocksource_calc_mult_shift()\n  clocksource: dbx500: convert to clocksource_register_hz()\n  clocksource: scx200_hrt:  use pr_\u003clevel\u003e instead of printk\n  time: Move common updates to a function\n  time: Reorder so the hot data is together\n  time: Remove most of xtime_lock usage in timekeeping.c\n  ntp: Add ntp_lock to replace xtime_locking\n  ...\n"
    },
    {
      "commit": "2ba68940c893c8f0bfc8573c041254251bb6aeab",
      "tree": "fa83ebb01d32abd98123fa28f9f6f0b3eaeee25d",
      "parents": [
        "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
        "600e145882802d6ccbfe2c4aea243d97caeb91a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 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 for v3.4 from Ingo Molnar\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  printk: Make it compile with !CONFIG_PRINTK\n  sched/x86: Fix overflow in cyc2ns_offset\n  sched: Fix nohz load accounting -- again!\n  sched: Update yield() docs\n  printk/sched: Introduce special printk_sched() for those awkward moments\n  sched/nohz: Correctly initialize \u0027next_balance\u0027 in \u0027nohz\u0027 idle balancer\n  sched: Cleanup cpu_active madness\n  sched: Fix load-balance wreckage\n  sched: Clean up parameter passing of proc_sched_autogroup_set_nice()\n  sched: Ditch per cgroup task lists for load-balancing\n  sched: Rename load-balancing fields\n  sched: Move load-balancing arguments into helper struct\n  sched/rt: Do not submit new work when PI-blocked\n  sched/rt: Prevent idle task boosting\n  sched/wait: Add __wake_up_all_locked() API\n  sched/rt: Document scheduler related skip-resched-check sites\n  sched/rt: Use schedule_preempt_disabled()\n  sched/rt: Add schedule_preempt_disabled()\n  sched/rt: Do not throttle when PI boosting\n  sched/rt: Keep period timer ticking when rt throttling is active\n  ...\n"
    },
    {
      "commit": "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
      "tree": "0dbb83e57260ea7fc0dc421f214d5f1b26262005",
      "parents": [
        "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
        "bea95c152dee1791dd02cbc708afbb115bb00f9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 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 events changes for v3.4 from Ingo Molnar:\n\n - New \"hardware based branch profiling\" feature both on the kernel and\n   the tooling side, on CPUs that support it.  (modern x86 Intel CPUs\n   with the \u0027LBR\u0027 hardware feature currently.)\n\n   This new feature is basically a sophisticated \u0027magnifying glass\u0027 for\n   branch execution - something that is pretty difficult to extract from\n   regular, function histogram centric profiles.\n\n   The simplest mode is activated via \u0027perf record -b\u0027, and the result\n   looks like this in perf report:\n\n\t$ perf record -b any_call,u -e cycles:u branchy\n\n\t$ perf report -b --sort\u003dsymbol\n\t    52.34%  [.] main                   [.] f1\n\t    24.04%  [.] f1                     [.] f3\n\t    23.60%  [.] f1                     [.] f2\n\t     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow\n\t     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn\n\t     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul\n\t     0.01%  [k] __printf               [k] _IO_vfprintf_internal\n\t     0.01%  [k] main                   [k] __printf\n\n   This output shows from/to branch columns and shows the highest\n   percentage (from,to) jump combinations - i.e.  the most likely taken\n   branches in the system.  \"branches\" can also include function calls\n   and any other synchronous and asynchronous transitions of the\n   instruction pointer that are not \u0027next instruction\u0027 - such as system\n   calls, traps, interrupts, etc.\n\n   This feature comes with (hopefully intuitive) flat ascii and TUI\n   support in perf report.\n\n - Various \u0027perf annotate\u0027 visual improvements for us assembly junkies.\n   It will now recognize function calls in the TUI and by hitting enter\n   you can follow the call (recursively) and back, amongst other\n   improvements.\n\n - Multiple threads/processes recording support in perf record, perf\n   stat, perf top - which is activated via a comma-list of PIDs:\n\n\tperf top -p 21483,21485\n\tperf stat -p 21483,21485 -ddd\n\tperf record -p 21483,21485\n\n - Support for per UID views, via the --uid paramter to perf top, perf\n   report, etc.  For example \u0027perf top --uid mingo\u0027 will only show the\n   tasks that I am running, excluding other users, root, etc.\n\n - Jump label restructurings and improvements - this includes the\n   factoring out of the (hopefully much clearer) include/linux/static_key.h\n   generic facility:\n\n\tstruct static_key key \u003d STATIC_KEY_INIT_FALSE;\n\n\t...\n\n\tif (static_key_false(\u0026key))\n\t        do unlikely code\n\telse\n\t        do likely code\n\n\t...\n\tstatic_key_slow_inc();\n\t...\n\tstatic_key_slow_inc();\n\t...\n\n   The static_key_false() branch will be generated into the code with as\n   little impact to the likely code path as possible.  the\n   static_key_slow_*() APIs flip the branch via live kernel code patching.\n\n   This facility can now be used more widely within the kernel to\n   micro-optimize hot branches whose likelihood matches the static-key\n   usage and fast/slow cost patterns.\n\n - SW function tracer improvements: perf support and filtering support.\n\n - Various hardenings of the perf.data ABI, to make older perf.data\u0027s\n   smoother on newer tool versions, to make new features integrate more\n   smoothly, to support cross-endian recording/analyzing workflows\n   better, etc.\n\n - Restructuring of the kprobes code, the splitting out of \u0027optprobes\u0027,\n   and a corner case bugfix.\n\n - Allow the tracing of kernel console output (printk).\n\n - Improvements/fixes to user-space RDPMC support, allowing user-space\n   self-profiling code to extract PMU counts without performing any\n   system calls, while playing nice with the kernel side.\n\n - \u0027perf bench\u0027 improvements\n\n - ... and lots of internal restructurings, cleanups and fixes that made\n   these features possible.  And, as usual this list is incomplete as\n   there were also lots of other improvements\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)\n  perf report: Fix annotate double quit issue in branch view mode\n  perf report: Remove duplicate annotate choice in branch view mode\n  perf/x86: Prettify pmu config literals\n  perf report: Enable TUI in branch view mode\n  perf report: Auto-detect branch stack sampling mode\n  perf record: Add HEADER_BRANCH_STACK tag\n  perf record: Provide default branch stack sampling mode option\n  perf tools: Make perf able to read files from older ABIs\n  perf tools: Fix ABI compatibility bug in print_event_desc()\n  perf tools: Enable reading of perf.data files from different ABI rev\n  perf: Add ABI reference sizes\n  perf report: Add support for taken branch sampling\n  perf record: Add support for sampling taken branch\n  perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK\n  x86/kprobes: Split out optprobe related code to kprobes-opt.c\n  x86/kprobes: Fix a bug which can modify kernel code permanently\n  x86/kprobes: Fix instruction recovery on optimized path\n  perf: Add callback to flush branch_stack on context switch\n  perf: Disable PERF_SAMPLE_BRANCH_* when not supported\n  perf/x86: Add LBR software filter support for Intel CPUs\n  ...\n"
    },
    {
      "commit": "b2a00178614e2cdd981a708d22a05c1ce4eadfd7",
      "tree": "774ffcfab7e84497ae39ab8f944a1c19deccc46d",
      "parents": [
        "a09b659cd68c10ec6a30cb91ebd2c327fcd5bfe5"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Mar 05 15:07:25 2012 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 06 13:33:27 2012 +0100"
      },
      "message": "softirq: Reduce invoke_softirq() code duplication\n\nThe two invoke_softirq() variants are identical except for a single\nline. So move the #ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED inside one of\nthe functions and get rid of the other one.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ba74c1448f127649046615ec017bded7b2a76f29",
      "tree": "33eceaf0c4b35aca095e3e1a678bdbab23006650",
      "parents": [
        "bd2f55361f18347e890d52ff9cfd8895455ec11b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 21 13:32:17 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:28:04 2012 +0100"
      },
      "message": "sched/rt: Document scheduler related skip-resched-check sites\n\nCreate a distinction between scheduler related preempt_enable_no_resched()\ncalls and the nearly one hundred other places in the kernel that do not\nwant to reschedule, for one reason or another.\n\nThis distinction matters for -rt, where the scheduler and the non-scheduler\npreempt models (and checks) are different. For upstream it\u0027s purely\ndocumentational.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/n/tip-gs88fvx2mdv5psnzxnv575ke@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd2f55361f18347e890d52ff9cfd8895455ec11b",
      "tree": "5725e83f96934da2c2d741255db929df34f153eb",
      "parents": [
        "c5491ea779793f977d282754db478157cc409d82"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Mar 21 12:33:18 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:28:03 2012 +0100"
      },
      "message": "sched/rt: Use schedule_preempt_disabled()\n\nCoccinelle based conversion.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-24swm5zut3h9c4a6s46x8rws@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a8a2e78b7eece7c65884fcff9f98dc0fce89ee4",
      "tree": "db16568b94f11b2cdfe4aefab332b7ec4def5ee6",
      "parents": [
        "15f827be93928890bba965bc175caee50c4406d2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 24 18:59:44 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 15:23:09 2012 +0100"
      },
      "message": "timer: Fix bad idle check on irq entry\n\nidle_cpu() is called on irq entry to guess if we need to call\ntick_check_idle(). This way we can catch up with jiffies if the tick\nwas stopped, stop accounting idle time during the interrupt and\nmaintain the sched clock if it is unstable.\n\nBut if we are going to exit the idle loop to schedule a new task (ie:\nif we have a task in the runqueue or a remotely enqueued ttwu to\nperform), the idle_cpu() check will return 0 such that we miss the\ncall to tick_check_idle() for all interrupts happening before we\nschedule the new task.\n\nAs a result these interrupts and the softirqs coming along may deal\nwith stale jiffies values, bad sched clock values, and won\u0027t substract\ntheir time from the idle time accounting.\n\nFix this with using is_idle_task() instead that strictly checks that\nwe are running the idle task, without caring about the fact we are\ngoing to schedule a task soon.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nLink: http://lkml.kernel.org/r/1327427984-23282-3-git-send-email-fweisbec@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f069686e4bdc60a637d210ea3eea25fcdb82df88",
      "tree": "5a8f9fcafb2edaaf785c0b7f22d176b4cc87ea02",
      "parents": [
        "ac483c446b67870444c9eeaf8325d3d2af9b91bc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 25 20:18:55 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 03 09:48:19 2012 -0500"
      },
      "message": "tracing/softirq: Move __raise_softirq_irqoff() out of header\n\nThe __raise_softirq_irqoff() contains a tracepoint. As tracepoints in headers\ncan cause issues, and not to mention, bloats the kernel when they are\nin a static inline, it is best to move the function that contains the\ntracepoint out of the header and into softirq.c.\n\nLink: http://lkml.kernel.org/r/20120118120711.GB14863@elte.hu\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "416eb33cd60ef405e2860a186364e57bcb2d89f6",
      "tree": "c8c67e399b99246ce47a411b3518d4365f139606",
      "parents": [
        "98ad1cc14a5c4fd658f9d72c6ba5c86dfd3ce0d5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 07 16:31:02 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:38 2011 -0800"
      },
      "message": "rcu: Fix early call to rcu_idle_enter()\n\nOn the irq exit path, tick_nohz_irq_exit()\nmay raise a softirq, which action leads to the wake up\npath and select_task_rq_fair() that makes use of rcu\nto iterate the domains.\n\nThis is an illegal use of RCU because we may be in RCU\nextended quiescent state if we interrupted an RCU-idle\nwindow in the idle loop:\n\n[  132.978883] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  132.978883] [ INFO: suspicious RCU usage. ]\n[  132.978883] -------------------------------\n[  132.978883] kernel/sched_fair.c:1707 suspicious rcu_dereference_check() usage!\n[  132.978883]\n[  132.978883] other info that might help us debug this:\n[  132.978883]\n[  132.978883]\n[  132.978883] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[  132.978883] RCU used illegally from extended quiescent state!\n[  132.978883] 2 locks held by swapper/0:\n[  132.978883]  #0:  (\u0026p-\u003epi_lock){-.-.-.}, at: [\u003cffffffff8105a729\u003e] try_to_wake_up+0x39/0x2f0\n[  132.978883]  #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff8105556a\u003e] select_task_rq_fair+0x6a/0xec0\n[  132.978883]\n[  132.978883] stack backtrace:\n[  132.978883] Pid: 0, comm: swapper Tainted: G        W   3.0.0+ #178\n[  132.978883] Call Trace:\n[  132.978883]  \u003cIRQ\u003e  [\u003cffffffff810a01f6\u003e] lockdep_rcu_suspicious+0xe6/0x100\n[  132.978883]  [\u003cffffffff81055c49\u003e] select_task_rq_fair+0x749/0xec0\n[  132.978883]  [\u003cffffffff8105556a\u003e] ? select_task_rq_fair+0x6a/0xec0\n[  132.978883]  [\u003cffffffff812fe494\u003e] ? do_raw_spin_lock+0x54/0x150\n[  132.978883]  [\u003cffffffff810a1f2d\u003e] ? trace_hardirqs_on+0xd/0x10\n[  132.978883]  [\u003cffffffff8105a7c3\u003e] try_to_wake_up+0xd3/0x2f0\n[  132.978883]  [\u003cffffffff81094f98\u003e] ? ktime_get+0x68/0xf0\n[  132.978883]  [\u003cffffffff8105aa35\u003e] wake_up_process+0x15/0x20\n[  132.978883]  [\u003cffffffff81069dd5\u003e] raise_softirq_irqoff+0x65/0x110\n[  132.978883]  [\u003cffffffff8108eb65\u003e] __hrtimer_start_range_ns+0x415/0x5a0\n[  132.978883]  [\u003cffffffff812fe3ee\u003e] ? do_raw_spin_unlock+0x5e/0xb0\n[  132.978883]  [\u003cffffffff8108ed08\u003e] hrtimer_start+0x18/0x20\n[  132.978883]  [\u003cffffffff8109c9c3\u003e] tick_nohz_stop_sched_tick+0x393/0x450\n[  132.978883]  [\u003cffffffff810694f2\u003e] irq_exit+0xd2/0x100\n[  132.978883]  [\u003cffffffff81829e96\u003e] do_IRQ+0x66/0xe0\n[  132.978883]  [\u003cffffffff81820d53\u003e] common_interrupt+0x13/0x13\n[  132.978883]  \u003cEOI\u003e  [\u003cffffffff8103434b\u003e] ? native_safe_halt+0xb/0x10\n[  132.978883]  [\u003cffffffff810a1f2d\u003e] ? trace_hardirqs_on+0xd/0x10\n[  132.978883]  [\u003cffffffff810144ea\u003e] default_idle+0xba/0x370\n[  132.978883]  [\u003cffffffff810147fe\u003e] amd_e400_idle+0x5e/0x130\n[  132.978883]  [\u003cffffffff8100a9f6\u003e] cpu_idle+0xb6/0x120\n[  132.978883]  [\u003cffffffff817f217f\u003e] rest_init+0xef/0x150\n[  132.978883]  [\u003cffffffff817f20e2\u003e] ? rest_init+0x52/0x150\n[  132.978883]  [\u003cffffffff81ed9cf3\u003e] start_kernel+0x3da/0x3e5\n[  132.978883]  [\u003cffffffff81ed9346\u003e] x86_64_start_reservations+0x131/0x135\n[  132.978883]  [\u003cffffffff81ed944d\u003e] x86_64_start_kernel+0x103/0x112\n\nFix this by calling rcu_idle_enter() after tick_nohz_irq_exit().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "280f06774afedf849f0b34248ed6aff57d0f6908",
      "tree": "62ef683226d0569c0e6c3ba34ab2e6d85b2e047f",
      "parents": [
        "867f236bd12f5091df6dc7cc75f94d7fd982d78a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 07 18:22:06 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:35 2011 -0800"
      },
      "message": "nohz: Separate out irq exit and idle loop dyntick logic\n\nThe tick_nohz_stop_sched_tick() function, which tries to delay\nthe next timer tick as long as possible, can be called from two\nplaces:\n\n- From the idle loop to start the dytick idle mode\n- From interrupt exit if we have interrupted the dyntick\nidle mode, so that we reprogram the next tick event in\ncase the irq changed some internal state that requires this\naction.\n\nThere are only few minor differences between both that\nare handled by that function, driven by the ts-\u003einidle\ncpu variable and the inidle parameter. The whole guarantees\nthat we only update the dyntick mode on irq exit if we actually\ninterrupted the dyntick idle mode, and that we enter in RCU extended\nquiescent state from idle loop entry only.\n\nSplit this function into:\n\n- tick_nohz_idle_enter(), which sets ts-\u003einidle to 1, enters\ndynticks idle mode unconditionally if it can, and enters into RCU\nextended quiescent state.\n\n- tick_nohz_irq_exit() which only updates the dynticks idle mode\nwhen ts-\u003einidle is set (ie: if tick_nohz_idle_enter() has been called).\n\nTo maintain symmetry, tick_nohz_restart_sched_tick() has been renamed\ninto tick_nohz_idle_exit().\n\nThis simplifies the code and micro-optimize the irq exit path (no need\nfor local_irq_save there). This also prepares for the split between\ndynticks and rcu extended quiescent state logics. We\u0027ll need this split to\nfurther fix illegal uses of RCU in extended quiescent states in the idle\nloop.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "9984de1a5a8a96275fcab818f7419af5a3c86e71",
      "tree": "1935d411752707a1621c5caf64f75dfe105beb3a",
      "parents": [
        "7c77509c542927ee2a3c8812fad84957e51bf67d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon May 23 14:51:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Map most files to use export.h instead of module.h\n\nThe changed files were only including linux/module.h for the\nEXPORT_SYMBOL infrastructure, and nothing else.  Revector them\nonto the isolated export header for faster compile times.\n\nNothing to see here but a whole lot of instances of:\n\n  -#include \u003clinux/module.h\u003e\n  +#include \u003clinux/export.h\u003e\n\nThis commit is only changing the kernel dir; next targets\nwill probably be mm, fs, the arch dirs, etc.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "ec433f0c51527426989ea8a38a856d810d739414",
      "tree": "001550d7b18b3f2b5326da3f9dfd893e31c8dc1c",
      "parents": [
        "c5d753a55ac92e09816d410cd17093813f1a904b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:32:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:12 2011 -0700"
      },
      "message": "softirq,rcu: Inform RCU of irq_exit() activity\n\nThe rcu_read_unlock_special() function relies on in_irq() to exclude\nscheduler activity from interrupt level.  This fails because exit_irq()\ncan invoke the scheduler after clearing the preempt_count() bits that\nin_irq() uses to determine that it is at interrupt level.  This situation\ncan result in failures as follows:\n\n $task\t\t\tIRQ\t\tSoftIRQ\n\n rcu_read_lock()\n\n /* do stuff */\n\n \u003cpreempt\u003e |\u003d UNLOCK_BLOCKED\n\n rcu_read_unlock()\n   --t-\u003ercu_read_lock_nesting\n\n\t\t\tirq_enter();\n\t\t\t/* do stuff, don\u0027t use RCU */\n\t\t\tirq_exit();\n\t\t\t  sub_preempt_count(IRQ_EXIT_OFFSET);\n\t\t\t  invoke_softirq()\n\n\t\t\t\t\tttwu();\n\t\t\t\t\t  spin_lock_irq(\u0026pi-\u003elock)\n\t\t\t\t\t  rcu_read_lock();\n\t\t\t\t\t  /* do stuff */\n\t\t\t\t\t  rcu_read_unlock();\n\t\t\t\t\t    rcu_read_unlock_special()\n\t\t\t\t\t      rcu_report_exp_rnp()\n\t\t\t\t\t        ttwu()\n\t\t\t\t\t          spin_lock_irq(\u0026pi-\u003elock) /* deadlock */\n\n   rcu_read_unlock_special(t);\n\nEd can simply trigger this \u0027easy\u0027 because invoke_softirq() immediately\ndoes a ttwu() of ksoftirqd/# instead of doing the in-place softirq stuff\nfirst, but even without that the above happens.\n\nCure this by also excluding softirqs from the\nrcu_read_unlock_special() handler and ensuring the force_irqthreads\nksoftirqd/# wakeup is done from full softirq context.\n\n[ Alternatively, delaying the -\u003ercu_read_lock_nesting decrement\n  until after the special handling would make the thing more robust\n  in the face of interrupts as well.  And there is a separate patch\n  for that. ]\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "09223371deac67d08ca0b70bd18787920284c967",
      "tree": "0ad0354a93ac209c8cfd2b79d03d0462aa3c5c58",
      "parents": [
        "9a432736904d386cda28b987b38ba14dae960ecc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 14 13:26:25 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:39 2011 -0700"
      },
      "message": "rcu: Use softirq to address performance regression\n\nCommit a26ac2455ffcf3(rcu: move TREE_RCU from softirq to kthread)\nintroduced performance regression. In an AIM7 test, this commit degraded\nperformance by about 40%.\n\nThe commit runs rcu callbacks in a kthread instead of softirq. We observed\nhigh rate of context switch which is caused by this. Out test system has\n64 CPUs and HZ is 1000, so we saw more than 64k context switch per second\nwhich is caused by RCU\u0027s per-CPU kthread.  A trace showed that most of\nthe time the RCU per-CPU kthread doesn\u0027t actually handle any callbacks,\nbut instead just does a very small amount of work handling grace periods.\nThis means that RCU\u0027s per-CPU kthreads are making the scheduler do quite\na bit of work in order to allow a very small amount of RCU-related\nprocessing to be done.\n\nAlex Shi\u0027s analysis determined that this slowdown is due to lock\ncontention within the scheduler.  Unfortunately, as Peter Zijlstra points\nout, the scheduler\u0027s real-time semantics require global action, which\nmeans that this contention is inherent in real-time scheduling.  (Yes,\nperhaps someone will come up with a workaround -- otherwise, -rt is not\ngoing to do well on large SMP systems -- but this patch will work around\nthis issue in the meantime.  And \"the meantime\" might well be forever.)\n\nThis patch therefore re-introduces softirq processing to RCU, but only\nfor core RCU work.  RCU callbacks are still executed in kthread context,\nso that only a small amount of RCU work runs in softirq context in the\ncommon case.  This should minimize ksoftirqd execution, allowing us to\nskip boosting of ksoftirqd for CONFIG_RCU_BOOST\u003dy kernels.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nTested-by: \"Alex,Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a26ac2455ffcf3be5c6ef92bc6df7182700f2114",
      "tree": "601697c7c3fd152a1b3f29f43d3a028fc8fefd5f",
      "parents": [
        "12f5f524cafef3ab689929b118f2dfb8bf2be321"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Jan 12 14:10:23 2011 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 05 23:16:54 2011 -0700"
      },
      "message": "rcu: move TREE_RCU from softirq to kthread\n\nIf RCU priority boosting is to be meaningful, callback invocation must\nbe boosted in addition to preempted RCU readers.  Otherwise, in presence\nof CPU real-time threads, the grace period ends, but the callbacks don\u0027t\nget invoked.  If the callbacks don\u0027t get invoked, the associated memory\ndoesn\u0027t get freed, so the system is still subject to OOM.\n\nBut it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit\nmoves the callback invocations to a kthread, which can be boosted easily.\n\nAlso add comments and properly synchronized all accesses to\nrcu_cpu_kthread_task, as suggested by Lai Jiangshan.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "94dcf29a11b3d20a28790598d701f98484a969da",
      "tree": "21c65f6634dcde739bb85cbc019ee273f1427f90",
      "parents": [
        "207205a2ba2655652fe46a60b49838af6c16a919"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: use kthread_create_on_node()\n\nksoftirqd, kworker, migration, and pktgend kthreads can be created with\nkthread_create_on_node(), to get proper NUMA affinities for their stack and\ntask_struct.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f6fb45466b2273ffb91c9cf209f164f666c33b1",
      "tree": "2b19f24b678ae379be1b19338c3095c1f76ed41d",
      "parents": [
        "3904afb41d4316f7a2968c615d689e19149a4f84",
        "c0185808eb85139f45dbfd0de66963c498d0c4db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 19:23:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 19:23:40 2011 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (116 commits)\n  x86: Enable forced interrupt threading support\n  x86: Mark low level interrupts IRQF_NO_THREAD\n  x86: Use generic show_interrupts\n  x86: ioapic: Avoid redundant lookup of irq_cfg\n  x86: ioapic: Use new move_irq functions\n  x86: Use the proper accessors in fixup_irqs()\n  x86: ioapic: Use irq_data-\u003estate\n  x86: ioapic: Simplify irq chip and handler setup\n  x86: Cleanup the genirq name space\n  genirq: Add chip flag to force mask on suspend\n  genirq: Add desc-\u003eirq_data accessor\n  genirq: Add comments to Kconfig switches\n  genirq: Fixup fasteoi handler for oneshot mode\n  genirq: Provide forced interrupt threading\n  sched: Switch wait_task_inactive to schedule_hrtimeout()\n  genirq: Add IRQF_NO_THREAD\n  genirq: Allow shared oneshot interrupts\n  genirq: Prepare the handling of shared oneshot interrupts\n  genirq: Make warning in handle_percpu_event useful\n  x86: ioapic: Move trigger defines to io_apic.h\n  ...\n\nFix up trivial(?) conflicts in arch/x86/pci/xen.c due to genirq name\nspace changes clashing with the Xen cleanups.  The set_irq_msi() had\nmoved to xen_bind_pirq_msi_to_irq().\n"
    },
    {
      "commit": "8d32a307e4faa8b123dc8a9cd56d1a7525f69ad3",
      "tree": "50141928db9f0ac1377dd8bb355d600232d6b38c",
      "parents": [
        "8eb90c30e0e815a1308828352eabd03ca04229dd"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 23 23:52:23 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 26 11:57:18 2011 +0100"
      },
      "message": "genirq: Provide forced interrupt threading\n\nAdd a commandline parameter \"threadirqs\" which forces all interrupts except\nthose marked IRQF_NO_THREAD to run threaded. That\u0027s mostly a debug option to\nallow retrieving better debug data from crashing interrupt handlers. If\n\"threadirqs\" is not enabled on the kernel command line, then there is no\nimpact in the interrupt hotpath.\n\nArchitecture code needs to select CONFIG_IRQ_FORCED_THREADING after\nmarking the interrupts which cant be threaded IRQF_NO_THREAD. All\ninterrupts which have IRQF_TIMER set are implict marked\nIRQF_NO_THREAD. Also all PER_CPU interrupts are excluded.\n\nForced threading hard interrupts also forces all soft interrupt\nhandling into thread context.\n\nWhen enabled it might slow down things a bit, but for debugging problems in\ninterrupt code it\u0027s a reasonable penalty as it does not immediately\ncrash and burn the machine when an interrupt handler is buggy.\n\nSome test results on a Core2Duo machine:\n\nCache cold run of:\n # time git grep irq_desc\n\n      non-threaded       threaded\n real 1m18.741s          1m19.061s\n user 0m1.874s           0m1.757s\n sys  0m5.843s           0m5.427s\n\n # iperf -c server\nnon-threaded\n[  3]  0.0-10.0 sec  1.09 GBytes   933 Mbits/sec\n[  3]  0.0-10.0 sec  1.09 GBytes   934 Mbits/sec\n[  3]  0.0-10.0 sec  1.09 GBytes   933 Mbits/sec\nthreaded\n[  3]  0.0-10.0 sec  1.09 GBytes   939 Mbits/sec\n[  3]  0.0-10.0 sec  1.09 GBytes   934 Mbits/sec\n[  3]  0.0-10.0 sec  1.09 GBytes   937 Mbits/sec\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20110223234956.772668648@linutronix.de\u003e\n"
    },
    {
      "commit": "c305d524e5dd3c3c7a6035083e30950bea1b52dc",
      "tree": "2929186dfc8b0f1094375873231809768d1ac385",
      "parents": [
        "c9a443cdf7726ce8b78c3177c6ae601ce37292fc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 17:10:48 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 19:37:12 2011 +0100"
      },
      "message": "softirq: Avoid stack switch from ksoftirqd\n\nksoftirqd() calls do_softirq() which switches stacks on several\narchitectures. That makes no sense at all. ksoftirqd\u0027s stack is\nsufficient.\n\nCall __do_softirq() directly.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1102021704530.31804@localhost6.localdomain6\u003e\n"
    },
    {
      "commit": "4dd53d891ca46dcc1fde0376a33540d3fd83cb9a",
      "tree": "9a6c242176f196c062ae76c50b0f321251900b5a",
      "parents": [
        "f07333bf6ee66d9b49286cec4371cf375e745b7a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Tue Dec 21 17:09:00 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:20 2011 +0100"
      },
      "message": "softirqs: Free up pf flag PF_KSOFTIRQD\n\nCleanup patch, freeing up PF_KSOFTIRQD and use per_cpu ksoftirqd pointer\ninstead, as suggested by Eric Dumazet.\n\nTested-by: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1292980144-28796-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "351f8f8e6499ae4fff40f5e3a8fe16d9e1903646",
      "tree": "9393c8d3a6a1eaa9dba50932eb6de3017a8afe86",
      "parents": [
        "b8cb464e4a8abc60ad5a43e0375fec8a3c728167"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed Jan 12 16:59:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:08 2011 -0800"
      },
      "message": "kernel: clean up USE_GENERIC_SMP_HELPERS\n\nFor arch which needs USE_GENERIC_SMP_HELPERS, it has to select\nUSE_GENERIC_SMP_HELPERS, rather than leaving a choice to user, since they\ndon\u0027t provide their own implementions.\n\nAlso, move on_each_cpu() to kernel/smp.c, it is strange to put it in\nkernel/softirq.c.\n\nFor arch which doesn\u0027t use USE_GENERIC_SMP_HELPERS, e.g.  blackfin, only\non_each_cpu() is compiled.\n\nSigned-off-by: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "c9b5f501ef1580faa30c40c644b7691870462201",
      "tree": "d22df12b72bc90b130254078ee71b1b7e7e3e521",
      "parents": [
        "524429c31b486c05449666b94613f59f729c0a84"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 07 13:41:40 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 07 15:55:45 2011 +0100"
      },
      "message": "sched: Constify function scope static struct sched_param usage\n\nFunction-scope statics are discouraged because they are\neasily overlooked and can cause subtle bugs/races due to\ntheir global (non-SMP safe) nature.\n\nLinus noticed that we did this for sched_param - at minimum\nmake the const.\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: Message-ID: \u003cAANLkTinotRxScOHEb0HgFgSpGPkq_6jKTv5CfvnQM\u003dee@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "909ea96468096b07fbb41aaf69be060d92bd9271",
      "tree": "a7e015edd96b5f674874fe78cdd889769e130a2a",
      "parents": [
        "780f36d8b3fa9572f731d4fb85067b2e45e6f993"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Dec 08 16:22:55 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:19 2010 +0100"
      },
      "message": "core: Replace __get_cpu_var with __this_cpu_read if not used for an address.\n\n__get_cpu_var() can be replaced with this_cpu_read and will then use a\nsingle read instruction with implied address calculation to access the\ncorrect per cpu instance.\n\nHowever, the address of a per cpu variable passed to __this_cpu_read()\ncannot be determined (since it\u0027s an implied address conversion through\nsegment prefixes).  Therefore apply this only to uses of __get_cpu_var\nwhere the address of the variable is not used.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "92fd4d4d67b945c0766416284d4ab236b31542c4",
      "tree": "00b8b5f90748f752ccaba3dddbe271091d93543a",
      "parents": [
        "fe7de49f9d4e53f24ec9ef762a503f70b562341c",
        "e53beacd23d9cb47590da6a7a7f6d417b941a994"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:22:14 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:22:26 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.37-rc2\u0027 into sched/core\n\nMerge reason: Move to a .37-rc base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a042e26137d7674ac04b1cd2d5c06b9ebc1ee2d5",
      "tree": "c1a7a8bda41b99caa4b4a0fe320fc73278879f7d",
      "parents": [
        "f66dd539feb849a3a00f7fac67c026e0935e373a",
        "e25804a0327dad954f7d43803178fdef2fd35b4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)\n  perf python scripting: Add futex-contention script\n  perf python scripting: Fixup cut\u0027n\u0027paste error in sctop script\n  perf scripting: Shut up \u0027perf record\u0027 final status\n  perf record: Remove newline character from perror() argument\n  perf python scripting: Support fedora 11 (audit 1.7.17)\n  perf python scripting: Improve the syscalls-by-pid script\n  perf python scripting: print the syscall name on sctop\n  perf python scripting: Improve the syscalls-counts script\n  perf python scripting: Improve the failed-syscalls-by-pid script\n  kprobes: Remove redundant text_mutex lock in optimize\n  x86/oprofile: Fix uninitialized variable use in debug printk\n  tracing: Fix \u0027faild\u0027 -\u003e \u0027failed\u0027 typo\n  perf probe: Fix format specified for Dwarf_Off parameter\n  perf trace: Fix detection of script extension\n  perf trace: Use $PERF_EXEC_PATH in canned report scripts\n  perf tools: Document event modifiers\n  perf tools: Remove direct slang.h include\n  perf_events: Fix for transaction recovery in group_sched_in()\n  perf_events: Revert: Fix transaction recovery in group_sched_in()\n  perf, x86: Use NUMA aware allocations for PEBS/BTS/DS allocations\n  ...\n"
    },
    {
      "commit": "b8ecad8b2f8757d51632b1ea6d602c1f7b9760a2",
      "tree": "5a03029dbf02df606fa48a82525eb321e59b5c33",
      "parents": [
        "eea4a0b19a2719e3e23b5450dd9fbe97789d2a57",
        "8bfb5e7d6a14b29cffddd113f4b0be7d9aafc1e8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 23 20:05:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 23 20:05:43 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/urgent\n"
    },
    {
      "commit": "fe7de49f9d4e53f24ec9ef762a503f70b562341c",
      "tree": "766b012c7199f12625bc909748175d9e37b0b87d",
      "parents": [
        "d4429f608abde89e8bc1e24b43cd503feb95c496"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Oct 20 16:01:12 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 23 17:56:48 2010 +0200"
      },
      "message": "sched: Make sched_param argument static in sched_setscheduler() callers\n\nAndrew Morton pointed out almost all sched_setscheduler() callers are\nusing fixed parameters and can be converted to static.  It reduces runtime\nmemory use a little.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02f36038c568111ad4fc433f6fa760ff5e38fab4",
      "tree": "78e6ef15798c6e9d1052eab7f7d3a0db0ec908e5",
      "parents": [
        "6c2754c28f2388a276fe21edde826f2113c8f60e",
        "676cb02dc32adef13d9efb5ea52079e4ede1e3ec",
        "07bd8516a2f967aa67904c68ab97bb896a448b09",
        "50f2d7f682f9c0ed58191d0982fe77888d59d162",
        "892df7f81c31ce7f85778aa78094e8d1f19b8413",
        "68f4d5a00adaab33b136fce2c72d5c377b39b0b0",
        "b365a85c68161ea5db5476eb8845a91ceb1777ea",
        "6554287b1de0448f1e02e200d02b43914e997d15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "message": "Merge branches \u0027softirq-for-linus\u0027, \u0027x86-debug-for-linus\u0027, \u0027x86-numa-for-linus\u0027, \u0027x86-quirks-for-linus\u0027, \u0027x86-setup-for-linus\u0027, \u0027x86-uv-for-linus\u0027 and \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027softirq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softirqs: Make wakeup_softirqd static\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, asm: Restore parentheses around one pushl_cfi argument\n  x86, asm: Fix ancient-GAS workaround\n  x86, asm: Fix CFI macro invocations to deal with shortcomings in gas\n\n* \u0027x86-numa-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, numa: Assign CPUs to nodes in round-robin manner on fake NUMA\n\n* \u0027x86-quirks-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: HPET force enable for CX700 / VIA Epia LT\n\n* \u0027x86-setup-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, setup: Use string copy operation to optimze copy in kernel compression\n\n* \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, UV: Use allocated buffer in tlb_uv.c:tunables_read()\n\n* \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers.\n"
    },
    {
      "commit": "4a60cfa9457749f7987fd4f3c956dbba5a281129",
      "tree": "85f3633276282cde0a3ac558d988704eaa3e68af",
      "parents": [
        "62bea97f54d806218a992b18d1f425cfb5060175",
        "27afdf2008da0b8878a73e32e4eb12381b84e224"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (96 commits)\n  apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets\n  apic, x86: Check if EILVT APIC registers are available (AMD only)\n  x86: ioapic: Call free_irte only if interrupt remapping enabled\n  arm: Use ARCH_IRQ_INIT_FLAGS\n  genirq, ARM: Fix boot on ARM platforms\n  genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED\u003dy build\n  x86: Switch sparse_irq allocations to GFP_KERNEL\n  genirq: Switch sparse_irq allocator to GFP_KERNEL\n  genirq: Make sparse_lock a mutex\n  x86: lguest: Use new irq allocator\n  genirq: Remove the now unused sparse irq leftovers\n  genirq: Sanitize dynamic irq handling\n  genirq: Remove arch_init_chip_data()\n  x86: xen: Sanitise sparse_irq handling\n  x86: Use sane enumeration\n  x86: uv: Clean up the direct access to irq_desc\n  x86: Make io_apic.c local functions static\n  genirq: Remove irq_2_iommu\n  x86: Speed up the irq_remapped check in hot pathes\n  intr_remap: Simplify the code further\n  ...\n\nFix up trivial conflicts in arch/x86/Kconfig\n"
    },
    {
      "commit": "f4bc6bb2d562703eafc895c37e7be20906de139d",
      "tree": "e80d4ed1bc925a2236773eff7d68163c534efea3",
      "parents": [
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 19 15:00:13 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 21 16:50:29 2010 +0200"
      },
      "message": "tracing: Cleanup the convoluted softirq tracepoints\n\nWith the addition of trace_softirq_raise() the softirq tracepoint got\neven more convoluted. Why the tracepoints take two pointers to assign\nan integer is beyond my comprehension.\n\nBut adding an extra case which treats the first pointer as an unsigned\nlong when the second pointer is NULL including the back and forth\ntype casting is just horrible.\n\nConvert the softirq tracepoints to take a single unsigned int argument\nfor the softirq vector number and fix the call sites.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1010191428560.6815@localhost6.localdomain6\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: mathieu.desnoyers@efficios.com\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n\n"
    },
    {
      "commit": "d267f87fb8179c6dba03d08b91952e81bc3723c7",
      "tree": "ddcd2f7429964367fcb4ab1dd230a970452d72da",
      "parents": [
        "aa483808516ca5cacfa0e5849691f64fec25828e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:29 2010 +0200"
      },
      "message": "sched: Call tick_check_idle before __irq_enter\n\nWhen CPU is idle and on first interrupt, irq_enter calls tick_check_idle()\nto notify interruption from idle. But, there is a problem if this call\nis done after __irq_enter, as all routines in __irq_enter may find\nstale time due to yet to be done tick_check_idle.\n\nSpecifically, trace calls in __irq_enter when they use global clock and also\naccount_system_vtime change in this patch as it wants to use sched_clock_cpu()\nto do proper irq timing.\n\nBut, tick_check_idle was moved after __irq_enter intentionally to\nprevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a:\n\n    irq: call __irq_enter() before calling the tick_idle_check\n    Impact: avoid spurious ksoftirqd wakeups\n\nMoving tick_check_idle() before __irq_enter and wrapping it with\nlocal_bh_enable/disable would solve both the problems.\n\nFixed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-9-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6cdd5199daf0cb7b0fcc8dca941af08492612887",
      "tree": "ad9d632d5731a64d0b1ab6410557415480ffcbfd",
      "parents": [
        "e1e10a265d28273ab8c70be19d43dcbdeead6c5a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:18 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:22 2010 +0200"
      },
      "message": "sched: Add a PF flag for ksoftirqd identification\n\nTo account softirq time cleanly in scheduler, we need to identify whether\nsoftirq is invoked in ksoftirqd context or softirq at hardirq tail context.\nAdd PF_KSOFTIRQD for that purpose.\n\nAs all PF flag bits are currently taken, create space by moving one of the\ninfrequently used bits (PF_THREAD_BOUND) down in task_struct to be along\nwith some other state fields.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-4-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75e1056f5c57050415b64cb761a3acc35d91f013",
      "tree": "e7cd483e38f9bf9131a3b212301a009890b8de49",
      "parents": [
        "75dd321d79d495a0ee579e6249ebc38ddbb2667f"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:16 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:20 2010 +0200"
      },
      "message": "sched: Fix softirq time accounting\n\nPeter Zijlstra found a bug in the way softirq time is accounted in\nVIRT_CPU_ACCOUNTING on this thread:\n\n   http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html\n\nThe problem is, softirq processing uses local_bh_disable internally. There\nis no way, later in the flow, to differentiate between whether softirq is\nbeing processed or is it just that bh has been disabled. So, a hardirq when bh\nis disabled results in time being wrongly accounted as softirq.\n\nLooking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING\nas well. As account_system_time() in normal tick based accouting also uses\nsoftirq_count, which will be set even when not in softirq with bh disabled.\n\nPeter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count\nfor local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq\nprocessing. The patch below does that and adds API in_serving_softirq() which\nreturns whether we are currently processing softirq or not.\n\nAlso changes one of the usages of softirq_count in net/sched/cls_cgroup.c\nto in_serving_softirq.\n\nLooks like many usages of in_softirq really want in_serving_softirq. Those\nchanges can be made individually on a case by case basis.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b7d0d8258a9f71949b810e0f82a3d75088f4d364",
      "tree": "1e37a6d3e89816abab898e3646a4e23eeb457021",
      "parents": [
        "77dff1c755c3218691e95e7e38ee14323b35dbdb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 29 18:44:23 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:53:44 2010 +0200"
      },
      "message": "genirq: Remove arch_init_chip_data()\n\nThis function should have not been there in the first place.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b683de2b3cb17bb10fa6fd4af614dc75b5749fe0",
      "tree": "e1a799293b218f5c13d4903c57fab144b2f433b3",
      "parents": [
        "aa99ec0f3f26bf2bcd0fa5176de93598427f1e5e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 27 20:55:03 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 16:39:08 2010 +0200"
      },
      "message": "genirq: Query arch for number of early descriptors\n\nsparse irq sets up NR_IRQS_LEGACY irq descriptors and archs then go\nahead and allocate more.\n\nUse the unused return value of arch_probe_nr_irqs() to let the\narchitecture return the number of early allocations. Fix up all users.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "676cb02dc32adef13d9efb5ea52079e4ede1e3ec",
      "tree": "17e394a2ee1353779922fde0470fdacdd66b446c",
      "parents": [
        "b30a3f6257ed2105259b404d419b4964e363928c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 20 23:33:49 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 22 10:15:42 2010 +0200"
      },
      "message": "softirqs: Make wakeup_softirqd static\n\nNo users outside of kernel/softirq.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9e506f7adce8e6165a104d3d78fddd8ff0cdccf8",
      "tree": "9ddfd67eec7e8a7dc73fb0ced97cc06e54a35c63",
      "parents": [
        "94b3dd0f7bb393d93e84a173b1df9b8b64c83ac4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Jun 04 14:15:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "kernel/: fix BUG_ON checks for cpu notifier callbacks direct call\n\nThe commit 80b5184cc537718122e036afe7e62d202b70d077 (\"kernel/: convert cpu\nnotifier to return encapsulate errno value\") changed the return value of\ncpu notifier callbacks.\n\nThose callbacks don\u0027t return NOTIFY_BAD on failures anymore.  But there\nare a few callbacks which are called directly at init time and checking\nthe return value.\n\nI forgot to change BUG_ON checking by the direct callers in the commit.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80b5184cc537718122e036afe7e62d202b70d077",
      "tree": "d4e2b400f0e951156d64d546fd563fa5a8ab02d3",
      "parents": [
        "ad84bb5b98bf81deae97e3bcd814675d6b4e6f72"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "kernel/: convert cpu notifier to return encapsulate errno value\n\nBy the previous modification, the cpu notifier can return encapsulate\nerrno value.  This converts the cpu notifiers for kernel/*.c\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25502a6c13745f4650cc59322bd198194f55e796",
      "tree": "d76cc659d3ea797c5da4630e219ac363d17c44a6",
      "parents": [
        "99652b54de1ee094236f7171485214071af4ef31"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Apr 01 17:37:01 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:33 2010 -0700"
      },
      "message": "rcu: refactor RCU\u0027s context-switch handling\n\nThe addition of preemptible RCU to treercu resulted in a bit of\nconfusion and inefficiency surrounding the handling of context switches\nfor RCU-sched and for RCU-preempt.  For RCU-sched, a context switch\nis a quiescent state, pure and simple, just like it always has been.\nFor RCU-preempt, a context switch is in no way a quiescent state, but\nspecial handling is required when a task blocks in an RCU read-side\ncritical section.\n\nHowever, the callout from the scheduler and the outer loop in ksoftirqd\nstill calls something named rcu_sched_qs(), whose name is no longer\naccurate.  Furthermore, when rcu_check_callbacks() notes an RCU-sched\nquiescent state, it ends up unnecessarily (though harmlessly, aside\nfrom the performance hit) enqueuing the current task if it happens to\nbe running in an RCU-preempt read-side critical section.  This not only\nincreases the maximum latency of scheduler_tick(), it also needlessly\nincreases the overhead of the next outermost rcu_read_unlock() invocation.\n\nThis patch addresses this situation by separating the notion of RCU\u0027s\ncontext-switch handling from that of RCU-sched\u0027s quiescent states.\nThe context-switch handling is covered by rcu_note_context_switch() in\ngeneral and by rcu_preempt_note_context_switch() for preemptible RCU.\nThis permits rcu_sched_qs() to handle quiescent states and only quiescent\nstates.  It also reduces the maximum latency of scheduler_tick(), though\nprobably by much less than a microsecond.  Finally, it means that tasks\nwithin preemptible-RCU read-side critical sections avoid incurring the\noverhead of queuing unless there really is a context switch.\n\nSuggested-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "b9c3032277f756e73f6c673419dc414155e04e46",
      "tree": "1727289fff4ea4fdcd93658d07e20ab53b55af96",
      "parents": [
        "c80d292f137275a1ed88e6ed515ecb457051f1a4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 03 18:08:52 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 03 18:17:40 2010 +0100"
      },
      "message": "hrtimer, softirq: Fix hrtimer-\u003esoftirq trampoline\n\nhrtimers callbacks are always done from hardirq context, either the\njiffy tick interrupt or the hrtimer device interrupt.\n\n[ there is currently one exception that can still call a hrtimer\n  callback from softirq, but even in that case this will still\n  work correctly. ]\n\nReported-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yury Polyanskiy \u003cypolyans@princeton.edu\u003e\nTested-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003c1265120401.24455.306.camel@laptop\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "c5e0cb3ddc5f14cedcfc50c0fb3b5fc6b56576da",
      "tree": "ab4d9ccc68fcdca681c2991fa3773d7483a7f26b",
      "parents": [
        "2c28e2451dba2260e9f88811b29a7787db7e7616"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Oct 28 08:14:48 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 02 16:06:37 2009 +0100"
      },
      "message": "rcu: Cleanup: balance rcu_irq_enter()/rcu_irq_exit() calls\n\nCurrently, rcu_irq_exit() is invoked only for CONFIG_NO_HZ,\nwhile rcu_irq_enter() is invoked unconditionally.  This patch\nmoves rcu_irq_exit() out from under CONFIG_NO_HZ so that the\ncalls are balanced.\n\nThis patch has no effect on the behavior of the kernel because\nboth rcu_irq_enter() and rcu_irq_exit() are empty for\n!CONFIG_NO_HZ, but the code is easier to understand if the calls\nare obviously balanced in all cases.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c12567428891605-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1871e52c76dd95895caeb772f845a1718dcbcd75",
      "tree": "49e8148326f65353e673204f427bd4545eb26c16",
      "parents": [
        "0f5e4816dbf38ce9488e611ca2296925c1e90d5e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "message": "percpu: make percpu symbols under kernel/ and mm/ unique\n\nThis patch updates percpu related symbols under kernel/ and mm/ such\nthat percpu symbols are unique and don\u0027t clash with local symbols.\nThis serves two purposes of decreasing the possibility of global\npercpu symbol collision and allowing dropping per_cpu__ prefix from\npercpu symbols.\n\n* kernel/lockdep.c: s/lock_stats/cpu_lock_stats/\n\n* kernel/sched.c: s/init_rq_rt/init_rt_rq_var/\t(any better idea?)\n  \t\t  s/sched_group_cpus/sched_groups/\n\n* kernel/softirq.c: s/ksoftirqd/run_ksoftirqd/a\n\n* kernel/softlockup.c: s/(*)_timestamp/softlockup_\\1_ts/\n  \t\t       s/watchdog_task/softlockup_watchdog/\n\t\t       s/timestamp/ts/ for local variables\n\n* kernel/time/timer_stats: s/lookup_lock/tstats_lookup_lock/\n\n* mm/slab.c: s/reap_work/slab_reap_work/\n  \t     s/reap_node/slab_reap_node/\n\n* mm/vmstat.c: local variable changed to avoid collision with vmstat_work\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: (slab/vmstat) Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "5dd4de587fd9c25cb32a7a0fe9feec3647509b6f",
      "tree": "5c724508e4f9ae4f9f099e50551abf28c5d82e9f",
      "parents": [
        "9a5963eb494c8a7be65199e15854551df7d2d939"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 17 17:38:32 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 17 15:53:44 2009 -0400"
      },
      "message": "softirq: add BLOCK_IOPOLL to softirq_to_name\n\nWith BLOCK_IOPOLL_SOFTIRQ added, softirq_to_name[] and\nshow_softirq_name() needs to be updated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AB20398.8070209@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d6714c22b43fbcbead7e7b706ff270e15f04a791",
      "tree": "1dc15e57d982351bed45b7b9768a118f86b88c19",
      "parents": [
        "9f77da9f40045253e91f55c12d4481254b513d2d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:46 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:37 2009 +0200"
      },
      "message": "rcu: Renamings to increase RCU clarity\n\nMake RCU-sched, RCU-bh, and RCU-preempt be underlying\nimplementations, with \"RCU\" defined in terms of one of the\nthree.  Update the outdated rcu_qsctr_inc() names, as these\nfunctions no longer increment anything.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12509746132696-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ba5f005c994ad28e266a0cd14ef29354be382c9",
      "tree": "0a2ff570070afc18e7dad61a2955b94614ce9b51",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Jul 22 14:18:35 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jul 22 17:01:17 2009 +0200"
      },
      "message": "softirq: introduce tasklet_hrtimer infrastructure\n\ncommit ca109491f (hrtimer: removing all ur callback modes) moved all\nhrtimer callbacks into hard interrupt context when high resolution\ntimers are active. That breaks code which relied on the assumption\nthat the callback happens in softirq context.\n\nProvide a generic infrastructure which combines tasklets and hrtimers\ntogether to provide an in-softirq hrtimer experience.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: torvalds@linux-foundation.org\nCc: kaber@trash.net\nCc: David Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003c1248265724.27058.1366.camel@twins\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "aa0ce5bbc2dbb1853bd0c6d13f17716fcc38ac5a",
      "tree": "79efff8d1e52e3d1b968a5122447d25886ef29d7",
      "parents": [
        "1d89b30cc9be41af87881682ec82e2c107849dbe"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Wed Jun 17 16:25:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:40 2009 -0700"
      },
      "message": "softirq: introduce statistics for softirq\n\nStatistics for softirq doesn\u0027t exist.\nIt will be helpful like statistics for interrupts.\nThis patch introduces counting the number of softirq,\nwhich will be exported in /proc/softirqs.\n\nWhen softirq handler consumes much CPU time,\n/proc/stat is like the following.\n\n$ while :; do  cat /proc/stat | head -n1 ; sleep 10 ; done\ncpu  88 0 408 739665 583 28 2 0 0\ncpu  450 0 1090 740970 594 28 1294 0 0\n                              ^^^^\n                             softirq\n\nIn such a situation,\n/proc/softirqs shows us which softirq handler is invoked.\nWe can see the increase rate of softirqs.\n\n\u003cbefore\u003e\n$ cat /proc/softirqs\n                CPU0       CPU1       CPU2       CPU3\nHI                 0          0          0          0\nTIMER         462850     462805     462782     462718\nNET_TX             0          0          0        365\nNET_RX          2472          2          2         40\nBLOCK              0          0        381       1164\nTASKLET            0          0          0        224\nSCHED         462654     462689     462698     462427\nRCU             3046       2423       3367       3173\n\n\u003cafter\u003e\n$ cat /proc/softirqs\n                CPU0       CPU1       CPU2       CPU3\nHI                 0          0          0          0\nTIMER         463361     465077     465056     464991\nNET_TX            53          0          1        365\nNET_RX          3757          2          2         40\nBLOCK              0          0        398       1170\nTASKLET            0          0          0        224\nSCHED         463074     464318     464612     463330\nRCU             3505       2948       3947       3673\n\nWhen CPU TIME of softirq is high,\nthe rates of increase is the following.\n  TIMER  : 220/sec     : CPU1-3\n  NET_TX : 5/sec       : CPU0\n  NET_RX : 120/sec     : CPU0\n  SCHED  : 40-200/sec  : all CPU\n  RCU    : 45-58/sec   : all CPU\n\nThe rates of increase in an idle mode is the following.\n  TIMER  : 250/sec\n  SCHED  : 250/sec\n  RCU    : 2/sec\n\nIt seems many softirqs for receiving packets and rcu are invoked.  This\ngives us help for checking system.\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nReviewed-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c692cbade8b8884f1c20500393bcc7cd6d24ef8",
      "tree": "2cf4353c684304dfdefb89e0a70bfbd7eeadf85b",
      "parents": [
        "8eae985f08138758e06503588f5f1196269bc415"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Wed May 21 22:53:13 2008 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sat Jun 13 10:02:24 2009 +0200"
      },
      "message": "tasklets: new tasklet scheduling function\n\nRationale: kmemcheck needs to be able to schedule a tasklet without\ntouching any dynamically allocated memory _at_ _all_ (since that would\nlead to a recursive page fault). This tasklet is used for writing the\nerror reports to the kernel log.\n\nThe new scheduling function avoids touching any other tasklets by\ninserting the new tasklist as the head of the \"tasklet_hi\" list instead\nof on the tail.\n\nAlso don\u0027t wake up the softirq thread lest the scheduler access some\ntracked memory and we go down with a recursive page fault.\n\nIn this case, we\u0027d better just wait for the maximum time of 1/HZ for the\nmessage to appear.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "44347d947f628060b92449702071bfe1d31dfb75",
      "tree": "c6ed74610d5b3295df4296659f80f5feb94b28cc",
      "parents": [
        "d94fc523f3c35bd8013f04827e94756cbc0212f4",
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:34 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on a .30-rc1 base and was missing out on\n              on a handful of tracing fixes present in .30-rc5-almost.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0e39ed378fb6ba916522764cd508fa7d42ad495",
      "tree": "e696fef3ec7daebb8861e002b3e7432a209baae4",
      "parents": [
        "8b3725621074040d380664964ffbc40610aef8c6"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Apr 29 13:51:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:21 2009 +0200"
      },
      "message": "tracing: fix build failure on s390\n\n\"tracing: create automated trace defines\" causes this compile error on s390,\nas reported by Sachin Sant against linux-next:\n\n kernel/built-in.o: In function `__do_softirq\u0027:\n (.text+0x1c680): undefined reference to `__tracepoint_softirq_entry\u0027\n\nThis happens because the definitions of the softirq tracepoints were moved\nfrom kernel/softirq.c to kernel/irq/handle.c. Since s390 doesn\u0027t support\ngeneric hardirqs handle.c doesn\u0027t get compiled and the definitions are\nmissing.\n\nSo move the tracepoints to softirq.c again.\n\n[ Impact: fix build failure on s390 ]\n\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c20090429135139.5fac79b8@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ac16d033370caf6f48d743c8dc8103700f5cc5",
      "tree": "04a73af31c07a8ad29780b777b3f9d041fa236fa",
      "parents": [
        "57b150cce8e004ddd36330490a68bfb59b7271e9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 18:00:38 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:17 2009 +0200"
      },
      "message": "x86/irq: change irq_desc_alloc() to take node instead of cpu\n\nThis simplifies the node awareness of the code. All our allocators\nonly deal with a NUMA node ID locality not with CPU ids anyway - so\nthere\u0027s no need to maintain (and transform) a CPU id all across the\nIRq layer.\n\nv2: keep move_irq_desc related\n\n[ Impact: cleanup, prepare IRQ code to be NUMA-aware ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nLKML-Reference: \u003c49F65536.2020300@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79d381c9f2354b594dcab9b04dfcc0debf7294fe",
      "tree": "e3b9264b52c443bfa7508850e1ca0c17271a1779",
      "parents": [
        "ef631b0ca01655d24e9ca7e199262c4a46416a26"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Thu Apr 16 19:30:18 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 01:57:54 2009 +0200"
      },
      "message": "kernel/softirq.c: fix sparse warning\n\nFix sparse warning in kernel/softirq.c.\n\n  warning: do-while statement is not a compound statement\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nLKML-Reference: \u003cBD79186B4FD85F4B8E60E381CAEE1909015F9033@mi8nycmail19.Mi8.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad8d75fff811a6a230f7f43b05a6483099349533",
      "tree": "764f75c0785b29067b141719b6e8000f005da7fd",
      "parents": [
        "ecda8ae02a08ef065ff387f5cb2a2d4999da2408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 14 19:39:12 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 22:05:43 2009 -0400"
      },
      "message": "tracing/events: move trace point headers into include/trace/events\n\nImpact: clean up\n\nCreate a sub directory in include/trace called events to keep the\ntrace point headers in their own separate directory. Only headers that\ndeclare trace points should be defined in this directory.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8d154b009168337494fbf345671bab74d3e4b8b",
      "tree": "4097612e1a5cc8bf7658542f7d0f51b815113eaf",
      "parents": [
        "ea20d9293ce423a39717ed4375393129a2e701f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 09:36:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:28 2009 -0400"
      },
      "message": "tracing: create automated trace defines\n\nThis patch lowers the number of places a developer must modify to add\nnew tracepoints. The current method to add a new tracepoint\ninto an existing system is to write the trace point macro in the\ntrace header with one of the macros TRACE_EVENT, TRACE_FORMAT or\nDECLARE_TRACE, then they must add the same named item into the C file\nwith the macro DEFINE_TRACE(name) and then add the trace point.\n\nThis change cuts out the needing to add the DEFINE_TRACE(name).\nEvery file that uses the tracepoint must still include the trace/\u003ctype\u003e.h\nfile, but the one C file must also add a define before the including\nof that file.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/mytrace.h\u003e\n\nThis will cause the trace/mytrace.h file to also produce the C code\nnecessary to implement the trace point.\n\nNote, if more than one trace/\u003ctype\u003e.h is used to create the C code\nit is best to list them all together.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/foo.h\u003e\n #include \u003ctrace/bar.h\u003e\n #include \u003ctrace/fido.h\u003e\n\nThanks to Mathieu Desnoyers and Christoph Hellwig for coming up with\nthe cleaner solution of the define above the includes over my first\ndesign to have the C code include a \"special\" header.\n\nThis patch converts sched, irq and lockdep and skb to use this new\nmethod.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "609862be074cc20e007c640fd936ffe798b41abc",
      "tree": "2ebcacf036fce1b075fe267f608b6abe3f196c67",
      "parents": [
        "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
        "eedeeabdeeadb016b8c783e3620d06b98d0cb4e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: add stack dumps to asserts\n  hrtimer: fix rq-\u003elock inversion (again)\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "b1dbb67911fecb290db3f566281bcd9ccc9dc6df",
      "tree": "f55add06f624f7fed8a68372d8c96b583ca578fe",
      "parents": [
        "492f59f526d95e73028f57bff475b4bbe3c8cb72",
        "70f454408e68fdba2c2529ab7d6ec3c3525e59f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "message": "Merge branch \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  s390: remove arch specific smp_send_stop()\n  panic: clean up kernel/panic.c\n  panic, smp: provide smp_send_stop() wrapper on UP too\n  panic: decrease oops_in_progress only after having done the panic\n  generic-ipi: eliminate WARN_ON()s during oops/panic\n  generic-ipi: cleanups\n  generic-ipi: remove CSD_FLAG_WAIT\n  generic-ipi: remove kmalloc()\n  generic IPI: simplify barriers and locking\n"
    },
    {
      "commit": "7f1e2ca9f04b02794597f60e7b1d43f0a1317939",
      "tree": "dad1d80ab4232f3ca12d7ff9a58f0dc76133dab1",
      "parents": [
        "7bee946358c3cb957d4aa648fc5ab3cad0b232d0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Mar 13 12:21:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 14:52:52 2009 +0200"
      },
      "message": "hrtimer: fix rq-\u003elock inversion (again)\n\nIt appears I inadvertly introduced rq-\u003elock recursion to the\nhrtimer_start() path when I delegated running already expired\ntimers to softirq context.\n\nThis patch fixes it by introducing a __hrtimer_start_range_ns()\nmethod that will not use raise_softirq_irqoff() but\n__raise_softirq_irqoff() which avoids the wakeup.\n\nIt then also changes schedule() to check for pending softirqs and\ndo the wakeup then, I\u0027m not quite sure I like this last bit, nor\nam I convinced its really needed.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus@samba.org\nLKML-Reference: \u003c20090313112301.096138802@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bee946358c3cb957d4aa648fc5ab3cad0b232d0",
      "tree": "693061ebde2abc35ecc846e5084630d7225aaaff",
      "parents": [
        "d820ac4c2fa881079e6b689d2098adce337558ae",
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 13:53:43 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 13:53:43 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into locking-for-linus\n\nConflicts:\n\tlib/Kconfig.debug\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd80a8142efa3468c2cd9fb52845f334c3220d54",
      "tree": "919e88994bd3c09b34ce852d0a09bb0655d231d0",
      "parents": [
        "641cd4cfcdc71ce01535b31cc4d57d59a1fae1fc",
        "a98fe7f3425c6b4e90de16f8da63b0429a8fed08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:05:58 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:05:58 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into core/ipi\n"
    },
    {
      "commit": "899039e8746bb9a09b6487ddb8ab2275ce9d0256",
      "tree": "4bc6365d81796fb675c4fe0fde243e11fd9cb361",
      "parents": [
        "7f96f93f02b7637491a1637dee12dcdcd40b9802"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:43:33 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:43:33 2009 -0400"
      },
      "message": "softirq: no need to have SOFTIRQ in softirq name\n\nImpact: clean up\n\nIt is redundant to have \u0027SOFTIRQ\u0027 in the softirq names.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "39842323ceb368d2ea36ab7696aedbe296e13b61",
      "tree": "6050a0e282eaaf500f3809b1e53256b24b570d92",
      "parents": [
        "5d592b44b29a1d73e13d5c9e3426eed843bdc359"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Mar 12 14:36:03 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:20:58 2009 -0400"
      },
      "message": "tracing: tracepoints for softirq entry/exit - tracepoints\n\nIntroduce softirq entry/exit tracepoints. These are useful for\naugmenting existing tracers, and to figure out softirq frequencies and\ntimings.\n\n[\n  s/irq_softirq_/softirq_/ for trace point names and\n  Fixed printf format in TRACE_FORMAT macro\n   - Steven Rostedt\n]\n\nLKML-Reference: \u003c20090312183603.GC3352@redhat.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5d592b44b29a1d73e13d5c9e3426eed843bdc359",
      "tree": "e26ec625e6fb5efdbbf41d0bba940a2dbac19f50",
      "parents": [
        "e447e1df2e568cd43d1918963c9f09fae85aea57"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Mar 12 14:33:36 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:02 2009 -0400"
      },
      "message": "tracing: tracepoints for softirq entry/exit - add softirq-to-name array\n\nCreate a \u0027softirq_to_name\u0027 array, which is indexed by softirq #, so\nthat we can easily convert between the softirq index # and its name, in\norder to get more meaningful output messages.\n\nLKML-Reference: \u003c20090312183336.GB3352@redhat.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "25d500067d5a666d1336598d1b324793554e5496",
      "tree": "3402308c4c69a66d02ce55f5c165e242fad2a8a9",
      "parents": [
        "0b13fda1e0936b3d64c4c407f183d33fa6bd2ad4",
        "9ead64974b05501bbac0d63a47c99fa786d064ba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 02:14:25 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 02:14:25 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into core/ipi\n"
    },
    {
      "commit": "480c93df5b99699390f93a7024c9f60d09da0e96",
      "tree": "b93b6c8c71c5f2e716dd05b126e01ef4e20ff0af",
      "parents": [
        "aecfcde920da8d32949f6cbbc1fc051b4ef9e7be",
        "d820ac4c2fa881079e6b689d2098adce337558ae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:33:21 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:33:21 2009 +0100"
      },
      "message": "Merge branch \u0027core/locking\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "d820ac4c2fa881079e6b689d2098adce337558ae",
      "tree": "39e4e989d22271cd401f6974c9ae7accc571d500",
      "parents": [
        "3c1f67d60e2b4f4455563928999fd41cc653645d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:30:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:32:36 2009 +0100"
      },
      "message": "locking: rename trace_softirq_[enter|exit] \u003d\u003e lockdep_softirq_[enter|exit]\n\nImpact: cleanup\n\nThe naming clashes with upcoming softirq tracepoints, so rename the\nAPIs to lockdep_*().\n\nRequested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12e87e36e0141c08dbc8b2177c93c75fb18ad7e5",
      "tree": "a82ac66b372ddc7ee97fe095222232875b6737d4",
      "parents": [
        "42b40b3d55f5782b00b74d9105c3565fbfa5cb80",
        "c3ffc7a40b7e94b094efe1c8ab4e24370a782b65",
        "7bffc23e56e92c14b787bf4d95249a32085bfed5",
        "7a203f3b089be4410fe065dd9927027eade94557"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:56:25 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:56:25 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/doc\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/printk\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "467c88fee51e2ae862e9485245687da0730e29aa",
      "tree": "244aa2469e31cb53d7e04ec0768b506ccad71932",
      "parents": [
        "1f442d70c84aa798e243e721eba728a98434cd86",
        "7ab152470e8416ef2a44c800fdc157e2192f2974",
        "8827247ffcc9e880cbe4705655065cf011265157",
        "d1a8e7792047f7dca7eb5759250e2c12800bf262",
        "0feca851c1b3cb4ebfa3149144b3d5de0879ebaa",
        "d0fc63f7bd07cb779a06dc1cdd0c5a14e7f5d562",
        "7a203f3b089be4410fe065dd9927027eade94557",
        "3a450de1365d20afde406f0d9b2931a5e4a4fd6a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:26:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:26:38 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/asm\u0027, \u0027x86/fixmap\u0027, \u0027x86/memtest\u0027, \u0027x86/mm\u0027, \u0027x86/urgent\u0027, \u0027linus\u0027 and \u0027core/percpu\u0027 into x86/core\n"
    },
    {
      "commit": "f0ef03985130287c6c84ebe69416cf790e6cc00e",
      "tree": "3ecb04cc4d82e5fc3ae5f1747e6da172ae8cbcb7",
      "parents": [
        "16097439703bcd38e9fe5608c12add6dacb825ea",
        "31bbed527e7039203920c51c9fb48c27aed0820c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:44:14 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:45:01 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into tracing/textedit\n\nConflicts:\n\tarch/x86/Kconfig\n\tblock/blktrace.c\n\tkernel/irq/handle.c\n\nSemantic conflict:\n\tkernel/trace/blktrace.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64ca5ab913f1594ef316556e65f5eae63ff50cee",
      "tree": "44cecee89609fbec9e4d7ed853b0eaf5c3782fc3",
      "parents": [
        "559595a985e106d2fa9f0c79b7f5805453fed593"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Mar 04 12:11:56 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 22:08:45 2009 +0100"
      },
      "message": "rcu: increment quiescent state counter in ksoftirqd()\n\nIf a machine is flooded by network frames, a cpu can loop\n100% of its time inside ksoftirqd() without calling schedule().\nThis can delay RCU grace period to insane values.\n\nAdding rcu_qsctr_inc() call in ksoftirqd() solves this problem.\n\nPaul: \"This regression was a result of the recent change from\n\"schedule()\" to \"cond_resched()\", which got rid of that quiescent\nstate in the common case where a reschedule is not needed\".\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e2756376c706e4da3454a272947983f92e80a7e",
      "tree": "3a54c5dd97921ae869bb6122a69af42d9161ee3e",
      "parents": [
        "8969a5ede0f9e17da4b943712429aef2c9bcd82b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 25 13:59:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:13:44 2009 +0100"
      },
      "message": "generic-ipi: remove CSD_FLAG_WAIT\n\nOleg noticed that we don\u0027t strictly need CSD_FLAG_WAIT, rework\nthe code so that we can use CSD_FLAG_LOCK for both purposes.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e49fcce1bdadd723ae6a0b3b324c4daced61563",
      "tree": "a2bf1a143ed33ca01612dfab1fb7c993c467cdb0",
      "parents": [
        "b06a830183b610c0a88c29a92feb7991a867ab46"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jan 22 19:01:40 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 23 11:10:57 2009 +0100"
      },
      "message": "trace, lockdep: manual preempt count adding for local_bh_disable\n\nImpact: fix to preempt trace triggering lockdep check_flag failure\n\nIn local_bh_disable, the use of add_preempt_count causes the\npreempt tracer to start recording the time preemption is off.\nBut because it already modified the preempt_count to show\nsoftirqs disabled, and before it called the lockdep code to\nhandle this, it causes a state that lockdep can not handle.\n\nThe preempt tracer will reset the ring buffer on start of a trace,\nand the ring buffer reset code does a spin_lock_irqsave. This\ncalls into lockdep and lockdep will fail when it detects the\ninvalid state of having softirqs disabled but the internal\ncurrent-\u003esoftirqs_enabled is still set.\n\nThe fix is to manually add the SOFTIRQ_OFFSET to preempt count\nand call the preempt tracer code outside the lockdep critical\narea.\n\nThanks to Peter Zijlstra for suggesting this solution.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4a046d1754ee6ebb6f399696805ed61ea0444d4c",
      "tree": "9b9e8e63d9490aea4c2f06263ad541cb8115eb63",
      "parents": [
        "e65e49d0f3714f4a6a42f6f6a19926ba33fcda75"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Jan 12 17:39:24 2009 -0800"
      },
      "committer": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon Jan 12 17:39:24 2009 -0800"
      },
      "message": "x86: arch_probe_nr_irqs\n\nImpact: save RAM with large NR_CPUS, get smaller nr_irqs\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "7d3b56ba37a95f1f370f50258ed3954c304c524b",
      "tree": "86102527b92f02450aa245f084ffb491c18d2e0a",
      "parents": [
        "269b012321f2f1f8e4648c43a93bf432b42c6668",
        "ab14398abd195af91a744c320a52a1bce814dd1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)\n  x86: setup_per_cpu_areas() cleanup\n  cpumask: fix compile error when CONFIG_NR_CPUS is not defined\n  cpumask: use alloc_cpumask_var_node where appropriate\n  cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t\n  x86: use cpumask_var_t in acpi/boot.c\n  x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids\n  sched: put back some stack hog changes that were undone in kernel/sched.c\n  x86: enable cpus display of kernel_max and offlined cpus\n  ia64: cpumask fix for is_affinity_mask_valid()\n  cpumask: convert RCU implementations, fix\n  xtensa: define __fls\n  mn10300: define __fls\n  m32r: define __fls\n  h8300: define __fls\n  frv: define __fls\n  cris: define __fls\n  cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS\n  cpumask: zero extra bits in alloc_cpumask_var_node\n  cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/\n  cpumask: convert mm/\n  ...\n"
    },
    {
      "commit": "f1fc057c79cb2d27602fb3ad08a031f13459ef27",
      "tree": "1bfa272b43e76b1abc0bf27361ad088fc5a17ba1",
      "parents": [
        "4462344ee9ea9224d026801b877887f2f39774a3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "message": "cpumask: remove any_online_cpu() users: kernel/\n\nImpact: Remove obsolete API usage\n\nany_online_cpu() is a good name, but it takes a cpumask_t, not a\npointer.\n\nThere are several places where any_online_cpu() doesn\u0027t really want a\nmask arg at all.  Replace all callers with cpumask_any() and\ncpumask_any_and().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "db200df0b3530f673d8e9f5bd535e9e10305842a",
      "tree": "9a94039b8813452c51a50fcb45e95c32a9f0e537",
      "parents": [
        "ec270e59a74eee972006a87c8e12514a20588369",
        "43a256322ac1fc105c181b3cade3b9bfc0b63ca1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 31 09:00:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 31 09:00:59 2008 -0800"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sparseirq: move __weak symbols into separate compilation unit\n  sparseirq: work around __weak alias bug\n  sparseirq: fix hang with !SPARSE_IRQ\n  sparseirq: set lock_class for legacy irq when sparse_irq is selected\n  sparseirq: work around compiler optimizing away __weak functions\n  sparseirq: fix desc-\u003elock init\n  sparseirq: do not printk when migrating IRQ descriptors\n  sparseirq: remove duplicated arch_early_irq_init()\n  irq: simplify for_each_irq_desc() usage\n  proc: remove ifdef CONFIG_SPARSE_IRQ from stat.c\n  irq: for_each_irq_desc() move to irqnr.h\n  hrtimer: remove #include \u003clinux/irq.h\u003e\n"
    },
    {
      "commit": "43a256322ac1fc105c181b3cade3b9bfc0b63ca1",
      "tree": "6f4b6fc286451598d20222af8b511fe0a3fcdcfc",
      "parents": [
        "b2e2fe99628c4f944c3075258e536197b5a4f3f8"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Dec 28 16:01:13 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 12:15:49 2008 +0100"
      },
      "message": "sparseirq: move __weak symbols into separate compilation unit\n\nGCC has a bug with __weak alias functions: if the functions are in\nthe same compilation unit as their call site, GCC can decide to\ninline them - and thus rob the linker of the opportunity to override\nthe weak alias with the real thing.\n\nSo move all the IRQ handling related __weak symbols to kernel/irq/chip.c.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6638101c1124c19c8a65b1645e4ecd09e0572f3e",
      "tree": "a1e47e8da2e5478846afdd91e8ebcf0914ed7373",
      "parents": [
        "cc37d3d20604f3759d269247b022616f710aa52d",
        "3ae7020543db0b769538e64d1ce8d51fceff60ca",
        "a08636690d06b2e36cfb4c2b3ee133a81c47e1e0",
        "00ef9f7348dfd2fc223ec42aceb30836e86b367f",
        "26cc271db798cf211d35967cbfbb53e997126b84",
        "12d79bafb75639f406a9f71aab94808c414c836e",
        "3ac52669c7a24b93663acfcab606d1065ed1accd",
        "8b752e3ef6e3f5cde87afc649dd51d92b1e549c1",
        "9212ddb5eada64fec5a08b28207401f3cc3d0876"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 14:06:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 14:06:29 2008 +0100"
      },
      "message": "Merge branches \u0027core/debugobjects\u0027, \u0027core/iommu\u0027, \u0027core/locking\u0027, \u0027core/printk\u0027, \u0027core/rcu\u0027, \u0027core/resources\u0027, \u0027core/softirq\u0027 and \u0027core/stacktrace\u0027 into core/core\n"
    },
    {
      "commit": "64db4cfff99c04cd5f550357edcc8780f96b54a2",
      "tree": "4856e788d21f0e31ed78a22b70b4521f7237705e",
      "parents": [
        "d110ec3a1e1f522e2e9dfceb9c36d6590c26d2d4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Dec 18 21:55:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 21:56:04 2008 +0100"
      },
      "message": "\"Tree RCU\": scalable classic RCU implementation\n\nThis patch fixes a long-standing performance bug in classic RCU that\nresults in massive internal-to-RCU lock contention on systems with\nmore than a few hundred CPUs.  Although this patch creates a separate\nflavor of RCU for ease of review and patch maintenance, it is intended\nto replace classic RCU.\n\nThis patch still handles stress better than does mainline, so I am still\ncalling it ready for inclusion.  This patch is against the -tip tree.\nNevertheless, experience on an actual 1000+ CPU machine would still be\nmost welcome.\n\nMost of the changes noted below were found while creating an rcutiny\n(which should permit ejecting the current rcuclassic) and while doing\ndetailed line-by-line documentation.\n\nUpdates from v9 (http://lkml.org/lkml/2008/12/2/334):\n\no\tFixes from remainder of line-by-line code walkthrough,\n\tincluding comment spelling, initialization, undesirable\n\tnarrowing due to type conversion, removing redundant memory\n\tbarriers, removing redundant local-variable initialization,\n\tand removing redundant local variables.\n\n\tI do not believe that any of these fixes address the CPU-hotplug\n\tissues that Andi Kleen was seeing, but please do give it a whirl\n\tin case the machine is smarter than I am.\n\n\tA writeup from the walkthrough may be found at the following\n\tURL, in case you are suffering from terminal insomnia or\n\tmasochism:\n\n\thttp://www.kernel.org/pub/linux/kernel/people/paulmck/tmp/rcutree-walkthrough.2008.12.16a.pdf\n\no\tMade rcutree tracing use seq_file, as suggested some time\n\tago by Lai Jiangshan.\n\no\tAdded a .csv variant of the rcudata debugfs trace file, to allow\n\tpeople having thousands of CPUs to drop the data into\n\ta spreadsheet.\tTested with oocalc and gnumeric.  Updated\n\tdocumentation to suit.\n\nUpdates from v8 (http://lkml.org/lkml/2008/11/15/139):\n\no\tFix a theoretical race between grace-period initialization and\n\tforce_quiescent_state() that could occur if more than three\n\tjiffies were required to carry out the grace-period\n\tinitialization.  Which it might, if you had enough CPUs.\n\no\tApply Ingo\u0027s printk-standardization patch.\n\no\tSubstitute local variables for repeated accesses to global\n\tvariables.\n\no\tFix comment misspellings and redundant (but harmless) increments\n\tof -\u003en_rcu_pending (this latter after having explicitly added it).\n\no\tApply checkpatch fixes.\n\nUpdates from v7 (http://lkml.org/lkml/2008/10/10/291):\n\no\tFixed a number of problems noted by Gautham Shenoy, including\n\tthe cpu-stall-detection bug that he was having difficulty\n\tconvincing me was real.  ;-)\n\no\tChanged cpu-stall detection to wait for ten seconds rather than\n\tthree in order to reduce false positive, as suggested by Ingo\n\tMolnar.\n\no\tProduced a design document (http://lwn.net/Articles/305782/).\n\tThe act of writing this document uncovered a number of both\n\ttheoretical and \"here and now\" bugs as noted below.\n\no\tFix dynticks_nesting accounting confusion, simplify WARN_ON()\n\tcondition, fix kerneldoc comments, and add memory barriers\n\tin dynticks interface functions.\n\no\tAdd more data to tracing.\n\no\tRemove unused \"rcu_barrier\" field from rcu_data structure.\n\no\tCount calls to rcu_pending() from scheduling-clock interrupt\n\tto use as a surrogate timebase should jiffies stop counting.\n\no\tFix a theoretical race between force_quiescent_state() and\n\tgrace-period initialization.  Yes, initialization does have to\n\tgo on for some jiffies for this race to occur, but given enough\n\tCPUs...\n\nUpdates from v6 (http://lkml.org/lkml/2008/9/23/448):\n\no\tFix a number of checkpatch.pl complaints.\n\no\tApply review comments from Ingo Molnar and Lai Jiangshan\n\ton the stall-detection code.\n\no\tFix several bugs in !CONFIG_SMP builds.\n\no\tFix a misspelled config-parameter name so that RCU now announces\n\tat boot time if stall detection is configured.\n\no\tRun tests on numerous combinations of configurations parameters,\n\twhich after the fixes above, now build and run correctly.\n\nUpdates from v5 (http://lkml.org/lkml/2008/9/15/92, bad subject line):\n\no\tFix a compiler error in the !CONFIG_FANOUT_EXACT case (blew a\n\tchangeset some time ago, and finally got around to retesting\n\tthis option).\n\no\tFix some tracing bugs in rcupreempt that caused incorrect\n\ttotals to be printed.\n\no\tI now test with a more brutal random-selection online/offline\n\tscript (attached).  Probably more brutal than it needs to be\n\ton the people reading it as well, but so it goes.\n\no\tA number of optimizations and usability improvements:\n\n\to\tMake rcu_pending() ignore the grace-period timeout when\n\t\tthere is no grace period in progress.\n\n\to\tMake force_quiescent_state() avoid going for a global\n\t\tlock in the case where there is no grace period in\n\t\tprogress.\n\n\to\tRearrange struct fields to improve struct layout.\n\n\to\tMake call_rcu() initiate a grace period if RCU was\n\t\tidle, rather than waiting for the next scheduling\n\t\tclock interrupt.\n\n\to\tInvoke rcu_irq_enter() and rcu_irq_exit() only when\n\t\tidle, as suggested by Andi Kleen.  I still don\u0027t\n\t\tcompletely trust this change, and might back it out.\n\n\to\tMake CONFIG_RCU_TRACE be the single config variable\n\t\tmanipulated for all forms of RCU, instead of the prior\n\t\tconfusion.\n\n\to\tDocument tracing files and formats for both rcupreempt\n\t\tand rcutree.\n\nUpdates from v4 for those missing v5 given its bad subject line:\n\no\tSeparated dynticks interface so that NMIs and irqs call separate\n\tfunctions, greatly simplifying it.  In particular, this code\n\tno longer requires a proof of correctness.  ;-)\n\no\tSeparated dynticks state out into its own per-CPU structure,\n\tavoiding the duplicated accounting.\n\no\tThe case where a dynticks-idle CPU runs an irq handler that\n\tinvokes call_rcu() is now correctly handled, forcing that CPU\n\tout of dynticks-idle mode.\n\no\tReview comments have been applied (thank you all!!!).\n\tFor but one example, fixed the dynticks-ordering issue that\n\tManfred pointed out, saving me much debugging.  ;-)\n\no\tAdjusted rcuclassic and rcupreempt to handle dynticks changes.\n\nAttached is an updated patch to Classic RCU that applies a hierarchy,\ngreatly reducing the contention on the top-level lock for large machines.\nThis passes 10-hour concurrent rcutorture and online-offline testing on\n128-CPU ppc64 without dynticks enabled, and exposes some timekeeping\nbugs in presence of dynticks (exciting working on a system where\n\"sleep 1\" hangs until interrupted...), which were fixed in the\n2.6.27 kernel.  It is getting more reliable than mainline by some\nmeasures, so the next version will be against -tip for inclusion.\nSee also Manfred Spraul\u0027s recent patches (or his earlier work from\n2004 at http://marc.info/?l\u003dlinux-kernel\u0026m\u003d108546384711797\u0026w\u003d2).\nWe will converge onto a common patch in the fullness of time, but are\ncurrently exploring different regions of the design space.  That said,\nI have already gratefully stolen quite a few of Manfred\u0027s ideas.\n\nThis patch provides CONFIG_RCU_FANOUT, which controls the bushiness\nof the RCU hierarchy.  Defaults to 32 on 32-bit machines and 64 on\n64-bit machines.  If CONFIG_NR_CPUS is less than CONFIG_RCU_FANOUT,\nthere is no hierarchy.  By default, the RCU initialization code will\nadjust CONFIG_RCU_FANOUT to balance the hierarchy, so strongly NUMA\narchitectures may choose to set CONFIG_RCU_FANOUT_EXACT to disable\nthis balancing, allowing the hierarchy to be exactly aligned to the\nunderlying hardware.  Up to two levels of hierarchy are permitted\n(in addition to the root node), allowing up to 16,384 CPUs on 32-bit\nsystems and up to 262,144 CPUs on 64-bit systems.  I just know that I\nam going to regret saying this, but this seems more than sufficient\nfor the foreseeable future.  (Some architectures might wish to set\nCONFIG_RCU_FANOUT\u003d4, which would limit such architectures to 64 CPUs.\nIf this becomes a real problem, additional levels can be added, but I\ndoubt that it will make a significant difference on real hardware.)\n\nIn the common case, a given CPU will manipulate its private rcu_data\nstructure and the rcu_node structure that it shares with its immediate\nneighbors.  This can reduce both lock and memory contention by multiple\norders of magnitude, which should eliminate the need for the strange\nmanipulations that are reported to be required when running Linux on\nvery large systems.\n\nSome shortcomings:\n\no\tMore bugs will probably surface as a result of an ongoing\n\tline-by-line code inspection.\n\n\tPatches will be provided as required.\n\no\tThere are probably hangs, rcutorture failures, \u0026c.  Seems\n\tquite stable on a 128-CPU machine, but that is kind of small\n\tcompared to 4096 CPUs.  However, seems to do better than\n\tmainline.\n\n\tPatches will be provided as required.\n\no\tThe memory footprint of this version is several KB larger\n\tthan rcuclassic.\n\n\tA separate UP-only rcutiny patch will be provided, which will\n\treduce the memory footprint significantly, even compared\n\tto the old rcuclassic.  One such patch passes light testing,\n\tand has a memory footprint smaller even than rcuclassic.\n\tInitial reaction from various embedded guys was \"it is not\n\tworth it\", so am putting it aside.\n\nCredits:\n\no\tManfred Spraul for ideas, review comments, and bugs spotted,\n\tas well as some good friendly competition.  ;-)\n\no\tJosh Triplett, Ingo Molnar, Peter Zijlstra, Mathieu Desnoyers,\n\tLai Jiangshan, Andi Kleen, Andy Whitcroft, and Andrew Morton\n\tfor reviews and comments.\n\no\tThomas Gleixner for much-needed help with some timer issues\n\t(see patches below).\n\no\tJon M. Tollefson, Tim Pepper, Andrew Theurer, Jose R. Santos,\n\tAndy Whitcroft, Darrick Wong, Nishanth Aravamudan, Anton\n\tBlanchard, Dave Kleikamp, and Nathan Lynch for keeping machines\n\talive despite my heavy abuse^Wtesting.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b752e3ef6e3f5cde87afc649dd51d92b1e549c1",
      "tree": "352c2790e31c595cb4c15e4fe751251c4596299f",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Fri Nov 28 09:52:40 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 12:38:38 2008 +0100"
      },
      "message": "softirq: remove useless function __local_bh_enable\n\nImpact: remove unused code\n\n__local_bh_enable has been replaced with _local_bh_enable.\nAs comments says \"it always nests inside local_bh_enable() sections\"\nhas not been valid now. Also there is no reason to use __local_bh_enable\nanywhere, so we can remove this useless function.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee5f80a993539490a07477ff2526bf62c503fbb4",
      "tree": "4c23450fb35f9dfdb491506a3864647aae7e8e78",
      "parents": [
        "5ceb1a04187553e08c6ab60d30cee7c454ee139a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 11:06:00 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Mon Nov 10 22:36:39 2008 +0100"
      },
      "message": "irq: call __irq_enter() before calling the tick_idle_check\n\nImpact: avoid spurious ksoftirqd wakeups\n\nThe tick idle check which is called from irq_enter() was run before\nthe call to __irq_enter() which did not set the in_interrupt() bits in\npreempt_count. That way the raise of a softirq woke up softirqd for\nnothing as the softirq was handled on return from interrupt.\n\nCall __irq_enter() before calling into the tick idle check code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "719254faa17ffedc87ba0fadb9b34e535c9758d5",
      "tree": "6afe1e9f2175aa5394cf6e0fc7c84afef0be3e9b",
      "parents": [
        "2e532d68a2b3e2aa6b19731501222069735c741c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 17 09:59:47 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Fri Oct 17 18:13:38 2008 +0200"
      },
      "message": "NOHZ: unify the nohz function calls in irq_enter()\n\nWe have two separate nohz function calls in irq_enter() for no good\nreason. Just call a single NOHZ function from irq_enter() and call\nthe bits in the tick code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "54514a70adefe356afe854e2d3912d46668068e6",
      "tree": "e2b08f2c10ff427447fdc40e96555fc2f22549e1",
      "parents": [
        "2e532d68a2b3e2aa6b19731501222069735c741c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 22:15:57 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Oct 17 08:46:56 2008 +0200"
      },
      "message": "softirq: Add support for triggering softirq work on softirqs.\n\nThis is basically a genericization of Jens Axboe\u0027s block layer\nremote softirq changes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1c95e1b69073cff5ff179e592fa1a1e182c78a17",
      "tree": "3fc9d1f665f66beb24d66b3ea65d2b5fdd7a1878",
      "parents": [
        "e533b227055598b1f7dc8503a3b4f36b14b9da8a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:32:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:32:46 2008 -0700"
      },
      "message": "Fix kernel/softirq.c printk format warning properly\n\nThis fixes the broken 77af7e3403e7314c47b0c07fbc5e4ef21d939532\n(\"softirq, warning fix: correct a format to avoid a warning\") fix\ncorrectly.\n\nThe type of a pointer subtraction is not \"int\", nor is it \"long\".  It\ncan be either (or something else).  It\u0027s \"ptrdiff_t\", and the printk\nformat for it is \"%td\".\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77af7e3403e7314c47b0c07fbc5e4ef21d939532",
      "tree": "76bc65173d4880fd2dfc5f31a520d1e9345fffcf",
      "parents": [
        "8e85b4b553fc932e1c5141feb5fda389b7f5db01"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 03 11:39:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 03 11:41:41 2008 +0200"
      },
      "message": "softirq, warning fix: correct a format to avoid a warning\n\nLast -tip gives this warning:\n\nkernel/softirq.c: Dans la fonction «__do_softirq» :\nkernel/softirq.c:216: attention : format «%ld» expects type «long int», but argument 2 has type «int»\n\nThis patch corrects the format type, and a small mistake in the \"softirq\" word.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e85b4b553fc932e1c5141feb5fda389b7f5db01",
      "tree": "2e3f1894e36be800aadeac7ed86ebb4f9fb992a3",
      "parents": [
        "978b0116cd225682a29e3d1d5010319bf2de32c2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 02 10:50:53 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 10:58:04 2008 +0200"
      },
      "message": "softirqs, debug: preemption check\n\nif a preempt count leaks out of a softirq handler it can be very hard\nto figure it out. Add a debug check for this.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "978b0116cd225682a29e3d1d5010319bf2de32c2",
      "tree": "250cc9c7740e72407993f22358449b87d322cb32",
      "parents": [
        "70bb08962ea9bd50797ae9f16b2493f5f7c65053"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Sep 06 20:04:36 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 20:04:36 2008 +0200"
      },
      "message": "softirq: allocate less vectors\n\nWe don\u0027t need whole 32 of them, only NR_SOFTIRQS.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7babe8db99d305340cf4828ce1f5a1481d5622ef",
      "tree": "fdac7a084646bb6d125ebc62b0b75806e45d1025",
      "parents": [
        "c2147a5092cfe13dbf3210e54e8a622015edeecc"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "Full conversion to early_initcall() interface, remove old interface\n\nA previous patch added the early_initcall(), to allow a cleaner hooking of\npre-SMP initcalls.  Now we remove the older interface, converting all\nexisting users to the new one.\n\n[akpm@linux-foundation.org: cleanups]\n[akpm@linux-foundation.org: build fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b610fda0df5d0f0b0c64242e37441ad1b384aac",
      "tree": "0ea14b15f2e6546f37fe18d8ac3dc83077ec0e55",
      "parents": [
        "b8f8c3cf0a4ac0632ec3f0e15e9dc0c29de917af",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 19:53:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 19:53:16 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into timers/nohz\n"
    },
    {
      "commit": "b8f8c3cf0a4ac0632ec3f0e15e9dc0c29de917af",
      "tree": "183825db00f4e9252603a51a1be6f8874a963dbc",
      "parents": [
        "857f3fd7a496ddf4329345af65a4a2b16dd25fe8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 18 17:27:28 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 18 18:10:28 2008 +0200"
      },
      "message": "nohz: prevent tick stop outside of the idle loop\n\nJack Ren and Eric Miao tracked down the following long standing\nproblem in the NOHZ code:\n\n\tscheduler switch to idle task\n\tenable interrupts\n\nWindow starts here\n\n\t----\u003e interrupt happens (does not set NEED_RESCHED)\n\t      \tirq_exit() stops the tick\n\n\t----\u003e interrupt happens (does set NEED_RESCHED)\n\n\treturn from schedule()\n\t\n\tcpu_idle(): preempt_disable();\n\nWindow ends here\n\nThe interrupts can happen at any point inside the race window. The\nfirst interrupt stops the tick, the second one causes the scheduler to\nrerun and switch away from idle again and we end up with the tick\ndisabled.\n\nThe fact that it needs two interrupts where the first one does not set\nNEED_RESCHED and the second one does made the bug obscure and extremly\nhard to reproduce and analyse. Kudos to Jack and Eric.\n\nSolution: Limit the NOHZ functionality to the idle loop to make sure\nthat we can not run into such a situation ever again.\n\ncpu_idle()\n{\n\tpreempt_disable();\n\n\twhile(1) {\n\t\t tick_nohz_stop_sched_tick(1); \u003c- tell NOHZ code that we\n\t\t \t\t\t          are in the idle loop\n\n\t\t while (!need_resched())\n\t\t       halt();\n\n\t\t tick_nohz_restart_sched_tick(); \u003c- disables NOHZ mode\n\t\t preempt_enable_no_resched();\n\t\t schedule();\n\t\t preempt_disable();\n\t}\n}\n\nIn hindsight we should have done this forever, but ... \n\n/me grabs a large brown paperbag.\n\nDebugged-by: Jack Ren \u003cjack.ren@marvell.com\u003e, \nDebugged-by: eric miao \u003ceric.y.miao@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "1a781a777b2f6ac46523fe92396215762ced624d",
      "tree": "4f34bb4aade85c0eb364b53d664ec7f6ab959006",
      "parents": [
        "b9d2252c1e44fa83a4e65fdc9eb93db6297c55af",
        "42a2f217a5e324ed5f2373ab1b7a0a15187c4d6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "message": "Merge branch \u0027generic-ipi\u0027 into generic-ipi-for-linus\n\nConflicts:\n\n\tarch/powerpc/Kconfig\n\tarch/s390/kernel/time.c\n\tarch/x86/kernel/apic_32.c\n\tarch/x86/kernel/cpu/perfctr-watchdog.c\n\tarch/x86/kernel/i8259_64.c\n\tarch/x86/kernel/ldt.c\n\tarch/x86/kernel/nmi_64.c\n\tarch/x86/kernel/smpboot.c\n\tarch/x86/xen/smp.c\n\tinclude/asm-x86/hw_irq_32.h\n\tinclude/asm-x86/hw_irq_64.h\n\tinclude/asm-x86/mach-default/irq_vectors.h\n\tinclude/asm-x86/mach-voyager/irq_vectors.h\n\tinclude/asm-x86/smp.h\n\tkernel/Makefile\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "666484f0250db2e016948d63b3ef33e202e3b8d0"
}
