)]}'
{
  "log": [
    {
      "commit": "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
      "tree": "502a8f9499bc1b4cb3300d666dab2d01a1921224",
      "parents": [
        "423d091dfe58d3109d84c408810a7cfa82f6f184",
        "9e183426bfb52bb44bf3c443d6587e4d02478603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (106 commits)\n  perf kvm: Fix copy \u0026 paste error in description\n  perf script: Kill script_spec__delete\n  perf top: Fix a memory leak\n  perf stat: Introduce get_ratio_color() helper\n  perf session: Remove impossible condition check\n  perf tools: Fix feature-bits rework fallout, remove unused variable\n  perf script: Add generic perl handler to process events\n  perf tools: Use for_each_set_bit() to iterate over feature flags\n  perf tools: Unify handling of features when writing feature section\n  perf report: Accept fifos as input file\n  perf tools: Moving code in some files\n  perf tools: Fix out-of-bound access to struct perf_session\n  perf tools: Continue processing header on unknown features\n  perf tools: Improve macros for struct feature_ops\n  perf: builtin-record: Document and check that mmap_pages must be a power of two.\n  perf: builtin-record: Provide advice if mmap\u0027ing fails with EPERM.\n  perf tools: Fix truncated annotation\n  perf script: look up thread using tid instead of pid\n  perf tools: Look up thread names for system wide profiling\n  perf tools: Fix comm for processes with named threads\n  ...\n"
    },
    {
      "commit": "a8eecf2248a45bf69f0625b23c003ad2ccd765ee",
      "tree": "170e96d6a6cf26da8751ec98f59c81adc28717e6",
      "parents": [
        "9b2e4f1880b789be1f24f9684f7a54b90310b5c0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Oct 02 11:01:15 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:25 2011 -0800"
      },
      "message": "trace: Allow ftrace_dump() to be called from modules\n\nAdd an EXPORT_SYMBOL_GPL() so that rcutorture can dump the trace buffer\nupon detection of an RCU error.\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": "39eaf7ef884dcc44f7ff1bac803ca2a1dcf43544",
      "tree": "323e858496ef9c587a3e9861dab863af5303f82f",
      "parents": [
        "77271ce4b2c0df0a76ad1cbb6a95b07e1f88c1ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 17 10:35:16 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 17 11:10:43 2011 -0500"
      },
      "message": "tracing: Add entries in buffer and total entries to default output header\n\nKnowing the number of event entries in the ring buffer compared\nto the total number that were written is useful information. The\nlatency format gives this information and there\u0027s no reason that the\ndefault format does not.\n\nThis information is now added to the default header, along with the\nnumber of online CPUs:\n\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 159836/64690869   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] ...2    49.442971: local_touch_nmi \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.442973: enter_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.442974: atomic_notifier_call_chain \u003c-enter_idle\n           \u003cidle\u003e-0     [000] d..2    49.442976: __atomic_notifier_call_chain \u003c-atomic_notifier\n\nThe above shows that the trace contains 159836 entries, but\n64690869 were written. One could figure out that there were\n64531033 entries that were dropped.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "77271ce4b2c0df0a76ad1cbb6a95b07e1f88c1ea",
      "tree": "fd46cc3c3128bd230ee9dcbd610bc0ca8719a63c",
      "parents": [
        "5d81e5cfb37a174e8ddc0413e2e70cdf05807ace"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 17 09:34:33 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 17 09:58:48 2011 -0500"
      },
      "message": "tracing: Add irq, preempt-count and need resched info to default trace output\n\nPeople keep asking how to get the preempt count, irq, and need resched info\nand we keep telling them to enable the latency format. Some developers think\nthat traces without this info is completely useless, and for a lot of tasks\nit is useless.\n\nThe first option was to enable the latency trace as the default format, but\nthe header for the latency format is pretty useless for most tracers and\nit also does the timestamp in straight microseconds from the time the trace\nstarted. This is sometimes more difficult to read as the default trace is\nseconds from the start of boot up.\n\nLatency format:\n\n # tracer: nop\n #\n # nop latency trace v1.1.5 on 3.2.0-rc1-test+\n # --------------------------------------------------------------------\n # latency: 0 us, #159771/64234230, CPU#1 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)\n #    -----------------\n #    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n #    -----------------\n #\n #                  _------\u003d\u003e CPU#\n #                 / _-----\u003d\u003e irqs-off\n #                | / _----\u003d\u003e need-resched\n #                || / _---\u003d\u003e hardirq/softirq\n #                ||| / _--\u003d\u003e preempt-depth\n #                |||| /     delay\n #  cmd     pid   ||||| time  |   caller\n #     \\   /      |||||  \\    |   /\n migratio-6       0...2 41778231us+: rcu_note_context_switch \u003c-__schedule\n migratio-6       0...2 41778233us : trace_rcu_utilization \u003c-rcu_note_context_switch\n migratio-6       0...2 41778235us+: rcu_sched_qs \u003c-rcu_note_context_switch\n migratio-6       0d..2 41778236us+: rcu_preempt_qs \u003c-rcu_note_context_switch\n migratio-6       0...2 41778238us : trace_rcu_utilization \u003c-rcu_note_context_switch\n migratio-6       0...2 41778239us+: debug_lockdep_rcu_enabled \u003c-__schedule\n\ndefault format:\n\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n      migration/0-6     [000]    50.025810: rcu_note_context_switch \u003c-__schedule\n      migration/0-6     [000]    50.025812: trace_rcu_utilization \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025813: rcu_sched_qs \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025815: rcu_preempt_qs \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025817: trace_rcu_utilization \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025818: debug_lockdep_rcu_enabled \u003c-__schedule\n      migration/0-6     [000]    50.025820: debug_lockdep_rcu_enabled \u003c-__schedule\n\nThe latency format header has latency information that is pretty meaningless\nfor most tracers. Although some of the header is useful, and we can add that\nlater to the default format as well.\n\nWhat is really useful with the latency format is the irqs-off, need-resched\nhard/softirq context and the preempt count.\n\nThis commit adds the option irq-info which is on by default that adds this\ninformation:\n\n # tracer: nop\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] d..2    49.309305: cpuidle_get_driver \u003c-cpuidle_idle_call\n           \u003cidle\u003e-0     [000] d..2    49.309307: mwait_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.309309: need_resched \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309310: test_ti_thread_flag \u003c-need_resched\n           \u003cidle\u003e-0     [000] d..2    49.309312: trace_power_start.constprop.13 \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309313: trace_cpu_idle \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309315: need_resched \u003c-mwait_idle\n\nIf a user wants the old format, they can disable the \u0027irq-info\u0027 option:\n\n # tracer: nop\n #\n #           TASK-PID   CPU#      TIMESTAMP  FUNCTION\n #              | |       |          |         |\n           \u003cidle\u003e-0     [000]     49.309305: cpuidle_get_driver \u003c-cpuidle_idle_call\n           \u003cidle\u003e-0     [000]     49.309307: mwait_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000]     49.309309: need_resched \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309310: test_ti_thread_flag \u003c-need_resched\n           \u003cidle\u003e-0     [000]     49.309312: trace_power_start.constprop.13 \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309313: trace_cpu_idle \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309315: need_resched \u003c-mwait_idle\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "efc96737bd82b508794d2b28061a12af4a3f7766",
      "tree": "e9fe4982967b74c0d25a35a2d7f7c62d8be98a47",
      "parents": [
        "1ec454baf1245df4fdb5dae728da3363630ce6de",
        "7e9a49ef542610609144d1afcd516dc3fafac4d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n"
    },
    {
      "commit": "7e9a49ef542610609144d1afcd516dc3fafac4d6",
      "tree": "a8b3748cbbb2ab61998d4c8e2f8c055e0edda104",
      "parents": [
        "d4d34b981a5327eec956c6cb4cce397ce6f57279"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon Nov 07 16:08:49 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 13:48:35 2011 -0500"
      },
      "message": "tracing/latency: Fix header output for latency tracers\n\nIn case the the graph tracer (CONFIG_FUNCTION_GRAPH_TRACER) or even the\nfunction tracer (CONFIG_FUNCTION_TRACER) are not set, the latency tracers\ndo not display proper latency header.\n\nThe involved/fixed latency tracers are:\n        wakeup_rt\n        wakeup\n        preemptirqsoff\n        preemptoff\n        irqsoff\n\nThe patch adds proper handling of tracer configuration options for latency\ntracers, and displaying correct header info accordingly.\n\n* The current output (for wakeup tracer) with both graph and function\n  tracers disabled is:\n\n  # tracer: wakeup\n  #\n    \u003cidle\u003e-0       0d.h5    1us+:      0:120:R   + [000]     7:  0:R watchdog/0\n    \u003cidle\u003e-0       0d.h5    3us+: ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n    ...\n\n* The fixed output is:\n\n  # tracer: wakeup\n  #\n  # wakeup latency trace v1.1.5 on 3.1.0-tip+\n  # --------------------------------------------------------------------\n  # latency: 55 us, #4/4, CPU#0 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n  #    -----------------\n  #    | task: migration/0-6 (uid:0 nice:0 policy:1 rt_prio:99)\n  #    -----------------\n  #\n  #                  _------\u003d\u003e CPU#\n  #                 / _-----\u003d\u003e irqs-off\n  #                | / _----\u003d\u003e need-resched\n  #                || / _---\u003d\u003e hardirq/softirq\n  #                ||| / _--\u003d\u003e preempt-depth\n  #                |||| /     delay\n  #  cmd     pid   ||||| time  |   caller\n  #     \\   /      |||||  \\    |   /\n       cat-1129    0d..4    1us :   1129:120:R   + [000]     6:  0:R migration/0\n       cat-1129    0d..4    2us+: ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\n* The current output (for wakeup tracer) with only function\n  tracer enabled is:\n\n  # tracer: wakeup\n  #\n       cat-1140    0d..4    1us+:   1140:120:R   + [000]     6:  0:R migration/0\n       cat-1140    0d..4    2us : ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\n* The fixed output is:\n  # tracer: wakeup\n  #\n  # wakeup latency trace v1.1.5 on 3.1.0-tip+\n  # --------------------------------------------------------------------\n  # latency: 207 us, #109/109, CPU#1 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n  #    -----------------\n  #    | task: watchdog/1-12 (uid:0 nice:0 policy:1 rt_prio:99)\n  #    -----------------\n  #\n  #                  _------\u003d\u003e CPU#\n  #                 / _-----\u003d\u003e irqs-off\n  #                | / _----\u003d\u003e need-resched\n  #                || / _---\u003d\u003e hardirq/softirq\n  #                ||| / _--\u003d\u003e preempt-depth\n  #                |||| /     delay\n  #  cmd     pid   ||||| time  |   caller\n  #     \\   /      |||||  \\    |   /\n    \u003cidle\u003e-0       1d.h5    1us+:      0:120:R   + [001]    12:  0:R watchdog/1\n    \u003cidle\u003e-0       1d.h5    3us : ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\nLink: http://lkml.kernel.org/r/20111107150849.GE1807@m.brq.redhat.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7115e3fcf45514db7525a05365b10454ff7f345e",
      "tree": "17450e6337d559cc35dae6a7a73abab01ac63f00",
      "parents": [
        "1f6e05171bb5cc32a4d6437ab2269fc21d169ca7",
        "c752d04066a36ae30b29795f3fa3f536292c1f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:03:38 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:03:38 2011 +0200"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (121 commits)\n  perf symbols: Increase symbol KSYM_NAME_LEN size\n  perf hists browser: Refuse \u0027a\u0027 hotkey on non symbolic views\n  perf ui browser: Use libslang to read keys\n  perf tools: Fix tracing info recording\n  perf hists browser: Elide DSO column when it is set to just one DSO, ditto for threads\n  perf hists: Don\u0027t consider filtered entries when calculating column widths\n  perf hists: Don\u0027t decay total_period for filtered entries\n  perf hists browser: Honour symbol_conf.show_{nr_samples,total_period}\n  perf hists browser: Do not exit on tab key with single event\n  perf annotate browser: Don\u0027t change selection line when returning from callq\n  perf tools: handle endianness of feature bitmap\n  perf tools: Add prelink suggestion to dso update message\n  perf script: Fix unknown feature comment\n  perf hists browser: Apply the dso and thread filters when merging new batches\n  perf hists: Move the dso and thread filters from hist_browser\n  perf ui browser: Honour the xterm colors\n  perf top tui: Give color hints just on the percentage, like on --stdio\n  perf ui browser: Make the colors configurable and change the defaults\n  perf tui: Remove unneeded call to newtCls on startup\n  perf hists: Don\u0027t format the percentage on hist_entry__snprintf\n  ...\n\nFix up conflicts in arch/x86/kernel/kprobes.c manually.\n\nIngo\u0027s tree did the insane \"add volatile to const array\", which just\ndoesn\u0027t make sense (\"volatile const\"?).  But we could remove the const\n*and* make the array volatile to make doubly sure that gcc doesn\u0027t\noptimize it away..\n\nAlso fix up kernel/trace/ring_buffer.c non-data-conflicts manually: the\nreader_lock has been turned into a raw lock by the core locking merge,\nand there was a new user of it introduced in this perf core merge.  Make\nsure that new use also uses the raw accessor functions.\n"
    },
    {
      "commit": "436fc280261dcfce5af38f08b89287750dc91cd2",
      "tree": "5a57ba115f7f9d19c0185673fa1bfba9dfc292da",
      "parents": [
        "9b5f8b31af57a8ce9e9f77864d9143b5e3304815"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 14 10:44:25 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 14 10:44:25 2011 -0400"
      },
      "message": "tracing: Fix returning of duplicate data after EOF in trace_pipe_raw\n\nThe trace_pipe_raw handler holds a cached page from the time the file\nis opened to the time it is closed. The cached page is used to handle\nthe case of the user space buffer being smaller than what was read from\nthe ring buffer. The left over buffer is held in the cache so that the\nnext read will continue where the data left off.\n\nAfter EOF is returned (no more data in the buffer), the index of\nthe cached page is set to zero. If a user app reads the page again\nafter EOF, the check in the buffer will see that the cached page\nis less than page size and will return the cached page again. This\nwill cause reading the trace_pipe_raw again after EOF to return\nduplicate data, making the output look like the time went backwards\nbut instead data is just repeated.\n\nThe fix is to not reset the index right after all data is read\nfrom the cache, but to reset it after all data is read and more\ndata exists in the ring buffer.\n\nCc: stable \u003cstable@kernel.org\u003e\nReported-by: Jeremy Eder \u003cjeder@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9b5f8b31af57a8ce9e9f77864d9143b5e3304815",
      "tree": "fad2ac950e2b326cec325014016c2135403b3bf2",
      "parents": [
        "910e94dd0cc5abacebf0bd5ffd859f61b9583857"
      ],
      "author": {
        "name": "Geunsik Lim",
        "email": "geunsik.lim@samsung.com",
        "time": "Fri Aug 12 14:30:22 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 14 10:41:33 2011 -0400"
      },
      "message": "ftrace: Fix README to state tracing_on to start/stop tracing\n\ntracing_enabled option is deprecated.\nTo start/stop tracing, write to /sys/kernel/debug/tracing/tracing_on\nwithout tracing_enabled. This patch is based on Linux 3.1.0-rc1\n\nSigned-off-by: Geunsik Lim \u003cgeunsik.lim@samsung.com\u003e\nLink: http://lkml.kernel.org/r/1313127022-23830-1-git-send-email-leemgs1@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d696b58ca2c3ca76e784ef89a7e0453d9b7ab187",
      "tree": "e5f02a13dc8fdec22e9223189122e5938e9ce77e",
      "parents": [
        "e0a413f619ef8bc366dafc6f8221674993b8d85f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 22 11:50:27 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 11 09:13:53 2011 -0400"
      },
      "message": "tracing: Do not allocate buffer for trace_marker\n\nWhen doing intense tracing, the kmalloc inside trace_marker can\nintroduce side effects to what is being traced.\n\nAs trace_marker() is used by userspace to inject data into the\nkernel ring buffer, it needs to do so with the least amount\nof intrusion to the operations of the kernel or the user space\napplication.\n\nAs the ring buffer is designed to write directly into the buffer\nwithout the need to make a temporary buffer, and userspace already\nwent through the hassle of knowing how big the write will be,\nwe can simply pin the userspace pages and write the data directly\ninto the buffer. This improves the impact of tracing via trace_marker\ntremendously!\n\nThanks to Peter Zijlstra and Thomas Gleixner for pointing out the\nuse of get_user_pages_fast() and kmap_atomic().\n\nSuggested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e0a413f619ef8bc366dafc6f8221674993b8d85f",
      "tree": "a6696b0e7ef5422490bdbcc28d385c031d3e4eb8",
      "parents": [
        "e36de1de4a5f95b7cb3e5c37d10e6bbb91833ef0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 29 21:26:16 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 11 09:13:25 2011 -0400"
      },
      "message": "tracing: Warn on output if the function tracer was found corrupted\n\nAs the function tracer is very intrusive, lots of self checks are\nperformed on the tracer and if something is found to be strange\nit will shut itself down keeping it from corrupting the rest of the\nkernel. This shutdown may still allow functions to be traced, as the\ntracing only stops new modifications from happening. Trying to stop\nthe function tracer itself can cause more harm as it requires code\nmodification.\n\nAlthough a WARN_ON() is executed, a user may not notice it. To help\nthe user see that something isn\u0027t right with the tracing of the system\na big warning is added to the output of the tracer that lets the user\nknow that their data may be incomplete.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6249687f76b69cc0b2ad34636f4a18d693ef3262",
      "tree": "9c007b85738eb86f113a9a6de1e35129532e5f54",
      "parents": [
        "c64e148a3be3cb786534ad38298c25c833116c26"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 19 11:35:58 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 19 11:35:58 2011 -0400"
      },
      "message": "tracing: Add a counter clock for those that do not trust clocks\n\nWhen debugging tight race conditions, it can be helpful to have a\nsynchronized tracing method. Although in most cases the global clock\nprovides this functionality, if timings is not the issue, it is more\ncomforting to know that the order of events really happened in a precise\norder.\n\nInstead of using a clock, add a \"counter\" that is simply an incrementing\natomic 64bit counter that orders the events as they are perceived to\nhappen.\n\nThe trace_clock_counter() is added from the attempt by Peter Zijlstra\ntrying to convert the trace_clock_global() to it. I took Peter\u0027s counter\ncode and made trace_clock_counter() instead, and added it to the choice\nof clocks. Just echo counter \u003e /debug/tracing/trace_clock to activate\nit.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nRequested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-By: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5389f6fad27019f2ba78f1b332f719ec05f12a42",
      "tree": "01b9511a75c147808f48a7f4408bf2e35b12623d",
      "parents": [
        "740969f91e950b64a18fdd0a25164cdee042abf0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 25 17:13:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:11:52 2011 +0200"
      },
      "message": "locking, tracing: Annotate tracing locks as raw\n\nThe tracing locks can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c64e148a3be3cb786534ad38298c25c833116c26",
      "tree": "e75fb98c0699858a32f8c713ccb3c701e01523f8",
      "parents": [
        "f81ab074c30234b07c8309c542cafd07bed721f7"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue Aug 16 14:46:16 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 30 12:27:45 2011 -0400"
      },
      "message": "trace: Add ring buffer stats to measure rate of events\n\nThe stats file under per_cpu folder provides the number of entries,\noverruns and other statistics about the CPU ring buffer. However, the\nnumbers do not provide any indication of how full the ring buffer is in\nbytes compared to the overall size in bytes. Also, it is helpful to know\nthe rate at which the cpu buffer is filling up.\n\nThis patch adds an entry \"bytes: \" in printed stats for per_cpu ring\nbuffer which provides the actual bytes consumed in the ring buffer. This\nfield includes the number of bytes used by recorded events and the\npadding bytes added when moving the tail pointer to next page.\n\nIt also adds the following time stamps:\n\"oldest event ts:\" - the oldest timestamp in the ring buffer\n\"now ts:\"  - the timestamp at the time of reading\n\nThe field \"now ts\" provides a consistent time snapshot to the userspace\nwhen being read. This is read from the same trace clock used by tracing\nevent timestamps.\n\nTogether, these values provide the rate at which the buffer is filling\nup, from the formula:\nbytes / (now_ts - oldest_event_ts)\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1313531179-9323-3-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f81ab074c30234b07c8309c542cafd07bed721f7",
      "tree": "58ec049e4f63d0f8a0b696195cf77da2b6d04b01",
      "parents": [
        "86b6ef21b80ac6565d172cdab4384404de007eea"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue Aug 16 14:46:15 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 30 12:27:44 2011 -0400"
      },
      "message": "trace: Add a new readonly entry to report total buffer size\n\nThe current file \"buffer_size_kb\" reports the size of per-cpu buffer and\nnot the overall memory allocated which could be misleading. A new file\n\"buffer_total_size_kb\" adds up all the enabled CPU buffer sizes and\nreports it. This is only a readonly entry.\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1313531179-9323-2-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4a9bd3f134decd6d16ead8d288342d57aad486be",
      "tree": "ca9eca5fcbe93dc8a433d839221505ad8fba5296",
      "parents": [
        "259032bfe379281bf7cba512b7705bdb4ce41db5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "message": "tracing: Have dynamic size event stack traces\n\nCurrently the stack trace per event in ftace is only 8 frames.\nThis can be quite limiting and sometimes useless. Especially when\nthe \"ignore frames\" is wrong and we also use up stack frames for\nthe event processing itself.\n\nChange this to be dynamic by adding a percpu buffer that we can\nwrite a large stack frame into and then copy into the ring buffer.\n\nFor interrupts and NMIs that come in while another event is being\nprocess, will only get to use the 8 frame stack. That should be enough\nas the task that it interrupted will have the full stack frame anyway.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1fd8df2c3970c9e7e4e262354154ee39e58bdd7c",
      "tree": "640fbc584af8870917ea6d1fab4da49d299038ad",
      "parents": [
        "c624d33f61cd05241e85b906311f0b712fdb0f32"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Wed Jun 08 16:09:34 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:53 2011 -0400"
      },
      "message": "tracing/kprobes: Fix kprobe-tracer to support stack trace\n\nFix to support kernel stack trace correctly on kprobe-tracer.\nSince the execution path of kprobe-based dynamic events is different\nfrom other tracepoint-based events, normal ftrace_trace_stack() doesn\u0027t\nwork correctly. To fix that, this introduces ftrace_trace_stack_regs()\nwhich traces stack via pt_regs instead of current stack register.\n\ne.g.\n\n # echo p schedule+4 \u003e /sys/kernel/debug/tracing/kprobe_events\n # echo 1 \u003e /sys/kernel/debug/tracing/options/stacktrace\n # echo 1 \u003e /sys/kernel/debug/tracing/events/kprobes/enable\n # head -n 20 /sys/kernel/debug/tracing/trace\n            bash-2968  [000] 10297.050245: p_schedule_4: (schedule+0x4/0x4ca)\n            bash-2968  [000] 10297.050247: \u003cstack trace\u003e\n \u003d\u003e schedule_timeout\n \u003d\u003e n_tty_read\n \u003d\u003e tty_read\n \u003d\u003e vfs_read\n \u003d\u003e sys_read\n \u003d\u003e system_call_fastpath\n     kworker/0:1-2940  [000] 10297.050265: p_schedule_4: (schedule+0x4/0x4ca)\n     kworker/0:1-2940  [000] 10297.050266: \u003cstack trace\u003e\n \u003d\u003e worker_thread\n \u003d\u003e kthread\n \u003d\u003e kernel_thread_helper\n            sshd-1132  [000] 10297.050365: p_schedule_4: (schedule+0x4/0x4ca)\n            sshd-1132  [000] 10297.050365: \u003cstack trace\u003e\n \u003d\u003e sysret_careful\n\nNote: Even with this fix, the first entry will be skipped\nif the probe is put on the function entry area before\nthe frame pointer is set up (usually, that is 4 bytes\n (push %bp; mov %sp %bp) on x86), because stack unwinder\ndepends on the frame pointer.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110608070934.17777.17116.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "22fe9b54d859e53bfbbbdc1a0a77a82bc453927c",
      "tree": "4aec2d069decbe0786ad5474908f5bbe49732ad4",
      "parents": [
        "749230b06a753a22f6ed96e5dd60815d6ab12865"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Tue Jun 07 21:58:27 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:50 2011 -0400"
      },
      "message": "tracing: Convert to kstrtoul_from_user\n\nThis patch replaces the code for getting an unsigned long from a\nuserspace buffer by a simple call to kstroul_from_user.\nThis makes it easier to read and less error prone.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1307476707-14762-1-git-send-email-peterhuewe@gmx.de\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f56e7f8efb4ec200364f690a9902713410e24d47",
      "tree": "f8708b5a7f82be989b987fbf190a55054dd41c7b",
      "parents": [
        "ffeb80fc30acbf6bd51cb47a1815f621a9d017dc"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:49 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:48 2011 -0400"
      },
      "message": "tracing, function: Fix trace header to follow context-info option\n\nThe header display of function tracer does not follow\nthe context-info option, so field names are displayed even\nif this option is off.\n\nAdded check for TRACE_ITER_CONTEXT_INFO trace_flags.\n\nWith following commands:\n\t# echo function \u003e ./current_tracer\n\t# echo 0 \u003e options/context-info\n\t# cat trace\n\nThis is what it looked like before:\n# tracer: function\n#\n#           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n#              | |       |          |         |\nadd_preempt_count \u003c-schedule\nrcu_note_context_switch \u003c-schedule\n...\n\nThis is what it looks like now:\n# tracer: function\n#\n_raw_spin_unlock_irqrestore \u003c-hrtimer_try_to_cancel\n...\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-4-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cf30cf67d6c7592c670ec946d89fc15ee0deb0eb",
      "tree": "f86ca612b255ee8570e2fd6198e066ea8cf33fe0",
      "parents": [
        "4f271a2a60c748599b30bb4dafff30d770439b96"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 14 22:44:07 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:45 2011 -0400"
      },
      "message": "tracing: Add disable_on_free option\n\nAdd a trace option to disable tracing on free. When this option is\nset, a write into the free_buffer file will not only shrink the\nring buffer down to zero, but it will also disable tracing.\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4f271a2a60c748599b30bb4dafff30d770439b96",
      "tree": "4b6aa671e0fbe3e81a423a551ce5aa1032725e2b",
      "parents": [
        "7ea5906405a1f3fc1c0033dfd7e02f2cfd1de5e5"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Mon Jun 13 17:51:57 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:37 2011 -0400"
      },
      "message": "tracing: Add a proc file to stop tracing and free buffer\n\nThe proc file entry buffer_size_kb is used to set the size of tracing\nbuffer. The memory to expand the buffer size is kernel memory. Consider\na use case where tracing is handled by a user space utility, which acts\nas a gate keeper for tracing requests. In an OOM condition, tracing is\nconsidered a low priority task and if the utility gets killed the ring\nbuffer memory cannot be released back to the kernel.\n\nThis patch adds a proc file called \"free_buffer\" whose purpose is to\nstop tracing and free up the ring buffer when it is closed.\n\nThe user space process can then set the desired size in buffer_size_kb\nfile and open the fd to the \"free_buffer\" file. Under OOM condition, if\nthe process gets killed, the kernel closes the file descriptor. The\nrelease handler stops the tracing and releases the kernel memory\nautomatically.\n\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nLink: http://lkml.kernel.org/r/1308012717-11148-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7ea5906405a1f3fc1c0033dfd7e02f2cfd1de5e5",
      "tree": "f75e962db25ccd3efa81e1fc69ce3e60d228c7a6",
      "parents": [
        "e7e2ee89a9dbf48d70a922d5625cd7320a27cbff"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue May 03 17:56:42 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:04:39 2011 -0400"
      },
      "message": "tracing: Use NUMA allocation for per-cpu ring buffer pages\n\nThe tracing ring buffer is a group of per-cpu ring buffers where\nallocation and logging is done on a per-cpu basis. The events that are\ngenerated on a particular CPU are logged in the corresponding buffer.\nThis is to provide wait-free writes between CPUs and good NUMA node\nlocality while accessing the ring buffer.\n\nHowever, the allocation routines consider NUMA locality only for buffer\npage metadata and not for the actual buffer page. This causes the pages\nto be allocated on the NUMA node local to the CPU where the allocation\nroutine is running at the time.\n\nThis patch fixes the problem by using a NUMA node specific allocation\nroutine so that the pages are allocated from a NUMA node local to the\nlogging CPU.\n\nI tested with the getuid_microbench from autotest. It is a simple binary\nthat calls getuid() in a loop and measures the average time for the\nsyscall to complete. The following command was used to test:\n$ getuid_microbench 1000000\n\nCompared the numbers found on kernel with and without this patch and\nfound that logging latency decreases by 30-50 ns/call.\ntracing with non-NUMA allocation - 569 ns/call\ntracing with NUMA allocation     - 512 ns/call\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1304470602-20366-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e7e2ee89a9dbf48d70a922d5625cd7320a27cbff",
      "tree": "58a5d3387c7b0bf9a4f434867234c0771c22addb",
      "parents": [
        "b58f6b0dd3d677338b9065388cc2cc942b86338e"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue May 10 13:27:21 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 21:59:41 2011 -0400"
      },
      "message": "tracing: Schedule a delayed work to call wakeup()\n\nIn using syscall tracing by concurrent processes, the wakeup() that is\ncalled in the event commit function causes contention on the spin lock\nof the waitqueue. I enabled sys_enter_getuid and sys_exit_getuid\ntracepoints, and by running getuid_microbench from autotest in parallel\nI found that the contention causes exponential latency increase in the\ntracing path.\n\nThe autotest binary getuid_microbench calls getuid() in a tight loop for\nthe given number of iterations and measures the average time required to\ncomplete a single invocation of syscall.\n\nThe patch schedules a delayed work after 2 ms once an event commit calls\nto wake up the trace wait_queue. This removes the delay caused by\ncontention on spin lock in wakeup() and amortizes the wakeup() calls\nscheduled over the 2 ms period.\n\nIn the following example, the script enables the sys_enter_getuid and\nsys_exit_getuid tracepoints and runs the getuid_microbench in parallel\nwith the given number of processes. The output clearly shows the latency\nincrease caused by contentions.\n\n$ ~/getuid.sh 1\n1000000 calls in 0.720974253 s (720.974253 ns/call)\n\n$ ~/getuid.sh 2\n1000000 calls in 1.166457554 s (1166.457554 ns/call)\n1000000 calls in 1.168933765 s (1168.933765 ns/call)\n\n$ ~/getuid.sh 3\n1000000 calls in 1.783827516 s (1783.827516 ns/call)\n1000000 calls in 1.795553270 s (1795.553270 ns/call)\n1000000 calls in 1.796493376 s (1796.493376 ns/call)\n\n$ ~/getuid.sh 4\n1000000 calls in 4.483041796 s (4483.041796 ns/call)\n1000000 calls in 4.484165388 s (4484.165388 ns/call)\n1000000 calls in 4.484850762 s (4484.850762 ns/call)\n1000000 calls in 4.485643576 s (4485.643576 ns/call)\n\n$ ~/getuid.sh 5\n1000000 calls in 6.497521653 s (6497.521653 ns/call)\n1000000 calls in 6.502000236 s (6502.000236 ns/call)\n1000000 calls in 6.501709115 s (6501.709115 ns/call)\n1000000 calls in 6.502124100 s (6502.124100 ns/call)\n1000000 calls in 6.502936358 s (6502.936358 ns/call)\n\nAfter the patch, the latencies scale better.\n1000000 calls in 0.728720455 s (728.720455 ns/call)\n\n1000000 calls in 0.842782857 s (842.782857 ns/call)\n1000000 calls in 0.883803135 s (883.803135 ns/call)\n\n1000000 calls in 0.902077764 s (902.077764 ns/call)\n1000000 calls in 0.902838202 s (902.838202 ns/call)\n1000000 calls in 0.908896885 s (908.896885 ns/call)\n\n1000000 calls in 0.932523515 s (932.523515 ns/call)\n1000000 calls in 0.958009672 s (958.009672 ns/call)\n1000000 calls in 0.986188020 s (986.188020 ns/call)\n1000000 calls in 0.989771102 s (989.771102 ns/call)\n\n1000000 calls in 0.933518391 s (933.518391 ns/call)\n1000000 calls in 0.958897947 s (958.897947 ns/call)\n1000000 calls in 1.031038897 s (1031.038897 ns/call)\n1000000 calls in 1.089516025 s (1089.516025 ns/call)\n1000000 calls in 1.141998347 s (1141.998347 ns/call)\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1305059241-7629-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "932fed4e2e42c3d730c01bb63b1c4f812c533d5b",
      "tree": "11b1afac3a40d253cdb905c42901edfaae5e196e",
      "parents": [
        "57d524154ffe99d27fb55e0e30ddbad9f4c35806",
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 10 17:05:24 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 10 17:05:45 2011 +0200"
      },
      "message": "Merge commit \u0027v2.6.39-rc7\u0027 into perf/core\n\nMerge reason: pull in the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a3a4a5acd3bd2f6f1e102e1f1b9d2e2bb320a7fd",
      "tree": "8ed40e1c0bb654d824e39e6b42d1619a2807e75d",
      "parents": [
        "e5e06985bec89414ce2b3f301c24d884f609b020"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu May 05 23:55:18 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 06 13:20:59 2011 -0700"
      },
      "message": "Regression: partial revert \"tracing: Remove lock_depth from event entry\"\n\nThis partially reverts commit e6e1e2593592a8f6f6380496655d8c6f67431266.\n\nThat commit changed the structure layout of the trace structure, which\nin turn broke PowerTOP (1.9x generation) quite badly.\n\nI appreciate not wanting to expose the variable in question, and\nPowerTOP was not using it, so I\u0027ve replaced the variable with just a\npadding field - that way if in the future a new field is needed it can\njust use this padding field.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32673822e440eb92eb334631eb0a199d0c532d13",
      "tree": "c1e55c1793fa17937d9b8e0a9a2946583f1948d5",
      "parents": [
        "fa7b69475a6c192853949ba496dd9c37b497b548",
        "5373db886b791b2bc7811e2c115377916c409a5d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 27 10:38:30 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 27 10:40:21 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n\nConflicts:\n\tinclude/linux/perf_event.h\n\nMerge reason: pick up the latest jump-label enhancements, they are cooked ready.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee5e51f51be755830f57445e268ba50e88ccbdbb",
      "tree": "059d6c5843275a5ab94ae01408c1dc6dbe00b2ea",
      "parents": [
        "1813dc3776c22ad4b0294a6df8434b9a02c98109"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Mar 25 12:05:18 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 04 12:18:24 2011 -0400"
      },
      "message": "tracing: Avoid soft lockup in trace_pipe\n\nrunning following commands:\n\n  # enable the binary option\n  echo 1 \u003e ./options/bin\n  # disable context info option\n  echo 0 \u003e ./options/context-info\n  # tracing only events\n  echo 1 \u003e ./events/enable\n  cat trace_pipe\n\nplus forcing system to generate many tracing events,\nis causing lockup (in NON preemptive kernels) inside\ntracing_read_pipe function.\n\nThe issue is also easily reproduced by running ltp stress test.\n(ftrace_stress_test.sh)\n\nThe reasons are:\n - bin/hex/raw output functions for events are set to\n   trace_nop_print function, which prints nothing and\n   returns TRACE_TYPE_HANDLED value\n - LOST EVENT trace do not handle trace_seq overflow\n\nThese reasons force the while loop in tracing_read_pipe\nfunction never to break.\n\nThe attached patch fixies handling of lost event trace, and\nchanges trace_nop_print to print minimal info, which is needed\nfor the correct tracing_read_pipe processing.\n\nv2 changes:\n - omit the cond_resched changes by trace_nop_print changes\n - WARN changed to WARN_ONCE and added info to be able\n   to find out the culprit\n\nv3 changes:\n - make more accurate patch comment\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c20110325110518.GC1922@jolsa.brq.redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.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": "4a0b1665db09cf2da9ad7d0f12da386373c10bfa",
      "tree": "aecfb7f1d6df7920fc7134125bfe24647c98cdc4",
      "parents": [
        "9a24470b2826e4665b1484836c7ae6aba1ddea32"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 09 20:09:26 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 10 10:34:58 2011 -0500"
      },
      "message": "tracing: Fix irqoff selftest expanding max buffer\n\nIf the kernel command line declares a tracer \"ftrace\u003dsometracer\" and\nthat tracer is either not defined or is enabled after irqsoff,\nthen the irqs off selftest will fail with the following error:\n\nTesting tracer irqsoff:\n------------[ cut here ]------------\nWARNING: at /home/rostedt/work/autotest/nobackup/linux-test.git/kernel/trace/tra\nce.c:713 update_max_tr_single+0xfa/0x11b()\nHardware name:\nModules linked in:\nPid: 1, comm: swapper Not tainted 2.6.38-rc8-test #1\nCall Trace:\n [\u003cc0441d9d\u003e] ? warn_slowpath_common+0x65/0x7a\n [\u003cc049adb2\u003e] ? update_max_tr_single+0xfa/0x11b\n [\u003cc0441dc1\u003e] ? warn_slowpath_null+0xf/0x13\n [\u003cc049adb2\u003e] ? update_max_tr_single+0xfa/0x11b\n [\u003cc049e454\u003e] ? stop_critical_timing+0x154/0x204\n [\u003cc049b54b\u003e] ? trace_selftest_startup_irqsoff+0x5b/0xc1\n [\u003cc049b54b\u003e] ? trace_selftest_startup_irqsoff+0x5b/0xc1\n [\u003cc049b54b\u003e] ? trace_selftest_startup_irqsoff+0x5b/0xc1\n [\u003cc049e529\u003e] ? time_hardirqs_on+0x25/0x28\n [\u003cc0468bca\u003e] ? trace_hardirqs_on_caller+0x18/0x12f\n [\u003cc0468cec\u003e] ? trace_hardirqs_on+0xb/0xd\n [\u003cc049b54b\u003e] ? trace_selftest_startup_irqsoff+0x5b/0xc1\n [\u003cc049b6b8\u003e] ? register_tracer+0xf8/0x1a3\n [\u003cc14e93fe\u003e] ? init_irqsoff_tracer+0xd/0x11\n [\u003cc040115e\u003e] ? do_one_initcall+0x71/0x121\n [\u003cc14e93f1\u003e] ? init_irqsoff_tracer+0x0/0x11\n [\u003cc14ce3a9\u003e] ? kernel_init+0x13a/0x1b6\n [\u003cc14ce26f\u003e] ? kernel_init+0x0/0x1b6\n [\u003cc0403842\u003e] ? kernel_thread_helper+0x6/0x10\n---[ end trace e93713a9d40cd06c ]---\n.. no entries found ..FAILED!\n\nWhat happens is the \"ftrace\u003d...\" will expand the ring buffer to its\ndefault size (from its minimum size) but it will not expand the\nmax ring buffer (the ring buffer to store maximum latencies).\nWhen the irqsoff test runs, it will call the ring buffer swap routine\nthat checks if the max ring buffer is the same size as the normal\nring buffer, and will fail if it is not. This causes the test to fail.\n\nThe solution is to expand the max ring buffer before running the self\ntest if the max ring buffer is used by that tracer and the normal ring\nbuffer is expanded. The max ring buffer should be shrunk again after\nthe test is done to save space.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e6e1e2593592a8f6f6380496655d8c6f67431266",
      "tree": "00ef843b23fac5ab6be92725ce5b01487f555997",
      "parents": [
        "de29be5e712dc8b7eef2bef9417af3bb6a88e47a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 09 10:41:56 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 10 10:31:48 2011 -0500"
      },
      "message": "tracing: Remove lock_depth from event entry\n\nThe lock_depth field in the event headers was added as a temporary\ndata point for help in removing the BKL. Now that the BKL is pretty\nmuch been removed, we can remove this field.\n\nThis in turn changes the header from 12 bytes to 8 bytes,\nremoving the 4 byte buffer that gcc would insert if the first field\nin the data load was 8 bytes in size.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "750912fa366312e9c5bc83eab352898a26750401",
      "tree": "bb8e5cd1444a74ea283e3fa55607225e7fda4d70",
      "parents": [
        "2a8247a2600c3e087a568fc68a6ec4eedac27ef1"
      ],
      "author": {
        "name": "David Sharp",
        "email": "dhsharp@google.com",
        "time": "Wed Dec 08 13:46:47 2010 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 09 13:52:27 2011 -0500"
      },
      "message": "tracing: Add an \u0027overwrite\u0027 trace_option.\n\nAdd an \"overwrite\" trace_option for ftrace to control whether the buffer should\nbe overwritten on overflow or not. The default remains to overwrite old events\nwhen the buffer is full. This patch adds the option to instead discard newest\nevents when the buffer is full. This is useful to get a snapshot of traces just\nafter enabling traces. Dropping the current event is also a simpler code path.\n\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nLKML-Reference: \u003c1291844807-15481-1-git-send-email-dhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6752ab4a9c30d5411b2dfdb251a3f1cb18aae487",
      "tree": "2f6e2bb5b562c43b3b3d7efe095e196a19995395",
      "parents": [
        "87d80de2800d087ea833cb79bc13f85ff34ed49f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 08 13:54:06 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 08 17:14:58 2011 -0500"
      },
      "message": "tracing: Deprecate tracing_enabled for tracing_on\n\ntracing_enabled should not be used, it is heavy weight and does not\ndo much in helping lower the overhead.\n\ntracing_on should be used instead. Warn users to use tracing_on\nwhen tracing_enabled is used as it will soon be removed from the\ntracing directory.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1dbd1951f39e13da579ffe879cce19586d0462de",
      "tree": "faf1ea3208d0e612968a2892917c036a32ff9bda",
      "parents": [
        "bd1c8b22b7b81c6f6c4f5c19cb2387da3d02fb0f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 09 15:47:56 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 23:20:02 2011 -0500"
      },
      "message": "tracing: Fix preempt count leak\n\nWhile running my ftrace stress test, this showed up:\n\nBUG: sleeping function called from invalid context at mm/mmap.c:233\n...\nnote: cat[3293] exited with preempt_count 1\n\nThe bug was introduced by commit 91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e\n(\"tracing: Fix recursive user stack trace\")\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4D0089AC.1020802@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d949750fed168b6553ca11ed19e4affd19d7a4d7",
      "tree": "a98953ef3448b7b4909f1d90be266e0cfbdff328",
      "parents": [
        "ce677831a4abd0f9f957c90ac6f6a0d0472bafb4",
        "e63233f75a1a6bfa97ffb52a20cc6801a4c63fb2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 16 11:21:24 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 16 11:21:24 2010 +0100"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "364829b1263b44aa60383824e4c1289d83d78ca7",
      "tree": "daaaf4cecd56ff9f3f9a2eadc69d0cc4f361c607",
      "parents": [
        "60e677373be9c0bf7c9a22937601d5a40e51c042"
      ],
      "author": {
        "name": "Slava Pestov",
        "email": "slavapestov@google.com",
        "time": "Wed Nov 24 15:13:16 2010 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 30 12:18:17 2010 -0500"
      },
      "message": "tracing: Fix panic when lseek() called on \"trace\" opened for writing\n\nThe file_ops struct for the \"trace\" special file defined llseek as seq_lseek().\nHowever, if the file was opened for writing only, seq_open() was not called,\nand the seek would dereference a null pointer, file-\u003eprivate_data.\n\nThis patch introduces a new wrapper for seq_lseek() which checks if the file\ndescriptor is opened for reading first. If not, it does nothing.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Slava Pestov \u003cslavapestov@google.com\u003e\nLKML-Reference: \u003c1290640396-24179-1-git-send-email-slavapestov@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d2f30c73aba19be828c759edcd21140390cd06e4",
      "tree": "b9bad75b11e21680f8f9443f0143d62be23cae78",
      "parents": [
        "1b065fdff1c950d96e4c571abe873a9a8aaa6d51",
        "02a9d03772aa1ff33a26180a2da0bfb191240eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "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:\n  perf symbols: Remove incorrect open-coded container_of()\n  perf record: Handle restrictive permissions in /proc/{kallsyms,modules}\n  x86/kprobes: Prevent kprobes to probe on save_args()\n  irq_work: Drop cmpxchg() result\n  perf: Fix owner-list vs exit\n  x86, hw_nmi: Move backtrace_mask declaration under ARCH_HAS_NMI_WATCHDOG\n  tracing: Fix recursive user stack trace\n  perf,hw_breakpoint: Initialize hardware api earlier\n  x86: Ignore trap bits on single step exceptions\n  tracing: Force arch_local_irq_* notrace for paravirt\n  tracing: Fix module use of trace_bprintk()\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e",
      "tree": "26d7afb8373474a4d44d0eba4130499676c35bc7",
      "parents": [
        "b5908548537ccd3ada258ca5348df7ffc93e5a06"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 10 12:56:12 2010 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 12 21:20:08 2010 -0500"
      },
      "message": "tracing: Fix recursive user stack trace\n\nThe user stack trace can fault when examining the trace. Which\nwould call the do_page_fault handler, which would trace again,\nwhich would do the user stack trace, which would fault and call\ndo_page_fault again ...\n\nThus this is causing a recursive bug. We need to have a recursion\ndetector here.\n\n[ Resubmitted by Jiri Olsa ]\n\n[ Eric Dumazet recommended using __this_cpu_* instead of __get_cpu_* ]\n\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1289390172-9730-3-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "dd49a38cf30944be27892c10b1c0e5b3fa73bcb2",
      "tree": "6f517e3e643923556c92a647918984fc2ea36bb8",
      "parents": [
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 20 21:51:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 21 08:55:06 2010 -0400"
      },
      "message": "tracing: Do not limit the size of the number of CPU buffers\n\nThe tracing per_cpu buffers were limited to 999 CPUs for a mear\nsavings in stack space of a char array. Up the array to 30 characters\nwhich is more than enough to hold a 64 bit number.\n\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "907f27840985fe6a0c62e43cd4702c6e04b4bcc7",
      "tree": "1023e32295a25e0602aef4bab14f41b97975f6bd",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Mon Sep 27 19:04:53 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:22 2010 -0400"
      },
      "message": "tracing/trivial: Remove cast from void*\n\nUnnecessary cast from void* in assignment.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d244b6bd41e09ecbb09c738cc2c108be227398c8",
      "tree": "848c6a8a0d6f83929daf43d63e241dc8072066ac",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73",
        "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "message": "Merge branch \u0027tip/perf/urgent-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into trace/tip/perf/urgent-4\n\nConflicts:\n\tkernel/trace/trace_events.c\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa",
      "tree": "815f3c1d184b61958ee48eb868ed28b1e5aab278",
      "parents": [
        "2a37a3df57c44e947271758a1aa4bea7bff9feab"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed Jul 28 01:18:01 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 13 15:23:16 2010 -0400"
      },
      "message": "tracing: Sanitize value returned from write(trace_marker, \"...\", len)\n\nWhen userspace code writes non-new-line-terminated string to trace_marker\nfile, write handler appends new-line and returns number of bytes written\nto trace buffer, so\nwrite(fd, \"abc\", 3) will return 4\n\nThat\u0027s unexpected and unfortunately it confuses glibc\u0027s fprintf function.\n\nExample:\nint main() {\n  fprintf(stderr, \"abc\");\n  return 0;\n}\n\n$ gcc test.c -o test\n$ echo mmiotrace \u003e /sys/kernel/debug/tracing/current_tracer\n$ ./test 2\u003e/sys/kernel/debug/tracing/trace_marker\n\nresults in infinite loop:\nwrite(fd, \"abc\", 3) \u003d 4\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\n(...)\n\n...and kernel trace buffer full of empty markers.\n\nFix it by sanitizing write return value.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nLKML-Reference: \u003c20100727231801.GB2826@joi.lan\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
      "tree": "8e3fce9f27fd058904c0a3247a5c5ebb8df9fbe8",
      "parents": [
        "cd816a0d84377c4e87f55cbe934a23417f9f5743",
        "5f202bd5ca64132cdd7f186656bc0221f257733d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  do_coredump: Do not take BKL\n  init: Remove the BKL from startup code\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "955b61e597984745fb7d34c75708f6503b6aaeab",
      "tree": "c928ca54a8231b0432e729d8b675e473a5db9104",
      "parents": [
        "3f0a55e3579a500ce9f5cdab70a5741f99769118"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n\nAdd in a helper function to allow the kdb shell to dump the ftrace\nbuffer.\n\nModify trace.c to expose the capability to iterate over the ftrace\nbuffer in a read only capacity.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "3a01736e70a7d629140695ba46a901266b4460cc",
      "tree": "49ff8ce1e7c6a267f0ce84b5daddbe6666bc4253",
      "parents": [
        "4c21adf26f8fcf86a755b9b9f55c2e9fd241e1fb",
        "24a461d537f49f9da6533d83100999ea08c6c755"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "24a461d537f49f9da6533d83100999ea08c6c755",
      "tree": "b7aa6258df988a64d802eff0b15e92c394742a2e",
      "parents": [
        "a484e54fae891703cbe1c9ec1b536605f11f5482"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jul 10 12:06:44 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 22 14:56:41 2010 -0400"
      },
      "message": "trace: strlen() return doesn\u0027t account for the NULL\n\nWe need to add one to the strlen() return because of the NULL\ncharacter.  The type-\u003ename here generally comes from the kernel and I\ndon\u0027t think any of them come close to being MAX_TRACER_SIZE (100)\ncharacters long so this is basically a cleanup.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nLKML-Reference: \u003c20100710100644.GV19184@bicker\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ef710e100c1068d3dd5774d2b34c5485219e06ce",
      "tree": "ed295053a31de472d4ed4338679c00ac8e8437c7",
      "parents": [
        "bc289ae98b75d93228d24f521ef02a076e506e94"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Jul 01 14:34:35 2010 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 21 10:20:17 2010 -0400"
      },
      "message": "tracing: Shrink max latency ringbuffer if unnecessary\n\nDocumentation/trace/ftrace.txt says\n\n  buffer_size_kb:\n\n        This sets or displays the number of kilobytes each CPU\n        buffer can hold. The tracer buffers are the same size\n        for each CPU. The displayed number is the size of the\n        CPU buffer and not total size of all buffers. The\n        trace buffers are allocated in pages (blocks of memory\n        that the kernel uses for allocation, usually 4 KB in size).\n        If the last page allocated has room for more bytes\n        than requested, the rest of the page will be used,\n        making the actual allocation bigger than requested.\n        ( Note, the size may not be a multiple of the page size\n          due to buffer management overhead. )\n\n        This can only be updated when the current_tracer\n        is set to \"nop\".\n\nBut it\u0027s incorrect. currently total memory consumption is\n\u0027buffer_size_kb x CPUs x 2\u0027.\n\nWhy two times difference is there? because ftrace implicitly allocate\nthe buffer for max latency too.\n\nThat makes sad result when admin want to use large buffer. (If admin\nwant full logging and makes detail analysis). example, If admin\nhave 24 CPUs machine and write 200MB to buffer_size_kb, the system\nconsume ~10GB memory (200MB x 24 x 2). umm.. 5GB memory waste is\nusually unacceptable.\n\nFortunatelly, almost all users don\u0027t use max latency feature.\nThe max latency buffer can be disabled easily.\n\nThis patch shrink buffer size of the max latency buffer if\nunnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLKML-Reference: \u003c20100701104554.DA2D.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e870e9a1240bcef1157ffaaf71dac63362e71904",
      "tree": "b8f57a68ff45b35dab8cdfa474e17622d275bdc6",
      "parents": [
        "cc5edb0eb9ce892b530e34a5d110382483587942"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 02 11:07:32 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 20 21:52:33 2010 -0400"
      },
      "message": "tracing: Allow to disable cmdline recording\n\nWe found that even enabling a single trace event that will rarely be\ntriggered can add big overhead to context switch.\n\n(lmbench context switch test)\n -------------------------------------------------\n 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K\n ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw\n------ ------ ------ ------ ------ ------- -------\n  2.19   2.3   2.21   2.56   2.13     2.54    2.07\n  2.39   2.51  2.35   2.75   2.27     2.81    2.24\n\nThe overhead is 6% ~ 11%.\n\nIt\u0027s because when a trace event is enabled 3 tracepoints (sched_switch,\nsched_wakeup, sched_wakeup_new) will be activated to map pid to cmdname.\n\nWe\u0027d like to avoid this overhead, so add a trace option \u0027(no)record-cmd\u0027\nto allow to disable cmdline recording.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4C2D57F4.2050204@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b444786f1a797a7f84e2561346a670649f9c7b3c",
      "tree": "42260d0930addbe623d952fff75e0fba7f63d6c6",
      "parents": [
        "eb7beb5c09af75494234ea6acd09d0a647cf7338"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 23:40:11 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 14:31:24 2010 +0200"
      },
      "message": "tracing: Use generic_file_llseek for debugfs\n\nThe default for llseek will change to no_llseek,\nso the tracing debugfs files need to add explicit\n.llseek assignments. Since we\u0027re dealing with regular\nfiles from a VFS perspective, use generic_file_llseek.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1278538820-1392-10-git-send-email-arnd@arndb.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "eb7beb5c09af75494234ea6acd09d0a647cf7338",
      "tree": "ab76cb3a6c1f1ea9befbbc72d0f997c03423dd57",
      "parents": [
        "f376bf5ffbad863d4bc3b2586b7e34cdf756ad17"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 16 00:50:03 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 14:31:07 2010 +0200"
      },
      "message": "tracing: Remove special traces\n\nSpecial traces type was only used by sysprof. Lets remove it now\nthat sysprof ftrace plugin has been dropped.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Soeren Sandmann \u003csandmann@daimi.au.dk\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f376bf5ffbad863d4bc3b2586b7e34cdf756ad17",
      "tree": "712a78b2b455995ceb4e12b5ae02df76dc07f01e",
      "parents": [
        "cc5edb0eb9ce892b530e34a5d110382483587942"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 16 00:26:26 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 14:29:46 2010 +0200"
      },
      "message": "tracing: Remove sysprof ftrace plugin\n\nThe sysprof ftrace plugin doesn\u0027t seem to be seriously used\nsomewhere. There is a branch in the sysprof tree that makes\nan interface to it, but the real sysprof tool uses either its\nown module or perf events.\n\nDrop the sysprof ftrace plugin then, as it\u0027s mostly useless.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Soeren Sandmann \u003csandmann@daimi.au.dk\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "5e3d20a68f63fc5a310687d81956c3b96e488b84",
      "tree": "576da563442772fe7a492589c1e08c422ff02b1c",
      "parents": [
        "815c4163b6c8ebf8152f42b0a5fd015cfdcedc78"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Jul 04 00:02:26 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 09 15:40:32 2010 +0200"
      },
      "message": "init: Remove the BKL from startup code\n\nI have shown by code review that no driver takes\nthe BKL at init time any more, so whatever the\ninit code was locking against is no longer there\nand it is now safe to remove the BKL there.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8",
      "tree": "3f44aa013d31d34951e9610e79ff14c1148ad6ac",
      "parents": [
        "7be7923633a142402266d642ccebf74f556a649b",
        "018378c55b03f88ff513aba4e0e93b8d4a9cf241"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:57 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "30dbb20e68e6f7df974b77d2350ebad5eb6f6c9e",
      "tree": "b28f8232756e0de57ded858d6584724317b405ef",
      "parents": [
        "b0f82b81fe6bbcf78d478071f33e44554726bc81"
      ],
      "author": {
        "name": "Américo Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed May 26 18:57:53 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 08 23:31:28 2010 +0200"
      },
      "message": "tracing: Remove boot tracer\n\nThe boot tracer is useless. It simply logs the initcalls\nbut in fact these initcalls are also logged through printk\nwhile using the initcall_debug kernel parameter.\n\nNobody seem to be using it so far. Then just remove it.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c20100526105753.GA5677@cr0.nay.redhat.com\u003e\n[ remove the hooks in main.c, and the headers ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6113e45f831616de98c54a005260223b21bcb6b9",
      "tree": "0d56dbfae392f89b33c2ae6a36a5cc1ea1c1c988",
      "parents": [
        "84bb671dc46d77d665d2b5e74539e81b2129bb3e",
        "5168ae50a66e3ff7184c2b16d661bd6d70367e50"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 19:34:40 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 19:34:40 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "5168ae50a66e3ff7184c2b16d661bd6d70367e50",
      "tree": "2fb21fc3bd346e4f589605d940dfb1bacac30bf5",
      "parents": [
        "d1f74e20b5b064a130cd0743a256c2d3cfe84010"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 03 09:36:50 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 03 19:32:38 2010 -0400"
      },
      "message": "tracing: Remove ftrace_preempt_disable/enable\n\nThe ftrace_preempt_disable/enable functions were to address a\nrecursive race caused by the function tracer. The function tracer\ntraces all functions which makes it easily susceptible to recursion.\nOne area was preempt_enable(). This would call the scheduler and\nthe schedulre would call the function tracer and loop.\n(So was it thought).\n\nThe ftrace_preempt_disable/enable was made to protect against recursion\ninside the scheduler by storing the NEED_RESCHED flag. If it was\nset before the ftrace_preempt_disable() it would not call schedule\non ftrace_preempt_enable(), thinking that if it was set before then\nit would have already scheduled unless it was already in the scheduler.\n\nThis worked fine except in the case of SMP, where another task would set\nthe NEED_RESCHED flag for a task on another CPU, and then kick off an\nIPI to trigger it. This could cause the NEED_RESCHED to be saved at\nftrace_preempt_disable() but the IPI to arrive in the the preempt\ndisabled section. The ftrace_preempt_enable() would not call the scheduler\nbecause the flag was already set before entring the section.\n\nThis bug would cause a missed preemption check and cause lower latencies.\n\nInvestigating further, I found that the recusion caused by the function\ntracer was not due to schedule(), but due to preempt_schedule(). Now\nthat preempt_schedule is completely annotated with notrace, the recusion\nno longer is an issue.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc7d352c5e76c74c628a39b99777a1bdddde5e81",
      "tree": "3cc0a80defb54d284e2a9a1e69b1224064921775",
      "parents": [
        "b3f2f6cd1ff935ecac9a5346904b899d7af689fe",
        "92af1abde4f2d74c9e5f7b670a1971779ed0b051"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:01 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:\n  perf tui: Fix last use_browser problem related to .perfconfig\n  perf symbols: Add the build id cache to the vmlinux path\n  perf tui: Reset use_browser if stdout is not a tty\n  ring-buffer: Move zeroing out excess in page to ring buffer code\n  ring-buffer: Reset \"real_end\" when page is filled\n"
    },
    {
      "commit": "c5617b200ac52e35f7e8cf05a17b0a2d50f6b3e9",
      "tree": "40d5e99660c77c5791392d349a93113c044dbf14",
      "parents": [
        "cad719d86e9dbd06634eaba6401e022c8101d6b2",
        "49c177461bfbedeccbab22bf3905db2f9da7f1c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (61 commits)\n  tracing: Add __used annotation to event variable\n  perf, trace: Fix !x86 build bug\n  perf report: Support multiple events on the TUI\n  perf annotate: Fix up usage of the build id cache\n  x86/mmiotrace: Remove redundant instruction prefix checks\n  perf annotate: Add TUI interface\n  perf tui: Remove annotate from popup menu after failure\n  perf report: Don\u0027t start the TUI if -D is used\n  perf: Fix getline undeclared\n  perf: Optimize perf_tp_event_match()\n  perf: Remove more code from the fastpath\n  perf: Optimize the !vmalloc backed buffer\n  perf: Optimize perf_output_copy()\n  perf: Fix wakeup storm for RO mmap()s\n  perf-record: Share per-cpu buffers\n  perf-record: Remove -M\n  perf: Ensure that IOC_OUTPUT isn\u0027t used to create multi-writer buffers\n  perf, trace: Optimize tracepoints by using per-tracepoint-per-cpu hlist to track events\n  perf, trace: Optimize tracepoints by removing IRQ-disable from perf/tracepoint interaction\n  perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfig\n  ...\n"
    },
    {
      "commit": "2711ca237a084286ea1c2dcf82ab2aadab23a00d",
      "tree": "a795fa0e31e8557befd803153a33827b1d0c8764",
      "parents": [
        "b3230c8b44da5838cf396942d5c1ab19f8e8f720"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 21 13:32:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 25 11:57:26 2010 -0400"
      },
      "message": "ring-buffer: Move zeroing out excess in page to ring buffer code\n\nCurrently the trace splice code zeros out the excess bytes in the page before\nsending it off to userspace.\n\nThis is to make sure userspace is not getting anything it should not be\nwhen reading the pages, because the excess data was never initialized\nto zero before writing (for perfomance reasons).\n\nBut the splice code has no business in doing this work, it should be\ndone by the ring buffer. With the latest changes for recording lost\nevents, the splice code gets it wrong anyway.\n\nMove the zeroing out of excess bytes into the ring buffer code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35f3d14dbbc58447c61e38a162ea10add6b31dc7",
      "tree": "3e03cd540b7dcdac82195c4e76862c0ce6daaaf0",
      "parents": [
        "3d42b3612891baecf709d93f28655a6882a65d41"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 10:43:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:40 2010 +0200"
      },
      "message": "pipe: add support for shrinking and growing pipes\n\nThis patch adds F_GETPIPE_SZ and F_SETPIPE_SZ fcntl() actions for\ngrowing and shrinking the size of a pipe and adjusts pipe.c and splice.c\n(and relay and network splice) usage to work with these larger (or smaller)\npipes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a9a5776380208a3e48a92d0c763ee1a3b486fb73",
      "tree": "5ecd41c3b373e2156f5bf748ae777e022296a30c",
      "parents": [
        "0405ab80aa94afb13bf9ac4a6fc9f2923d4b9114"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 22 18:46:14 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:20:32 2010 -0400"
      },
      "message": "tracing: Allow events to share their print functions\n\nMultiple events may use the same method to print their data.\nInstead of having all events have a pointer to their print funtions,\nthe trace_event structure now points to a trace_event_functions structure\nthat will hold the way to print ouf the event.\n\nThe event itself is now passed to the print function to let the print\nfunction know what kind of event it should print.\n\nThis opens the door to consolidating the way several events print\ntheir output.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4900382\t1048964\t 861512\t6810858\t 67ecea\tvmlinux.init\n4900446\t1049028\t 861512\t6810986\t 67ed6a\tvmlinux.preprint\n\nThis change slightly increases the size but is needed for the next change.\n\nv3: Fix the branch tracer events to handle this change.\n\nv2: Fix the new function graph tracer event calls to handle this change.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "72c9ddfd4c5bf54ef03cfdf57026416cb678eeba",
      "tree": "bd2c2b6b411975a8219d7138ba7699ee5d324e77",
      "parents": [
        "62b915f1060996a8e1f69be50e3b8e9e43b710cb"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 15:47:11 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 13:06:35 2010 -0400"
      },
      "message": "ring-buffer: Make non-consuming read less expensive with lots of cpus.\n\nWhen performing a non-consuming read, a synchronize_sched() is\nperformed once for every cpu which is actively tracing.\n\nThis is very expensive, and can make it take several seconds to open\nup the \u0027trace\u0027 file with lots of cpus.\n\nOnly one synchronize_sched() call is actually necessary.  What is\ndesired is for all cpus to see the disabling state change.  So we\ntransform the existing sequence:\n\n\tfor_each_cpu() {\n\t\tring_buffer_read_start();\n\t}\n\nwhere each ring_buffer_start() call performs a synchronize_sched(),\ninto the following:\n\n\tfor_each_cpu() {\n\t\tring_buffer_read_prepare();\n\t}\n\tring_buffer_read_prepare_sync();\n\tfor_each_cpu() {\n\t\tring_buffer_read_start();\n\t}\n\nwherein only the single ring_buffer_read_prepare_sync() call needs to\ndo the synchronize_sched().\n\nThe first phase, via ring_buffer_read_prepare(), allocates the \u0027iter\u0027\nmemory and increments -\u003erecord_disabled.\n\nIn the second phase, ring_buffer_read_prepare_sync() makes sure this\n-\u003erecord_disabled state is visible fully to all cpus.\n\nAnd in the final third phase, the ring_buffer_read_start() calls reset\nthe \u0027iter\u0027 objects allocated in the first phase since we now know that\nnone of the cpus are adding trace entries any more.\n\nThis makes openning the \u0027trace\u0027 file nearly instantaneous on a\nsparc64 Niagara2 box with 128 cpus tracing.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003c20100420.154711.11246950.davem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "62b915f1060996a8e1f69be50e3b8e9e43b710cb",
      "tree": "26741f065b30b67022d680c3bc2afbda319638e1",
      "parents": [
        "d7a8d9e907cc294ec7a4a7046d1886375fbcc82e"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Apr 02 19:01:22 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 12:36:53 2010 -0400"
      },
      "message": "tracing: Add graph output support for irqsoff tracer\n\nAdd function graph output to irqsoff tracer.\n\nThe graph output is enabled by setting new \u0027display-graph\u0027 trace option.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1270227683-14631-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cecbca96da387428e220e307a9c945e37e2f4d9e",
      "tree": "2edefda983658c19a8f2b38ff951a3046597a4f7",
      "parents": [
        "b15c7b1cee119999e9eafcd602d24a595e77adac"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 18 19:08:41 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 21 23:11:42 2010 +0200"
      },
      "message": "tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n\nThe ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one\ndump every cpu buffers when an oops or panic happens.\n\nIt\u0027s nice when you have few cpus but it may take ages if have many,\nplus you miss the real origin of the problem in all the cpu traces.\n\nSometimes, all you need is to dump the cpu buffer that triggered the\nopps, most of the time it is our main interest.\n\nThis patch modifies ftrace_dump_on_oops to handle this choice.\n\nThe ftrace_dump_on_oops kernel parameter, when it comes alone, has\nthe same behaviour than before. But ftrace_dump_on_oops\u003dorig_cpu\nwill only dump the buffer of the cpu that oops\u0027ed.\n\nSimilarly, sysctl kernel.ftrace_dump_on_oops\u003d1 and\necho 1 \u003e /proc/sys/kernel/ftrace_dump_on_oops keep their previous\nbehaviour. But setting 2 jumps into cpu origin dump mode.\n\nv2: Fix double setup\nv3: Fix spelling issues reported by Randy Dunlap\nv4: Also update __ftrace_dump in the selftests\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "b15c7b1cee119999e9eafcd602d24a595e77adac",
      "tree": "48765b70c65e80d62f0ce11a3245b4ef2299b060",
      "parents": [
        "c1ab9cab75098924fa8226a8a371de66977439df",
        "aa27497c2fb4c7f57706099bd489e683e5cc3e3b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 14 12:15:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 14 12:15:23 2010 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/core\n"
    },
    {
      "commit": "c1ab9cab75098924fa8226a8a371de66977439df",
      "tree": "767e77302ca8f2eb781c60624bc8518cd50ba6eb",
      "parents": [
        "ff0ff84a0767df48d728c36510365344a7e7d582",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 09:06:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 10:18:47 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/module.h\n\tkernel/module.c\n\nSemantic conflict:\n\tinclude/trace/events/module.h\n\nMerge reason: Resolve the conflict with upstream commit 5fbfb18 (\"Fix up\n              possibly racy module refcounting\")\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa27497c2fb4c7f57706099bd489e683e5cc3e3b",
      "tree": "66fab7036e68592003548fd753b31d906d38b7ee",
      "parents": [
        "ff0ff84a0767df48d728c36510365344a7e7d582"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Apr 05 17:11:05 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 05 11:01:22 2010 -0400"
      },
      "message": "tracing: Fix uninitialized variable of tracing/trace output\n\nBecause a local variable is not initialized, I got these\nwhen I did \u0027cat tracing/trace\u0027. (not trace_pipe):\n\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770221: lock_acquire: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770221: lock_release: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446612133255294080 EVENTS]\n              ps-3099  [000]   560.770221: lock_acquire: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770222: lock_release: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770222: lock_release: ffffffff816cfb98 dcache_lock\n\nSee peek_next_entry(), it does not set *lost_events when we \u0027cat tracing/trace\u0027\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BB9A929.2000303@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc21b478425ac73f66a5ec0b375a5e0d12d609ce",
      "tree": "a5e8be66a9114f73d4c87112d515424f14e7bebd",
      "parents": [
        "66a8cb95ed04025664d1db4e952155ee1dccd048"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 31 19:49:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:57:06 2010 -0400"
      },
      "message": "tracing: Show the lost events in the trace_pipe output\n\nNow that the ring buffer can keep track of where events are lost.\nUse this information to the output of trace_pipe:\n\n       hackbench-3588  [001]  1326.701660: lock_acquire: ffffffff816591e0 read rcu_read_lock\n       hackbench-3588  [001]  1326.701661: lock_acquire: ffff88003f4091f0 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\n       hackbench-3588  [001]  1326.701664: lock_release: ffff88003f4091f0 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:1 [LOST 673 EVENTS]\n       hackbench-3588  [001]  1326.702711: kmem_cache_free: call_site\u003dffffffff81102b85 ptr\u003dffff880026d96738\n       hackbench-3588  [001]  1326.702712: lock_release: ffff88003e1480a8 \u0026mm-\u003emmap_sem\n       hackbench-3588  [001]  1326.702713: lock_acquire: ffff88003e1480a8 \u0026mm-\u003emmap_sem\n\nEven works with the function graph tracer:\n\n 2) ! 170.098 us  |                                            }\n 2)   4.036 us    |                                            rcu_irq_exit();\n 2)   3.657 us    |                                            idle_cpu();\n 2) ! 190.301 us  |                                          }\nCPU:2 [LOST 2196 EVENTS]\n 2)   0.853 us    |                            } /* cancel_dirty_page */\n 2)               |                            remove_from_page_cache() {\n 2)   1.578 us    |                              _raw_spin_lock_irq();\n 2)               |                              __remove_from_page_cache() {\n\nNote, it does not work with the iterator \"trace\" file, since it requires\nthe use of consuming the page from the ring buffer to determine how many\nevents were lost, which the iterator does not do.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "66a8cb95ed04025664d1db4e952155ee1dccd048",
      "tree": "74417422a78bc8198de46b0e52e490175af866e0",
      "parents": [
        "eb0c53771fb2f5f66b0edb3ebce33be4bbf1c285"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 31 13:21:56 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:57:04 2010 -0400"
      },
      "message": "ring-buffer: Add place holder recording of dropped events\n\nCurrently, when the ring buffer drops events, it does not record\nthe fact that it did so. It does inform the writer that the event\nwas dropped by returning a NULL event, but it does not put in any\nplace holder where the event was dropped.\n\nThis is not a trivial thing to add because the ring buffer mostly\nruns in overwrite (flight recorder) mode. That is, when the ring\nbuffer is full, new data will overwrite old data.\n\nIn a produce/consumer mode, where new data is simply dropped when\nthe ring buffer is full, it is trivial to add the placeholder\nfor dropped events. When there\u0027s more room to write new data, then\na special event can be added to notify the reader about the dropped\nevents.\n\nBut in overwrite mode, any new write can overwrite events. A place\nholder can not be inserted into the ring buffer since there never\nmay be room. A reader could also come in at anytime and miss the\nplaceholder.\n\nLuckily, the way the ring buffer works, the read side can find out\nif events were lost or not, and how many events. Everytime a write\ntakes place, if it overwrites the header page (the next read) it\nupdates a \"overrun\" variable that keeps track of the number of\nlost events. When a reader swaps out a page from the ring buffer,\nit can record this number, perfom the swap, and then check to\nsee if the number changed, and take the diff if it has, which would be\nthe number of events dropped. This can be stored by the reader\nand returned to callers of the reader.\n\nSince the reader page swap will fail if the writer moved the head\npage since the time the reader page set up the swap, this gives room\nto record the overruns without worrying about races. If the reader\nsets up the pages, records the overrun, than performs the swap,\nif the swap succeeds, then the overrun variable has not been\nupdated since the setup before the swap.\n\nFor binary readers of the ring buffer, a flag is set in the header\nof each sub page (sub buffer) of the ring buffer. This flag is embedded\nin the size field of the data on the sub buffer, in the 31st bit (the size\ncan be 32 or 64 bits depending on the architecture), but only 27\nbits needs to be used for the actual size (less actually).\n\nWe could add a new field in the sub buffer header to also record the\nnumber of events dropped since the last read, but this will change the\nformat of the binary ring buffer a bit too much. Perhaps this change can\nbe made if the information on the number of events dropped is considered\nimportant enough.\n\nNote, the notification of dropped events is only used by consuming reads\nor peeking at the ring buffer. Iterating over the ring buffer does not\nkeep this information because the necessary data is only available when\na page swap is made, and the iterator does not swap out pages.\n\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"Luis Claudio R. Goncalves\" \u003clclaudio@uudg.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
      "tree": "711b6da2a665e26940c59b9db493c59d879f6cc6",
      "parents": [
        "461d208cfbd1f0af26027b2c35ded515e54b1ee6",
        "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Do not record user stack trace from NMI context\n  tracing: Disable buffer switching when starting or stopping trace\n  tracing: Use same local variable when resetting the ring buffer\n  function-graph: Init curr_ret_stack with ret_stack\n  ring-buffer: Move disabled check into preempt disable section\n  function-graph: Add tracing_thresh support to function_graph tracer\n  tracing: Update the comm field in the right variable in update_max_tr\n  function-graph: Use comment notation for func names of dangling \u0027}\u0027\n  function-graph: Fix unused reference to ftrace_set_func()\n  tracing: Fix warning in s_next of trace file ops\n  tracing: Include irqflags headers from trace clock\n"
    },
    {
      "commit": "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15",
      "tree": "5f7d831ab4de8f8c3577230ba8b15e0681eef52f",
      "parents": [
        "a2f8071428ed9a0f06865f417c962421c9a6b488"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 20:03:30 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:31:49 2010 -0500"
      },
      "message": "tracing: Do not record user stack trace from NMI context\n\nA bug was found with Li Zefan\u0027s ftrace_stress_test that caused applications\nto segfault during the test.\n\nPlacing a tracing_off() in the segfault code, and examining several\ntraces, I found that the following was always the case. The lock tracer\nwas enabled (lockdep being required) and userstack was enabled. Testing\nthis out, I just enabled the two, but that was not good enough. I needed\nto run something else that could trigger it. Running a load like hackbench\ndid not work, but executing a new program would. The following would\ntrigger the segfault within seconds:\n\n  # echo 1 \u003e /debug/tracing/options/userstacktrace\n  # echo 1 \u003e /debug/tracing/events/lock/enable\n  # while :; do ls \u003e /dev/null ; done\n\nEnabling the function graph tracer and looking at what was happening\nI finally noticed that all cashes happened just after an NMI.\n\n 1)               |    copy_user_handle_tail() {\n 1)               |      bad_area_nosemaphore() {\n 1)               |        __bad_area_nosemaphore() {\n 1)               |          no_context() {\n 1)               |            fixup_exception() {\n 1)   0.319 us    |              search_exception_tables();\n 1)   0.873 us    |            }\n[...]\n 1)   0.314 us    |  __rcu_read_unlock();\n 1)   0.325 us    |    native_apic_mem_write();\n 1)   0.943 us    |  }\n 1)   0.304 us    |  rcu_nmi_exit();\n[...]\n 1)   0.479 us    |  find_vma();\n 1)               |  bad_area() {\n 1)               |    __bad_area() {\n\nAfter capturing several traces of failures, all of them happened\nafter an NMI. Curious about this, I added a trace_printk() to the NMI\nhandler to read the regs-\u003eip to see where the NMI happened. In which I\nfound out it was here:\n\nffffffff8135b660 \u003cpage_fault\u003e:\nffffffff8135b660:       48 83 ec 78             sub    $0x78,%rsp\nffffffff8135b664:       e8 97 01 00 00          callq  ffffffff8135b800 \u003cerror_entry\u003e\n\nWhat was happening is that the NMI would happen at the place that a page\nfault occurred. It would call rcu_read_lock() which was traced by\nthe lock events, and the user_stack_trace would run. This would trigger\na page fault inside the NMI. I do not see where the CR2 register is\nsaved or restored in NMI handling. This means that it would corrupt\nthe page fault handling that the NMI interrupted.\n\nThe reason the while loop of ls helped trigger the bug, was that\neach execution of ls would cause lots of pages to be faulted in, and\nincrease the chances of the race happening.\n\nThe simple solution is to not allow user stack traces in NMI context.\nAfter this patch, I ran the above \"ls\" test for a couple of hours\nwithout any issues. Without this patch, the bug would trigger in less\nthan a minute.\n\nCc: stable@kernel.org\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a2f8071428ed9a0f06865f417c962421c9a6b488",
      "tree": "731d1e4f684fa5e5e27b56f1ed5f74d5945b20bd",
      "parents": [
        "283740c619d211e34572cc93c8cdba92ccbdb9cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:56:00 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:30:21 2010 -0500"
      },
      "message": "tracing: Disable buffer switching when starting or stopping trace\n\nWhen the trace iterator is read, tracing_start() and tracing_stop()\nis called to stop tracing while the iterator is processing the trace\noutput.\n\nThese functions disable both the standard buffer and the max latency\nbuffer. But if the wakeup tracer is running, it can switch these\nbuffers between the two disables:\n\n  buffer \u003d global_trace.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\n      \u003c\u003c\u003c--------- swap happens here\n\n  buffer \u003d max_tr.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\nWhat happens is that we disabled the same buffer twice. On tracing_start()\nwe can enable the same buffer twice. All ring_buffer_record_disable()\nmust be matched with a ring_buffer_record_enable() or the buffer\ncan be disable permanently, or enable prematurely, and cause a bug\nwhere a reset happens while a trace is commiting.\n\nThis patch protects these two by taking the ftrace_max_lock to prevent\na switch from occurring.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "283740c619d211e34572cc93c8cdba92ccbdb9cc",
      "tree": "3bdce475017ff9a5fe82c6d214d27b27e555320c",
      "parents": [
        "ea14eb714041d40fcc5180b5a586034503650149"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:48:41 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:29:20 2010 -0500"
      },
      "message": "tracing: Use same local variable when resetting the ring buffer\n\nIn the ftrace code that resets the ring buffer it references the\nbuffer with a local variable, but then uses the tr-\u003ebuffer as the\nparameter to reset. If the wakeup tracer is running, which can\nswitch the tr-\u003ebuffer with the max saved buffer, this can break\nthe requirement of disabling the buffer before the reset.\n\n   buffer \u003d tr-\u003ebuffer;\n   ring_buffer_record_disable(buffer);\n   synchronize_sched();\n   __tracing_reset(tr-\u003ebuffer, cpu);\n\nIf the tr-\u003ebuffer is swapped, then the reset is not happening to the\nbuffer that was disabled. This will cause the ring buffer to fail.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "915a0b575fdb2376135ed9334b3ccb1eb51db622",
      "tree": "12070fc07897e0cd9170aeb351a96923d44d7813",
      "parents": [
        "e02c4fd3142dfb9412531bbfabd510a2a7c6ea46",
        "0e95017355dcf43031da6d0e360a748717e56df1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "0e95017355dcf43031da6d0e360a748717e56df1",
      "tree": "829989bfb494e8d2d773d9dc1bc014b7f28d3bed",
      "parents": [
        "1acaa1b2d9b5904c9cce06122990a2d71046ce16"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Thu Feb 25 15:36:43 2010 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:20:57 2010 -0500"
      },
      "message": "function-graph: Add tracing_thresh support to function_graph tracer\n\nAdd support for tracing_thresh to the function_graph tracer.  This\nversion of this feature isolates the checks into new entry and\nreturn functions, to avoid adding more conditional code into the\nmain function_graph paths.\n\nWhen the tracing_thresh is set and the function graph tracer is\nenabled, only the functions that took longer than the time in\nmicroseconds that was set in tracing_thresh are recorded. To do this\nefficiently, only the function exits are recorded:\n\n [tracing]# echo 100 \u003e tracing_thresh\n [tracing]# echo function_graph \u003e current_tracer\n [tracing]# cat trace\n # tracer: function_graph\n #\n # CPU  DURATION                  FUNCTION CALLS\n # |     |   |                     |   |   |   |\n  1) ! 119.214 us  |  } /* smp_apic_timer_interrupt */\n  1)   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n  0) ! 101.527 us  |              } /* __rcu_process_callbacks */\n  0) ! 126.461 us  |            } /* rcu_process_callbacks */\n  0) ! 145.111 us  |          } /* __do_softirq */\n  0) ! 149.667 us  |        } /* do_softirq */\n  0) ! 168.817 us  |      } /* irq_exit */\n  0) ! 248.254 us  |    } /* smp_apic_timer_interrupt */\n\nAlso, add support for specifying tracing_thresh on the kernel\ncommand line.  When used like so: \"tracing_thresh\u003d200 ftrace\u003dfunction_graph\"\nthis can be used to analyse system startup.  It is important to disable\ntracing soon after boot, in order to avoid losing the trace data.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nLKML-Reference: \u003c4B87098B.4040308@am.sony.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1acaa1b2d9b5904c9cce06122990a2d71046ce16",
      "tree": "76e4d061aa4c666c89f581e438b105bd69ee27df",
      "parents": [
        "a094fe04c751698a18c3a0d376a3bdb117f1e0d8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 05 18:23:50 2010 -0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:12:08 2010 -0500"
      },
      "message": "tracing: Update the comm field in the right variable in update_max_tr\n\nThe latency output showed:\n\n #    | task: -3 (uid:0 nice:0 policy:1 rt_prio:99)\n\nThe comm is missing in the \"task:\" and it looks like a minus 3 is\nthe output. The correct display should be:\n\n #    | task: migration/0-3 (uid:0 nice:0 policy:1 rt_prio:99)\n\nThe problem is that the comm is being stored in the wrong data\nstructure. The max_tr.data[cpu] is what stores the comm, not the\ntr-\u003edata[cpu].\n\nBefore this patch the max_tr.data[cpu]-\u003ecomm was zeroed and the /debug/trace\nended up showing just the \u0027-\u0027 sign followed by the pid.\n\nAlso remove a needless initialization of max_data.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c1267824230-23861-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a135ba14d71fb84c691a5386aff5049691fe6d7",
      "tree": "adb1de887dd6839d69d2fc16ffa2a10ff63298fa",
      "parents": [
        "4850f524b2c4c8a4e9f8ef4dd9c7c4afde2f2b2c",
        "a29d8b8e2d811a24bbe49215a0f0c536b72ebc18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -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:\n  percpu: add __percpu sparse annotations to what\u0027s left\n  percpu: add __percpu sparse annotations to fs\n  percpu: add __percpu sparse annotations to core kernel subsystems\n  local_t: Remove leftover local.h\n  this_cpu: Remove pageset_notifier\n  this_cpu: Page allocator conversion\n  percpu, x86: Generic inc / dec percpu instructions\n  local_t: Move local.h include to ringbuffer.c and ring_buffer_benchmark.c\n  module: Use this_cpu_xx to dynamically allocate counters\n  local_t: Remove cpu_local_xx macros\n  percpu: refactor the code in pcpu_[de]populate_chunk()\n  percpu: remove compile warnings caused by __verify_pcpu_ptr()\n  percpu: make accessors check for percpu pointer in sparse\n  percpu: add __percpu for sparse.\n  percpu: make access macros universal\n  percpu: remove per_cpu__ prefix.\n"
    },
    {
      "commit": "ac91d85456372a90af5b85eb6620fd2efb1e431b",
      "tree": "df15f1b8c3c6b8b5a6367f70a527b2da7e240361",
      "parents": [
        "3a5b27bf6f29574d667230c7e76e4b83fe3014e0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 02 17:54:50 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 02 21:11:47 2010 -0500"
      },
      "message": "tracing: Fix warning in s_next of trace file ops\n\nThis warning in s_next() can be triggered by lseek():\n [\u003cc018b3f7\u003e] ? s_next+0x77/0x80\n [\u003cc013e3c1\u003e] warn_slowpath_common+0x81/0xa0\n [\u003cc018b3f7\u003e] ? s_next+0x77/0x80\n [\u003cc013e3fa\u003e] warn_slowpath_null+0x1a/0x20\n [\u003cc018b3f7\u003e] s_next+0x77/0x80\n [\u003cc01efa77\u003e] traverse+0x117/0x200\n [\u003cc01eff13\u003e] seq_lseek+0xa3/0x120\n [\u003cc01efe70\u003e] ? seq_lseek+0x0/0x120\n [\u003cc01d7081\u003e] vfs_llseek+0x41/0x50\n [\u003cc01d8116\u003e] sys_llseek+0x66/0xa0\n [\u003cc0102bd0\u003e] sysenter_do_call+0x12/0x26\n\nThe iterator \"leftover\" variable is zeroed in the opening of the trace\nfile. But lseek can call s_start() which will call s_next() without\nreseting the \"leftover\" variable back to zero, which might trigger\nthe WARN_ON_ONCE(iter-\u003eleftover) that is in s_next().\n\nCc: stable@kernel.org\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B8CE06A.9090207@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "64b9fb5704a479d98a59f2a1d45d3331a8f847f8",
      "tree": "2b1052b05fa7615c817894bc9802bc5bb2af7ac1",
      "parents": [
        "83f0d53993b2967e54186468b0fc4321447f68f1",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.33\u0027 into tracing/core\n\nConflicts:\n\tscripts/recordmcount.pl\n\nMerge reason: Merge up to v2.6.33.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ab386128f20c44c458a90039ab1bdc265ac474c9",
      "tree": "2ad188744922b1bb951fd10ff50dc04c83acce22",
      "parents": [
        "dbfc196a3cc1a2514ad0737a82f764de23bd65e6",
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n"
    },
    {
      "commit": "74bf4076f2ed79b5510440b72a561823a8852ec0",
      "tree": "d992d49f992cd77e20c9833876c021ad9b265f57",
      "parents": [
        "f6760aa024199cfbce564311dc4bc4d47b6fb349"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jan 25 15:11:53 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 25 15:11:53 2010 -0500"
      },
      "message": "tracing: Prevent kernel oops with corrupted buffer\n\nIf the contents of the ftrace ring buffer gets corrupted and the trace\nfile is read, it could create a kernel oops (usualy just killing the user\ntask thread). This is caused by the checking of the pid in the buffer.\nIf the pid is negative, it still references the cmdline cache array,\nwhich could point to an invalid address.\n\nThe simple fix is to test for negative PIDs.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d931369b74b3d6f2044f595af6f3dd074f65d9cf",
      "tree": "ae60bd92388f278d32f659b7ce5ff20a229e0bb1",
      "parents": [
        "dfaa9e2c5707b2c217c0121aac796e0fa3051482"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 06 17:27:11 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 06 18:09:57 2010 -0500"
      },
      "message": "tracing: Add stack dump to trace_printk if stacktrace option is set\n\nIf the ftrace stacktrace option is set, then add the stack dumps to\ntrace_printk.\n\nRequested-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7e53bd42d14c75192b99674c40fcc359392da59d",
      "tree": "65c3638604a2c03947da5cbd7ffb3e4dfee66370",
      "parents": [
        "0fa0edaf32b9a78b9854f1da98d4511a501089b0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 06 20:08:50 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 06 12:51:34 2010 -0500"
      },
      "message": "tracing: Consolidate protection of reader access to the ring buffer\n\nAt the beginning, access to the ring buffer was fully serialized\nby trace_types_lock. Patch d7350c3f4569 gives more freedom to readers,\nand patch b04cc6b1f6 adds code to protect trace_pipe and cpu#/trace_pipe.\n\nBut actually it is not enough, ring buffer readers are not always\nread-only, they may consume data.\n\nThis patch makes accesses to trace, trace_pipe, trace_pipe_raw\ncpu#/trace, cpu#/trace_pipe and cpu#/trace_pipe_raw serialized.\nAnd removes tracing_reader_cpumask which is used to protect trace_pipe.\n\nDetails:\n\nRing buffer serializes readers, but it is low level protection.\nThe validity of the events (which returns by ring_buffer_peek() ..etc)\nare not protected by ring buffer.\n\nThe content of events may become garbage if we allow another process to consume\nthese events concurrently:\n  A) the page of the consumed events may become a normal page\n     (not reader page) in ring buffer, and this page will be rewritten\n     by the events producer.\n  B) The page of the consumed events may become a page for splice_read,\n     and this page will be returned to system.\n\nThis patch adds trace_access_lock() and trace_access_unlock() primitives.\n\nThese primitives allow multi process access to different cpu ring buffers\nconcurrently.\n\nThese primitives don\u0027t distinguish read-only and read-consume access.\nMulti read-only access is also serialized.\n\nAnd we don\u0027t use these primitives when we open files,\nwe only use them when we read files.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B447D52.1050602@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "32032df6c2f6c9c6b2ada2ce42322231824f70c2",
      "tree": "b1ce838a37044bb38dfc128e2116ca35630e629a",
      "parents": [
        "22b737f4c75197372d64afc6ed1bccd58c00e549",
        "c5974b835a909ff15c3b7e6cf6789b5eb919f419"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 09:17:33 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 09:17:33 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n\nConflicts:\n\tarch/powerpc/platforms/pseries/hvCall.S\n\tinclude/linux/percpu.h\n"
    },
    {
      "commit": "b21c07040304b8716e38a4a0e4ab60f386357e61",
      "tree": "eb2cf03ec35b9a5090c0adaab659a766e02c3b10",
      "parents": [
        "4e58fb7305449cf8c5a86dd97dfc1812221be77c",
        "fb7ae981cb9fe8665b9da97e8734745e030c151d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 31 11:52:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 31 11:52:01 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix sign fields in ftrace_define_fields_##call()\n  tracing/syscalls: Fix typo in SYSCALL_DEFINE0\n  tracing/kprobe: Show sign of fields in trace_kprobe format files\n  ksym_tracer: Remove trace_stat\n  ksym_tracer: Fix race when incrementing count\n  ksym_tracer: Fix to allow writing newline to ksym_trace_filter\n  ksym_tracer: Fix to make the tracer work\n  tracing: Kconfig spelling fixes and cleanups\n  tracing: Fix setting tracer specific options\n  Documentation: Update ftrace-design.txt\n  Documentation: Update tracepoint-analysis.txt\n  Documentation: Update mmiotrace.txt\n"
    },
    {
      "commit": "c757bea93bea4b77ebd181cc6dca60c15e3b1a2c",
      "tree": "f1a4ddfea72acf13864f543648bf3f79924cbdc3",
      "parents": [
        "7e25f44cbf8d95a9748fdfd19c06145f19fd10e3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 21 22:35:16 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 21 22:35:16 2009 -0500"
      },
      "message": "tracing: Fix setting tracer specific options\n\nThe function __set_tracer_option() takes as its last parameter a\n\"neg\" value. If set it should negate the value of the option.\n\nThe trace_options_write() passed the value written to the file\nwhich is what the new value needs to be set as. But since this\nis not the negative, it never sets the value.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a865c0606eb44d5d12cabb429751c83712183de",
      "tree": "726d6eaf3b20f30900304bd0cbb6339b423a071f",
      "parents": [
        "331d9d5958277de27e6ce42247e1cbec54fd1c7e",
        "46e75f66677f5094bb51e91f9473128c4e907c7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 07:23:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 07:23:42 2009 -0800"
      },
      "message": "Merge branch \u0027for-33\u0027 of git://repo.or.cz/linux-kbuild\n\n* \u0027for-33\u0027 of git://repo.or.cz/linux-kbuild: (29 commits)\n  net: fix for utsrelease.h moving to generated\n  gen_init_cpio: fixed fwrite warning\n  kbuild: fix make clean after mismerge\n  kbuild: generate modules.builtin\n  genksyms: properly consider  EXPORT_UNUSED_SYMBOL{,_GPL}()\n  score: add asm/asm-offsets.h wrapper\n  unifdef: update to upstream revision 1.190\n  kbuild: specify absolute paths for cscope\n  kbuild: create include/generated in silentoldconfig\n  scripts/package: deb-pkg: use fakeroot if available\n  scripts/package: add KBUILD_PKG_ROOTCMD variable\n  scripts/package: tar-pkg: use tar --owner\u003droot\n  Kbuild: clean up marker\n  net: add net_tstamp.h to headers_install\n  kbuild: move utsrelease.h to include/generated\n  kbuild: move autoconf.h to include/generated\n  drop explicit include of autoconf.h\n  kbuild: move compile.h to include/generated\n  kbuild: drop include/asm\n  kbuild: do not check for include/asm-$ARCH\n  ...\n\nFixed non-conflicting clean merge of modpost.c as per comments from\nStephen Rothwell (modpost.c had grown an include of linux/autoconf.h\nthat needed to be changed to generated/autoconf.h)\n"
    },
    {
      "commit": "da184a8064efe2a78d8542877970f7c6bb62775a",
      "tree": "d10193bb583f60333e243fe46386cab31f591e0c",
      "parents": [
        "525995d77ca08dfc2ba6f8e606f93694271dbd66",
        "e36c54582c6f14adc9e10473e2aec2cc4f0acc03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:02:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:02:25 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix return of trace_dump_stack()\n  ksym_tracer: Fix bad cast\n  tracing/power: Remove two exports\n  tracing: Change event-\u003eprofile_count to be int type\n  tracing: Simplify trace_option_write()\n  tracing: Remove useless trace option\n  tracing: Use seq file for trace_clock\n  tracing: Use seq file for trace_options\n  function-graph: Allow writing the same val to set_graph_function\n  ftrace: Call trace_parser_clear() properly\n  ftrace: Return EINVAL when writing invalid val to set_ftrace_filter\n  tracing: Move a printk out of ftrace_raw_reg_event_foo()\n  tracing: Pull up calls to trace_define_common_fields()\n  tracing: Extract duplicate ftrace_raw_init_event_foo()\n  ftrace.h: Use common pr_info fmt string\n  tracing: Add stack trace to irqsoff tracer\n  tracing: Add trace_dump_stack()\n  ring-buffer: Move resize integrity check under reader lock\n  ring-buffer: Use sync sched protection on ring buffer resizing\n  tracing: Fix wrong usage of strstrip in trace_ksyms\n"
    },
    {
      "commit": "28dfef8febe48f59cf1e7596e1992a6a1893ca24",
      "tree": "eb2df6dd75e72db066062950f91c9ab2e8215280",
      "parents": [
        "5116fa2b3a0a3ec625a10445ae45667f094c125b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Dec 15 16:46:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:05 2009 -0800"
      },
      "message": "const: constify remaining pipe_buf_operations\n\nSigned-off-by: 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": "e36c54582c6f14adc9e10473e2aec2cc4f0acc03",
      "tree": "057c54ccfd431152486fd781070713ad0e34bb01",
      "parents": [
        "0087aabd6a3744c28114240776918f5d15e46b98"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 14 15:58:33 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 15 08:36:11 2009 +0100"
      },
      "message": "tracing: Fix return of trace_dump_stack()\n\nThe trace_dump_stack() returned a value for a void function.\n\nAlso, added the missing stub for trace_dump_stack() when tracing is\nnot configured.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20091214162713.GA31060@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0199c4e68d1f02894bdefe4b5d9e9ee4aedd8d62",
      "tree": "e371d17bd73d64332349debbf45962ec67e7269d",
      "parents": [
        "edc35bd72e2079b25f99c5da7d7a65dbbffc4a26"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 20:01:25 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert __raw_spin* functions to arch_spin*\n\nName space cleanup. No functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "edc35bd72e2079b25f99c5da7d7a65dbbffc4a26",
      "tree": "a4fac9d24d243d3296fc36a2371db2a56d363e1a",
      "parents": [
        "445c89514be242b1b0080056d50bdc1b72adeb5c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 12:38:57 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Rename __RAW_SPIN_LOCK_UNLOCKED to __ARCH_SPIN_LOCK_UNLOCKED\n\nFurther name space cleanup. No functional change\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "445c89514be242b1b0080056d50bdc1b72adeb5c",
      "tree": "96ed062794ad0fb6a649713c83f009eea382e8b2",
      "parents": [
        "6b6b4792f89346e47437682c7ba3438e6681c0f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 19:49:50 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert raw_spinlock to arch_spinlock\n\nThe raw_spin* namespace was taken by lockdep for the architecture\nspecific implementations. raw_spin_* would be the ideal name space for\nthe spinlocks which are not converted to sleeping locks in preempt-rt.\n\nLinus suggested to convert the raw_ to arch_ locks and cleanup the\nname space instead of using an artifical name like core_spin,\natomic_spin or whatever\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n\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": "0087aabd6a3744c28114240776918f5d15e46b98",
      "tree": "8bf3ba7b3395490441722360d2872480f64cd694",
      "parents": [
        "cc0104e877fff32865a67b256d3a9ce52ff15790",
        "cc51a0fca66658ea710db566ba17e80e3f7d4957"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 14 17:12:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 14 17:12:37 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "8d18eaaff5acaa58369be342c86e607643ce10c7",
      "tree": "ff5d275165cd224468a9930f94ac80a53bfc55c7",
      "parents": [
        "2cbafd68b826f8e0471875cf33cdfb8a1478aef1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:17:06 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:28 2009 +0100"
      },
      "message": "tracing: Simplify trace_option_write()\n\n- remove duplicate code inside trace_options_write()\n- extract duplicate code in trace_options_write() and set_tracer_option()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4B1DC532.9010802@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "2cbafd68b826f8e0471875cf33cdfb8a1478aef1",
      "tree": "27bf54c8f0803fc3ed854140eee01d7ac5104c6a",
      "parents": [
        "13f16d209161c95e92aef40e350cc6cf56ac440b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:16:26 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:27 2009 +0100"
      },
      "message": "tracing: Remove useless trace option\n\nSince commit 4d9493c90f8e6e1b164aede3814010a290161abb\n(\"ftrace: remove add-hoc code\"), option \"sched-tree\"\nhas become useless.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4B1DC50A.7040402@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    }
  ],
  "next": "13f16d209161c95e92aef40e350cc6cf56ac440b"
}
