)]}'
{
  "log": [
    {
      "commit": "4462344ee9ea9224d026801b877887f2f39774a3",
      "tree": "deb703d6858f2fb7f7db69c65e90560ce4a0654e",
      "parents": [
        "9e01c1b74c9531e301c900edaa92a99fcb7738f2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "message": "cpumask: convert kernel trace functions further\n\nImpact: Reduce future memory usage, use new cpumask API.\n\nSince the last patch was created and acked, more old cpumask users\nslipped into kernel/trace.\n\nMostly trivial conversions, except struct trace_iterator\u0027s \"started\"\nmember becomes a cpumask_var_t.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9e01c1b74c9531e301c900edaa92a99fcb7738f2",
      "tree": "f71425ecfecf32046bd6aecb5ca6e504e9258b30",
      "parents": [
        "333af15341b2f6cd813c054e1b441d7b6d8e9318"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:22 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:22 2009 +1030"
      },
      "message": "cpumask: convert kernel trace functions\n\nImpact: Reduce future memory usage, use new cpumask API.\n\n(Eventually, cpumask_var_t will be allocated based on nr_cpu_ids, not NR_CPUS).\n\nConvert kernel trace functions to use struct cpumask API:\n1) Use cpumask_copy/cpumask_test_cpu/for_each_cpu.\n2) Use cpumask_var_t and alloc_cpumask_var/free_cpumask_var everywhere.\n3) Use on_each_cpu instead of playing with current-\u003ecpus_allowed.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2ca1a615835d9f4990f42102ab1f2ef434e7e89c",
      "tree": "726cf3d5f29a6c66c44e4bd68e7ebed2fd83d059",
      "parents": [
        "e12f0102ac81d660c9f801d0a0e10ccf4537a9de",
        "6a94cb73064c952255336cc57731904174b2c58f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 31 23:05:57 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 31 23:05:57 2008 +1030"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tarch/x86/kernel/io_apic.c\n"
    },
    {
      "commit": "1af237a099a3b8ff56aa384f605c6a68af7bf288",
      "tree": "71d1898e124ec720317b2c14b4f8169fb1a354bf",
      "parents": [
        "74a6d0f064cd9106599ce3f1d924309669e83582"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Tue Dec 30 06:41:44 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 17:35:40 2008 -0800"
      },
      "message": "tracing: removed duplicated #include\n\nRemoved duplicated #include in kernel/trace/trace.c.\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "526ea064f953fc5ad2fb905b537f490b9374a0f0",
      "tree": "c4ff0cb65ce6442863c7c342f641a41f0995329a",
      "parents": [
        "db5e53fbf0abf5cadc83be57032242e5e7c6c394",
        "d69d59f49763e6bd047c591c6c1f84c8e13da931"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 17:31:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 17:31:25 2008 -0800"
      },
      "message": "Merge branch \u0027oprofile-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027oprofile-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  oprofile: select RING_BUFFER\n  ring_buffer: adding EXPORT_SYMBOLs\n  oprofile: fix lost sample counter\n  oprofile: remove nr_available_slots()\n  oprofile: port to the new ring_buffer\n  ring_buffer: add remaining cpu functions to ring_buffer.h\n  oprofile: moving cpu_buffer_reset() to cpu_buffer.h\n  oprofile: adding cpu_buffer_entries()\n  oprofile: adding cpu_buffer_write_commit()\n  oprofile: adding cpu buffer r/w access functions\n  ftrace: remove unused function arg in trace_iterator_increment()\n  ring_buffer: update description for ring_buffer_alloc()\n  oprofile: set values to default when creating oprofilefs\n  oprofile: implement switch/case in buffer_sync.c\n  x86/oprofile: cleanup IBS init/exit functions in op_model_amd.c\n  x86/oprofile: reordering IBS code in op_model_amd.c\n  oprofile: fix typo\n  oprofile: whitspace changes only\n  oprofile: update comment for oprofile_add_sample()\n  oprofile: comment cleanup\n"
    },
    {
      "commit": "bb758e9637e5ddcff84a97177415499ae1fed498",
      "tree": "a4dbc2a0427a30fc9c54148c6ff7ecf21947e3ae",
      "parents": [
        "5f34fe1cfc1bdd8b4711bbe37421fba4ed0d1ed4",
        "32e8d18683adb322c994d1a0fe02d66380991f45"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 16:16:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 16:16:21 2008 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimers: fix warning in kernel/hrtimer.c\n  x86: make sure we really have an hpet mapping before using it\n  x86: enable HPET on Fujitsu u9200\n  linux/timex.h: cleanup for userspace\n  posix-timers: simplify de_thread()-\u003eexit_itimers() path\n  posix-timers: check -\u003eit_signal instead of -\u003eit_pid to validate the timer\n  posix-timers: use \"struct pid*\" instead of \"struct task_struct*\"\n  nohz: suppress needless timer reprogramming\n  clocksource, acpi_pm.c: put acpi_pm_read_slow() under CONFIG_PCI\n  nohz: no softirq pending warnings for offline cpus\n  hrtimer: removing all ur callback modes, fix\n  hrtimer: removing all ur callback modes, fix hotplug\n  hrtimer: removing all ur callback modes\n  x86: correct link to HPET timer specification\n  rtc-cmos: export second NVRAM bank\n\nFixed up conflicts in sound/drivers/pcsp/pcsp.c and sound/core/hrtimer.c\nmanually.\n"
    },
    {
      "commit": "33edcf133ba93ecba2e4b6472e97b689895d805c",
      "tree": "327d7a20acef64005e7c5ccbfa1265be28aeb6ac",
      "parents": [
        "be4d638c1597580ed2294d899d9f1a2cd10e462c",
        "3c92ec8ae91ecf59d88c798301833d7cf83f2179"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 08:02:35 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 08:02:35 2008 +1030"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "b0f4b285d7ed174804658539129a834270f4829a",
      "tree": "be7f8dca58075aba2c6a137fcfd4d44c5c333efc",
      "parents": [
        "be9c5ae4eeec2e85527e95647348b8ea4eb25128",
        "5250d329e38cdf7580faeb9c53c17d3588d7d19c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (241 commits)\n  sched, trace: update trace_sched_wakeup()\n  tracing/ftrace: don\u0027t trace on early stage of a secondary cpu boot, v3\n  Revert \"x86: disable X86_PTRACE_BTS\"\n  ring-buffer: prevent false positive warning\n  ring-buffer: fix dangling commit race\n  ftrace: enable format arguments checking\n  x86, bts: memory accounting\n  x86, bts: add fork and exit handling\n  ftrace: introduce tracing_reset_online_cpus() helper\n  tracing: fix warnings in kernel/trace/trace_sched_switch.c\n  tracing: fix warning in kernel/trace/trace.c\n  tracing/ring-buffer: remove unused ring_buffer size\n  trace: fix task state printout\n  ftrace: add not to regex on filtering functions\n  trace: better use of stack_trace_enabled for boot up code\n  trace: add a way to enable or disable the stack tracer\n  x86: entry_64 - introduce FTRACE_ frame macro v2\n  tracing/ftrace: add the printk-msg-only option\n  tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp()\n  x86, bts: correctly report invalid bts records\n  ...\n\nFixed up trivial conflict in scripts/recordmcount.pl due to SH bits\nbeing already partly merged by the SH merge.\n"
    },
    {
      "commit": "32e8d18683adb322c994d1a0fe02d66380991f45",
      "tree": "1c697f6d1c042dc560b096dca76680f4acf415b3",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "0a57b783018a77ca16097198844438bdff4d012e",
        "39c04b55240342d0742ac48538d3d8c71bfc0a94",
        "b2e3c0adec918ea22b6c9d7c76193dd3aaba9bd4",
        "001474491fabeca233168a8598f721c808040f90",
        "c29541b24fb2c6301021637229ae5347c877330a",
        "8187926bdae98648db24db3391c4efd21ec669b1",
        "a5a64498c194c82ecad3a2d67cff6231cda8d3dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 18:02:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 18:02:25 2008 +0100"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hpet\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/rtc\u0027 into timers/core\n"
    },
    {
      "commit": "5250d329e38cdf7580faeb9c53c17d3588d7d19c",
      "tree": "42b2d22e0dc9ae08a26167ba8f89cb3d9a8ad5af",
      "parents": [
        "a3eeeefbf1cd1d142c52238cc19c75d14c3bc8d5",
        "468a15bb4cc61694495cc5ed7ffca29e87c79b69",
        "67be403d897f818b1a5ecc201967b0ee6a0332f9",
        "98db8df777438e16ad0f44a0fba05ebbdb73db8d",
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:11:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:11:00 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/hw-branch-tracing\u0027 and \u0027tracing/ring-buffer\u0027; commit \u0027v2.6.28\u0027 into tracing/core\n"
    },
    {
      "commit": "468a15bb4cc61694495cc5ed7ffca29e87c79b69",
      "tree": "51274b853cc427666925f917203487a69d01c3d9",
      "parents": [
        "0ca59dd948a51c95d5a366d35f897bc5ef9df55d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Dec 16 08:07:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:10:21 2008 +0100"
      },
      "message": "sched, trace: update trace_sched_wakeup()\n\nImpact: extend the wakeup tracepoint with the info whether the wakeup was real\n\nAdd the information needed to distinguish \u0027real\u0027 wakeups from \u0027false\u0027\nwakeups.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98db8df777438e16ad0f44a0fba05ebbdb73db8d",
      "tree": "f2cde3dbe3000f4bafd0c42df43f736b7e5a648b",
      "parents": [
        "a8ccf1d6f60e3e6ae63122e02378cd4d40dd4aac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 23 11:32:25 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 23 18:45:26 2008 +0100"
      },
      "message": "ring-buffer: prevent false positive warning\n\nImpact: eliminate false WARN_ON message\n\nIf an interrupt goes off after the setting of the local variable\ntail_page and before incrementing the write index of that page,\nthe interrupt could push the commit forward to the next page.\n\nLater a check is made to see if interrupts pushed the buffer around\nthe entire ring buffer by comparing the next page to the last commited\npage. This can produce a false positive if the interrupt had pushed\nthe commit page forward as stated above.\n\nThanks to Jiaying Zhang for finding this race.\n\nReported-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8ccf1d6f60e3e6ae63122e02378cd4d40dd4aac",
      "tree": "98a55b2caf4315617fbb9187e5a15c7f53740ff8",
      "parents": [
        "30cd324e9787ccc9a5ede59742d5409857550692"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 23 11:32:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 23 18:45:25 2008 +0100"
      },
      "message": "ring-buffer: fix dangling commit race\n\nImpact: fix stuck trace-buffers\n\nIf an interrupt comes in during the rb_set_commit_to_write and\npushes the tail page forward just at the right time, the commit\nupdates will miss the adding of the interrupt data. This will\ncause the commit pointer to cease from moving forward.\n\nThanks to Jiaying Zhang for finding this race.\n\nReported-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "213cc060797378059a28ebc5c539f3e9a80160bd",
      "tree": "e159f9fae35ca59fe2c02e905c2b4b91881d865c",
      "parents": [
        "30cd324e9787ccc9a5ede59742d5409857550692"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Dec 19 12:08:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 16:29:34 2008 +0100"
      },
      "message": "ftrace: introduce tracing_reset_online_cpus() helper\n\nImpact: cleanup\n\nThis patch factors out common code from multiple tracers into a\ntracing_reset_online_cpus() function and converts the tracers to use it.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30cd324e9787ccc9a5ede59742d5409857550692",
      "tree": "e53027e0283119de0ef4c3a431b1d20cd43003fb",
      "parents": [
        "c71dd42db2c6f1637b92502a214587431c1a6ad2",
        "6d102bc68f3dd2ae0e305b09170b1751aa67baeb",
        "3d9101e92529e1ff6014f95a69afc82f37b9b13a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/ftrace.h\n"
    },
    {
      "commit": "c71dd42db2c6f1637b92502a214587431c1a6ad2",
      "tree": "778c7da5c7539cbab90cdbead19d6597529187a7",
      "parents": [
        "3bddb9a3246f6df5cf3b7655cb541ac10203bb71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 01:09:51 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 01:05:38 2008 +0100"
      },
      "message": "tracing: fix warnings in kernel/trace/trace_sched_switch.c\n\nthese warnings:\n\n  kernel/trace/trace_sched_switch.c: In function ‘tracing_sched_register’:\n  kernel/trace/trace_sched_switch.c:96: warning: passing argument 1 of ‘register_trace_sched_wakeup_new’ from incompatible pointer type\n  kernel/trace/trace_sched_switch.c:112: warning: passing argument 1 of ‘unregister_trace_sched_wakeup_new’ from incompatible pointer type\n  kernel/trace/trace_sched_switch.c: In function ‘tracing_sched_unregister’:\n  kernel/trace/trace_sched_switch.c:121: warning: passing argument 1 of ‘unregister_trace_sched_wakeup_new’ from incompatible pointer type\n\nTrigger because sched_wakeup_new tracepoints need the same trace\nsignature as sched_wakeup - which was changed recently.\n\nFix it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3bddb9a3246f6df5cf3b7655cb541ac10203bb71",
      "tree": "db6f85196d38c0e6ca62edd8af8654e07961c902",
      "parents": [
        "ea3a6d6d60b2504c573fe3415f6617e8310c0236"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 01:03:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 01:01:25 2008 +0100"
      },
      "message": "tracing: fix warning in kernel/trace/trace.c\n\nthis warning:\n\n  kernel/trace/trace.c: In function ‘print_lat_fmt’:\n  kernel/trace/trace.c:1826: warning: unused variable ‘state’\n\nTriggers because \u0027state\u0027 has become unused - remove it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d102bc68f3dd2ae0e305b09170b1751aa67baeb",
      "tree": "c52f4bf881946eff6824190fd4c57bd5949319c9",
      "parents": [
        "40874491f9e9a4cb08eaf663dbe018bf5671975a"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 17 17:48:23 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 13:49:56 2008 +0100"
      },
      "message": "tracing/ring-buffer: remove unused ring_buffer size\n\nImpact: remove dead code\n\nstruct ring_buffer.size is not set after ring_buffer is initialized\nor resized. it is always 0.\n\nwe can use \"buffer-\u003epages * PAGE_SIZE\" to get ring_buffer\u0027s size\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d9101e92529e1ff6014f95a69afc82f37b9b13a",
      "tree": "5147a9331a9a98d0ab073258d489aa0b052e524b",
      "parents": [
        "55dac3a5553b13891f0ae4bbd11920619b5436d4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 17 22:34:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 13:03:09 2008 +0100"
      },
      "message": "trace: fix task state printout\n\nImpact: fix occasionally incorrect trace output\n\nThe tracing code has interesting varieties of printing out task state.\n\nUnfortunalely only one of the instances is correct as it copies the\ncode from sched.c:sched_show_task(). The others are plain wrong as\nthey treatthe bitfield as an integer offset into the character\narray. Also the size check of the character array is wrong as it\nincludes the trailing \\0.\n\nUse a common state decoder inline which does the Right Thing.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea3a6d6d60b2504c573fe3415f6617e8310c0236",
      "tree": "3c0887bebd1986107d9bf206c252f626dcf32b64",
      "parents": [
        "e05a43b744fb9518cbf8539a7ef33164ac60a70f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 17 15:05:36 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:57:09 2008 +0100"
      },
      "message": "ftrace: add not to regex on filtering functions\n\nImpact: enhancement\n\nIngo Molnar has asked about a way to remove items from the filter\nlists. Currently, you can only add or replace items. The way\nitems are added to the list is through opening one of the list\nfiles (set_ftrace_filter or set_ftrace_notrace) via append.\nIf the file is opened for truncate, the list is cleared.\n\n  echo spin_lock \u003e /debug/tracing/set_ftrace_filter\n\nThe above will replace the list with only spin_lock\n\n  echo spin_lock \u003e\u003e /debug/tracing/set_ftrace_filter\n\nThe above will add spin_lock to the list.\n\nNow this patch adds:\n\n  echo \u0027!spin_lock\u0027 \u003e\u003e /debug/tracing/set_ftrace_filter\n\nThis will remove spin_lock from the list.\n\nThe limited glob features of these lists also can be notted.\n\n  echo \u0027!spin_*\u0027 \u003e\u003e /debug/tracing/set_ftrace_filter\n\nThis will remove all functions that start with \u0027spin_\u0027\n\nNote:\n\n  echo \u0027!spin_*\u0027 \u003e /debug/tracing/set_ftrace_filter\n\nwill simply clear out the list (notice the \u0027\u003e\u0027 instead of \u0027\u003e\u003e\u0027)\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e05a43b744fb9518cbf8539a7ef33164ac60a70f",
      "tree": "ce45f7e86fe15b3b021cf416caa85bcf4dd38001",
      "parents": [
        "f38f1d2aa5a3520cf05da7cd6bd12fe2b0c509b7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 17 09:43:00 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:56:56 2008 +0100"
      },
      "message": "trace: better use of stack_trace_enabled for boot up code\n\nImpact: clean up\n\nAndrew Morton suggested to use the stack_tracer_enabled variable\nto decide whether or not to start stack tracing on bootup.\nThis lets us remove the start_stack_trace variable.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f38f1d2aa5a3520cf05da7cd6bd12fe2b0c509b7",
      "tree": "5eef795a1a081c41686971eaaa5ba2d1098ceb9d",
      "parents": [
        "40874491f9e9a4cb08eaf663dbe018bf5671975a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 16 23:06:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:56:24 2008 +0100"
      },
      "message": "trace: add a way to enable or disable the stack tracer\n\nImpact: enhancement to stack tracer\n\nThe stack tracer currently is either on when configured in or\noff when it is not. It can not be disabled when it is configured on.\n(besides disabling the function tracer that it uses)\n\nThis patch adds a way to enable or disable the stack tracer at\nrun time. It defaults off on bootup, but a kernel parameter \u0027stacktrace\u0027\nhas been added to enable it on bootup.\n\nA new sysctl has been added \"kernel.stack_tracer_enabled\" to let\nthe user enable or disable the stack tracer at run time.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66896a85cf2890b6bbbc4c9ccdcd296600ffbf89",
      "tree": "ad6b0a4df65a59280163f5b8ab0b92b2fe54c283",
      "parents": [
        "2c2d7329d8afa9efa3ec24e19a53e7be9d14f242"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 13 20:18:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 00:26:36 2008 +0100"
      },
      "message": "tracing/ftrace: add the printk-msg-only option\n\nImpact: display ftrace_printk messages \"as is\"\n\nBy default, ftrace_printk() messages find their output with some other\ninformations like pid, caller, ...\nSometimes a developer just want to have the ftrace_printk left \"as is\", without\nother information.\n\nThis is done by providing a default-off option called printk-msg-only.\nTo enable it, just do `echo printk-msg-only \u003e /debugfs/tracing/trace_options`\n\nBefore the patch:\n\n           \u003c...\u003e-2739  [000]   145.692153: __might_sleep: I\u0027m an ftrace_printk msg in __might_sleep\n           \u003c...\u003e-2739  [000]   145.692155: __might_sleep: I\u0027m another ftrace_printk msg in __might_sleep\n\nAfter the patch and the printk-msg-only option enabled:\n\nI\u0027m an ftrace_printk msg in __might_sleep\nI\u0027m another ftrace_printk msg in __might_sleep\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c2d7329d8afa9efa3ec24e19a53e7be9d14f242",
      "tree": "12dd840eef0475e81e0dc8f616229a030d7caae4",
      "parents": [
        "9dfc3bc7d21864d47797d64b8d531d4dbbc0b618"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 16 22:08:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 00:26:35 2008 +0100"
      },
      "message": "tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp()\n\nImpact: prevent a trace recursion\n\nAfter some tests with function graph tracer under x86-32, I saw some recursions\ncaused by ring_buffer_time_stamp() that calls preempt_enable_no_notrace() which\ncalls preempt_schedule() which is traced itself.\n\nThis patch re-enables preemption without rescheduling.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9dfc3bc7d21864d47797d64b8d531d4dbbc0b618",
      "tree": "fdf0eb86fdb7a7ecfb4f7bc718ac26875f3f94a2",
      "parents": [
        "da485e0cb16726797e99a595a399b9fc721b91bc",
        "cbc34ed1ac36690f75fd272e19e7b4fc29aae5a2",
        "2bed8446819a7c5033aa1da138d9f230ae212edc",
        "ffc2238af8431d930d2c15f16feecf1fd6d75642"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 12:03:38 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 12:03:38 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/hw-branch-tracing\u0027 into tracing/core\n"
    },
    {
      "commit": "29c0177e6a4ac094302bed54a1d4bbb6b740a9ef",
      "tree": "d8ee57c5b40baa3f53d607b719344dd20f8c85a0",
      "parents": [
        "98a79d6a50181ca1ecf7400eda01d5dc1bc0dbf0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:25 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:25 2008 +1030"
      },
      "message": "cpumask: change cpumask_scnprintf, cpumask_parse_user, cpulist_parse, and cpulist_scnprintf to take pointers.\n\nImpact: change calling convention of existing cpumask APIs\n\nMost cpumask functions started with cpus_: these have been replaced by\ncpumask_ ones which take struct cpumask pointers as expected.\n\nThese four functions don\u0027t have good replacement names; fortunately\nthey\u0027re rarely used, so we just change them over.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: paulus@samba.org\nCc: mingo@redhat.com\nCc: tony.luck@intel.com\nCc: ralf@linux-mips.org\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: cl@linux-foundation.org\nCc: srostedt@redhat.com\n"
    },
    {
      "commit": "f8b755ac8e0cc3f330269e4c4504514f987167a2",
      "tree": "c1ac8c36ffdcf19d6aa1da2502c51a12f9576d1a",
      "parents": [
        "bcbc4f20b52c2c40c43a4d2337707dcdfe81bc3a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 09 23:55:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:14:09 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: Output arrows signal on hardirq call/return\n\nImpact: make more obvious the hardirq calls in the output\n\nWhen a hardirq is triggered inside the codeflow on output, we have\nnow two arrows that indicate the entry and return of the hardirq.\n\n 0)               |          bit_waitqueue() {\n 0)   0.880 us    |            __phys_addr();\n 0)   2.699 us    |          }\n 0)               |          __wake_up_bit() {\n 0)   \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003e |          smp_apic_timer_interrupt() {\n 0)   0.797 us    |            native_apic_mem_write();\n 0)   0.715 us    |            exit_idle();\n 0)               |            irq_enter() {\n 0)   0.722 us    |              idle_cpu();\n 0)   5.519 us    |            }\n 0)               |            hrtimer_interrupt() {\n 0)               |              ktime_get() {\n 0)               |                ktime_get_ts() {\n 0)   0.805 us    |                  getnstimeofday();\n\n [...]\n\n 0) ! 108.528 us  |            }\n 0)               |            irq_exit() {\n 0)               |              do_softirq() {\n 0)               |                __do_softirq() {\n 0)   0.895 us    |                  __local_bh_disable();\n 0)               |                  run_timer_softirq() {\n 0)   0.827 us    |                    hrtimer_run_pending();\n 0)   1.226 us    |                    _spin_lock_irq();\n 0)               |                    _spin_unlock_irq() {\n 0)   6.550 us    |                  }\n 0)   0.924 us    |                  _local_bh_enable();\n 0) + 12.129 us   |                }\n 0) + 13.911 us   |              }\n 0)   0.707 us    |              idle_cpu();\n 0) + 17.009 us   |            }\n 0) ! 137.419 us  |          }\n 0)   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n 0)   1.045 us    |          }\n 0) ! 148.908 us  |        }\n 0) ! 151.022 us  |      }\n 0) ! 153.022 us  |    }\n 0)   0.963 us    |    journal_mark_dirty();\n 0)   0.925 us    |    __brelse();\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a93751cab71d63126687551823ed3e70cd85854a",
      "tree": "665e9bf274c457edd672ad44320fad962e6c16f5",
      "parents": [
        "c2724775ce57c98b8af9694857b941dc61056516"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markut.t.metzger@intel.com",
        "time": "Thu Dec 11 13:53:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 08:08:14 2008 +0100"
      },
      "message": "x86, bts, ftrace: adapt the hw-branch-tracer to the ds.c interface\n\nImpact: restructure code, cleanup\n\nRemove BTS bits from the hw-branch-tracer (renamed from bts-tracer) and\nuse the ds interface.\n\nSigned-off-by: Markus Metzger \u003cmarkut.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c4f50183f90fb1fd99aa5941f01b90cd1b882d2e",
      "tree": "3ceafb906a0b940364ee45a8ac0bb1d0c3018f78",
      "parents": [
        "211117ff09b7d81d91b7857651587128ed8b13d9"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Thu Dec 11 16:49:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 06:54:55 2008 +0100"
      },
      "message": "ring_buffer: adding EXPORT_SYMBOLs\n\nI added EXPORT_SYMBOL_GPLs for all functions part of the API\n(ring_buffer.h). This is required since oprofile is using the ring\nbuffer and the compilation as modules would fail otherwise.\n\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2ac8ef576e45d9db7264abc51383e68d26067bb",
      "tree": "a24108104aba3627039dad63c952f3f4c0dcacb7",
      "parents": [
        "68814b58c52077da9561b544089fe532a0842f71"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Nov 12 12:59:32 2008 +0100"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Dec 10 14:20:12 2008 +0100"
      },
      "message": "ftrace: remove unused function arg in trace_iterator_increment()\n\nThis removes the unused cpu function parameter.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\n"
    },
    {
      "commit": "68814b58c52077da9561b544089fe532a0842f71",
      "tree": "c2a3714b36e9254a89290e17dc73600a8657ebde",
      "parents": [
        "37ca5eb341711d7aeb9f296873b9d46eb6af33ec"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Mon Nov 24 12:24:12 2008 +0100"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Dec 10 14:20:11 2008 +0100"
      },
      "message": "ring_buffer: update description for ring_buffer_alloc()\n\nTrivial patch.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\n"
    },
    {
      "commit": "e726f5f91effd8944c76475a2688093a03ba0d10",
      "tree": "37cbbf592a2b667d2787e0db4235e87fc91bc43f",
      "parents": [
        "380c4b1411ccd6885f92b2c8ceb08433a720f44e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 16:55:53 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 16:55:53 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: fix \u0027flags\u0027 variable mismatch\n\nthis warning:\n\n kernel/trace/trace.c: In function ‘trace_vprintk’:\n kernel/trace/trace.c:3626: warning: ‘flags’ may be used uninitialized in this function\n\nshows some confusion about irq_flags / flags use here. We already have\nirq_flags so remove the extra flags variable.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "380c4b1411ccd6885f92b2c8ceb08433a720f44e",
      "tree": "f3b571e1caff2de3e6b4cace87c2b1ec332667d7",
      "parents": [
        "8e1b82e0866befaa0b2920be296c6e4c3fc7f422"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:43:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:45 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: append the tracing_graph_flag\n\nImpact: Provide a way to pause the function graph tracer\n\nAs suggested by Steven Rostedt, the previous patch that prevented from\nspinlock function tracing shouldn\u0027t use the raw_spinlock to fix it.\nIt\u0027s much better to follow lockdep with normal spinlock, so this patch\nadds a new flag for each task to make the function graph tracer able\nto be paused. We also can send an ftrace_printk whithout worrying of\nthe irrelevant traced spinlock during insertion.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e1b82e0866befaa0b2920be296c6e4c3fc7f422",
      "tree": "e1570ed8c1b671288d82897789a4891da45b13c8",
      "parents": [
        "8b96f0119818964e4944fd1c423bf6770027d3ac"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:41:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:44 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: turn tracing_selftest_running into an int\n\nImpact: cleanup\n\nApply some suggestions of Steven Rostedt:\n\n_turn tracing_selftest_running into a simple int (no need of an atomic_t)\n_set it __read_mostly\n_fix a comment style\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "decbec3838d10ecd7aabdb4c0e05aac0e5f5dc0c",
      "tree": "e4427f55892b9ab4cd80c0f18d22dbb21e78699f",
      "parents": [
        "21bbecdaaef3a6acc19905ab88c0587817318870"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 08 01:56:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 13:24:52 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: implement a print_headers function\n\nImpact: provide trace headers to explain a bit the output\n\nThis patch implements the print_headers callback for the function graph\ntracer. These headers are output according to the current trace options.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21bbecdaaef3a6acc19905ab88c0587817318870",
      "tree": "d6fd3e222509eb470786ae9c0b1cd9af09f09714",
      "parents": [
        "21a8c466f99063eeb8567318b4e305eda9015408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Dec 04 23:30:56 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:51:29 2008 +0100"
      },
      "message": "ftrace: use init_struct_pid as swapper pid\n\nImpact: clean up\n\nUsing (struct pid *)-1 as the pointer for ftrace_swapper_pid is\na little confusing for others. This patch uses the address of the\nactual init pid structure instead. This change is only for\nclarity. It does not affect the code itself. Hopefully soon the\nswapper tasks will all have their own pid structure and then\nwe can clean up the code a bit more.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21a8c466f99063eeb8567318b4e305eda9015408",
      "tree": "bc15ed9d28a4f1a52d390ceca6893d84de50a232",
      "parents": [
        "77d683f3e0258d522c5506e7b5fd05c9411184d9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:51:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:44 2008 +0100"
      },
      "message": "tracing/ftrace: provide the macro task_curr_ret_stack()\n\nImpact: cleanup\n\nAs suggested by Steven Rostedt, this patch provide a new macro\ntask_curr_ret_stack() to move the cpp conditionnal CONFIG into\nthe linux/ftrace.h headers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77d683f3e0258d522c5506e7b5fd05c9411184d9",
      "tree": "defa7451b5218e7cfdd3a92117fca96368791425",
      "parents": [
        "ff32504fdc56407654584ef187b20022c94a3486"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:49:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:43 2008 +0100"
      },
      "message": "tracing/ftrace: fix the check of ftrace_trace_task\n\nImpact: fix default empty traces on function-graph-tracer\n\nThe actual ftrace_trace_task() checks if ftrace_pid_trace is allocated\nand return 1 if it is true.\nIf it is NULL, it will check the bit of pid tracing flag for the current\ntask (which are not set by default).\nSo by default, a task is not traced.\nActually all tasks should be traced by default and filter_by_pid when\nftrace_pid_trace is allocated.\n\nThe appropriate condition should be to return 1 if filter_by_pid is\nset.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcke-dby: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ff32504fdc56407654584ef187b20022c94a3486",
      "tree": "71f265bbc27f603732e3791bb24896e450489083",
      "parents": [
        "970987beb9c99ca806edc464518d411cc399fb4d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:47:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:43 2008 +0100"
      },
      "message": "tracing/ftrace: don\u0027t insert TRACE_PRINT during selftests\n\nImpact: fix tracer selfstests false results\n\nAfter setting a ftrace_printk somewhere in th kernel, I saw the\nFunction tracer selftest failing.\n\nWhen a selftest occurs, the ring buffer is lurked to see if\nsome entries were inserted. But concurrent insertion such as\nftrace_printk could occured at the same time and could give\nfalse positive or negative results.\n\nThis patch prevent prevent from TRACE_PRINT entries insertion\nduring selftests.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "970987beb9c99ca806edc464518d411cc399fb4d",
      "tree": "51e2298b6eb7e6412009428b380a51e1f17b531b",
      "parents": [
        "faec2ec505d397e9426754722b6e80d519c4938f",
        "1fd8f2a3f9a91b287a876cef830b21baafc8a799",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "1fd8f2a3f9a91b287a876cef830b21baafc8a799",
      "tree": "2baf0dfb14e3765efa370edafa2ab7f78d654308",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 03 23:45:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 10:18:39 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: handle ftrace_printk entries\n\nHandle the TRACE_PRINT entries from the function grapg tracer\nand output them as a C comment just below the function that called\nit, as if it was a comment inside this function.\n\nExample with an ftrace_printk inside might_sleep() function:\n\nvoid __might_sleep(char *file, int line)\n{\n\tstatic unsigned long prev_jiffy;\t/* ratelimiting */\n\n\tftrace_printk(\"Hi I\u0027m a comment in might_sleep() :-)\");\n\nA chunk of a resulting trace:\n\n 0)               |        _reiserfs_free_block() {\n 0)               |          reiserfs_read_bitmap_block() {\n 0)               |            __bread() {\n 0)               |              __getblk() {\n 0)               |                __find_get_block() {\n 0)   0.698 us    |                  mark_page_accessed();\n 0)   2.267 us    |                }\n 0)               |                __might_sleep() {\n 0)               |                  /* Hi I\u0027m a comment in might_sleep() :-) */\n 0)   1.321 us    |                }\n 0)   5.872 us    |              }\n 0)   7.313 us    |            }\n 0)   8.718 us    |          }\n\nAnd this patch brings two minor fixes:\n\n- The newline after a switch-out task has disappeared\n- The \"|\" sign just before the cpu number on task-switch has been deleted.\n\n 0)   0.616 us    |                pick_next_task_rt();\n 0)   1.457 us    |                _spin_trylock();\n 0)   0.653 us    |                _spin_unlock();\n 0)   0.728 us    |                _spin_trylock();\n 0)   0.631 us    |                _spin_unlock();\n 0)   0.729 us    |                native_load_sp0();\n 0)   0.593 us    |                native_load_tls();\n ------------------------------------------\n 0)    cat-2834    \u003d\u003e   migrati-3\n ------------------------------------------\n\n 0)               |    finish_task_switch() {\n 0)   0.841 us    |      _spin_unlock_irq();\n 0)   0.616 us    |      post_schedule_rt();\n 0)   3.882 us    |    }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "faec2ec505d397e9426754722b6e80d519c4938f",
      "tree": "574d290807a5bdf1bb41325ce6855aecf872e1b5",
      "parents": [
        "6b2539302bee8e88c99e3c7d80c16a04dbe5e2ad"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Thu Dec 04 14:24:49 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:42:35 2008 +0100"
      },
      "message": "ftrace: avoid duplicated function when writing set_graph_function\n\nImpact: fix a bug in function filter setting\n\nwhen writing function to set_graph_function, we should check whether it\nhas existed in set_graph_function to avoid duplicating.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b2539302bee8e88c99e3c7d80c16a04dbe5e2ad",
      "tree": "d4ae4b2af29f2e75546d3a496b6f077c5ef01555",
      "parents": [
        "e32d89569128e76bdf84867be0928902ca9f7555"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:18:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:33:01 2008 +0100"
      },
      "message": "tracing: fix typo and missing inline function\n\nImpact: fix build bugs\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e32d89569128e76bdf84867be0928902ca9f7555",
      "tree": "f82014ad89c0cf6f392778d9abb6060a04d458e6",
      "parents": [
        "978f3a45d9499c7a447ca7615455cefb63d44165"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Dec 04 00:26:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:38 2008 +0100"
      },
      "message": "ftrace: add ability to only trace swapper tasks\n\nImpact: new feature\n\nThis patch lets the swapper tasks of all CPUS be filtered by the\nset_ftrace_pid file.\n\nIf \u00270\u0027 is echoed into this file, then all the idle tasks (aka swapper)\nis flagged to be traced.  This affects all CPU idle tasks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "978f3a45d9499c7a447ca7615455cefb63d44165",
      "tree": "13a59046c8fe7ae3a095444515cd50c0a57727b3",
      "parents": [
        "5ef6476190d24419a9a537baa0b5641845136989"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Dec 04 00:26:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:37 2008 +0100"
      },
      "message": "ftrace: use struct pid\n\nImpact: clean up, extend PID filtering to PID namespaces\n\nEric Biederman suggested using the struct pid for filtering on\npids in the kernel. This patch is based off of a demonstration\nof an implementation that Eric sent me in an email.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "804a685162a7080386714166776f57255a75238e",
      "tree": "f7b79000146532c0ad6571440652368e2521119a",
      "parents": [
        "0ef8cde56ab92ab3f65221246dc1622c6b5068b3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:59 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:36 2008 +0100"
      },
      "message": "ftrace: trace single pid for function graph tracer\n\nImpact: New feature\n\nThis patch makes the changes to set_ftrace_pid apply to the function\ngraph tracer.\n\n  # echo $$ \u003e /debugfs/tracing/set_ftrace_pid\n  # echo function_graph \u003e /debugfs/tracing/current_tracer\n\nWill cause only the current task to be traced. Note, the trace flags are\nalso inherited by child processes, so the children of the shell\nwill also be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0ef8cde56ab92ab3f65221246dc1622c6b5068b3",
      "tree": "47bbb117a76146a5f5b949f00cf743dd3b31f873",
      "parents": [
        "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:58 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:35 2008 +0100"
      },
      "message": "ftrace: use task struct trace flag to filter on pid\n\nImpact: clean up\n\nUse the new task struct trace flags to determine if a process should be\ntraced or not.\n\nNote: this moves the searching of the pid to the slow path of setting\nthe pid field. This needs to be converted to the pid name space.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c",
      "tree": "64a4a1d9d7d3de0695cb2e8c7161886ab660e311",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:34 2008 +0100"
      },
      "message": "ftrace: graph of a single function\n\nThis patch adds the file:\n\n   /debugfs/tracing/set_graph_function\n\nwhich can be used along with the function graph tracer.\n\nWhen this file is empty, the function graph tracer will act as\nusual. When the file has a function in it, the function graph\ntracer will only trace that function.\n\nFor example:\n\n # echo blk_unplug \u003e /debugfs/tracing/set_graph_function\n # cat /debugfs/tracing/trace\n [...]\n ------------------------------------------\n | 2)  make-19003  \u003d\u003e  kjournald-2219\n ------------------------------------------\n\n 2)               |  blk_unplug() {\n 2)               |    dm_unplug_all() {\n 2)               |      dm_get_table() {\n 2)      1.381 us |        _read_lock();\n 2)      0.911 us |        dm_table_get();\n 2)      1. 76 us |        _read_unlock();\n 2) +   12.912 us |      }\n 2)               |      dm_table_unplug_all() {\n 2)               |        blk_unplug() {\n 2)      0.778 us |          generic_unplug_device();\n 2)      2.409 us |        }\n 2)      5.992 us |      }\n 2)      0.813 us |      dm_table_put();\n 2) +   29. 90 us |    }\n 2) +   34.532 us |  }\n\nYou can add up to 32 functions into this file. Currently we limit it\nto 32, but this may change with later improvements.\n\nTo add another function, use the append \u0027\u003e\u003e\u0027:\n\n  # echo sys_read \u003e\u003e /debugfs/tracing/set_graph_function\n  # cat /debugfs/tracing/set_graph_function\n  blk_unplug\n  sys_read\n\nUsing the \u0027\u003e\u0027 will clear out the function and write anew:\n\n  # echo sys_write \u003e /debug/tracing/set_graph_function\n  # cat /debug/tracing/set_graph_function\n  sys_write\n\nNote, if you have function graph running while doing this, the small\ntime between clearing it and updating it will cause the graph to\nrecord all functions. This should not be an issue because after\nit sets the filter, only those functions will be recorded from then on.\nIf you need to only record a particular function then set this\nfile first before starting the function graph tracer. In the future\nthis side effect may be corrected.\n\nThe set_graph_function file is similar to the set_ftrace_filter but\nit does not take wild cards nor does it allow for more than one\nfunction to be set with a single write. There is no technical reason why\nthis is the case, I just do not have the time yet to implement that.\n\nNote, dynamic ftrace must be enabled for this to appear because it\nuses the dynamic ftrace records to match the name to the mcount\ncall sites.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b29144c317fb748dae6d72c0f88eda9d43165b8d",
      "tree": "6752c13edb19fb4d992d0202b0c2276d6734b373",
      "parents": [
        "b8307db2477f9c551e54e0c7b643ea349a3349cd",
        "e8e1abe92fd7ea9d823a3aaf81d10e2cba593b6b",
        "764f3b95131a7ce5c992e3d00caf590fcada2f7b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:07:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:07:44 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/function-graph-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "ec98ce480ada787f2cfbd696980ff3564415505b",
      "tree": "1a4d644b38f9f1e4b4e086fde0b195df4a92cf84",
      "parents": [
        "3496f92beb9aa99ef21fccc154a36c7698e9c538",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/nfsd/nfs4recover.c\n\nManually fixed above to use new creds API functions, e.g.\nnfs4_save_creds().\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0a37119d963e876ca86912497346ec50dea2541b",
      "tree": "610d9ce270624656f24118f24925a3a0cc71b22e",
      "parents": [
        "166d3c7994d79ab3f78f420607283361ff5cce79"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 11:04:50 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 17:15:02 2008 +0100"
      },
      "message": "trace: fix output of stack trace\n\nImpact: fix to output of stack trace\n\nIf a function is not found in the stack of the stack tracer, the\nnumber printed is quite strange. This fixes the algorithm to handle\nmissing functions better.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "764f3b95131a7ce5c992e3d00caf590fcada2f7b",
      "tree": "b150395582594ac8e158d5f0d8f48e411b295ef8",
      "parents": [
        "f0461d0146ee30927bc7efa2ae24ea8c6693b725"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 10:33:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 10:33:58 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: enabled by default\n\nCONFIG_FUNCTION_GRAPH_TRACER depends on FUNCTION_TRACER already,\n(turning it non-default) so it so making it default-n is pointless.\n\nSo enable it by default - it\u0027s a nice extension of the function tracer.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "166d3c7994d79ab3f78f420607283361ff5cce79",
      "tree": "8c37b6de991adaec6cd87c55f9046e3a6593c7f9",
      "parents": [
        "11e84acc400921743cc8d488e4a265cd98a655c7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 03 02:32:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 09:09:42 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: improve duration output\n\nImpact: better trace output of duration for long calls\n\nThe old duration output didn\u0027t exceeded 9999.999 us to fit the column\nand the nanosecs were always 3 numbers. As Ingo suggested, it\u0027s better\nto have the whole microseconds elapsed time and shift the nanosecs precision\nif needed to fit the maximum 7 numbers. And usec need more number, the case\nshould be rare and important enough to break a bit the column alignment to\nshow it.\n\nSo, depending of the duration value, we now have these patterns:\n\n    u.nnn us\n   uu.nnn us\n  uuu.nnn us\n uuuu.nnn us\n uuuuu.nn us\n uuuuuu.n us\n uuuuuuuu..... us\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "11e84acc400921743cc8d488e4a265cd98a655c7",
      "tree": "3f252d74a4d474eef1db73c7c6c947159aec3aee",
      "parents": [
        "62679efe0a5f02987a621942afc5979a80a6ca5a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 03 02:30:37 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 09:09:41 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: display unified style cmdline and pid\n\nImpact: extend function-graph output: let one know which thread called a function\n\nThis patch implements a helper function to print the couple cmdline/pid.\nIts output is provided during task switching and on each row if the new\n\"funcgraph-proc\" defualt-off option is set through trace_options file.\n\nThe output is center aligned and never exceeds 14 characters. The cmdline\nis truncated over 7 chars.\nBut note that if the pid exceeds 6 characters, the column will overflow (but\nthe situation is abnormal).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e49dc19c6a19ea112fcb94b7c62ec62cdd5c08aa",
      "tree": "851dcdfe321e16a327d656ecd7040ef6e8590bec",
      "parents": [
        "7ee991fbc6f947e9b04f29c9c6c1d057d0671a16"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:26 2008 +0100"
      },
      "message": "ftrace: function graph return for function entry\n\nImpact: feature, let entry function decide to trace or not\n\nThis patch lets the graph tracer entry function decide if the tracing\nshould be done at the end as well. This requires all function graph\nentry functions return 1 if it should trace, or 0 if the return should\nnot be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "044fa782ebb9472cf5253e95d9a625fd4c0bdd99",
      "tree": "19282ded5d8a1b48690de199cec34d73730cd130",
      "parents": [
        "14a866c567e040ccf6240d68b083dd1dbbde63e6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:03 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:24 2008 +0100"
      },
      "message": "ring-buffer: change \"page\" variable names to \"bpage\"\n\nImpact: clean up\n\nAndrew Morton pointed out that the kernel convention of a variable\nnamed page should be of type page struct. The ring buffer uses\na variable named \"page\" for a pointer to something else.\n\nThis patch converts those to be called \"bpage\" (as in \"buffer page\").\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14a866c567e040ccf6240d68b083dd1dbbde63e6",
      "tree": "4e8d62ecc345d44e7cd45f973ffb931070637532",
      "parents": [
        "bb4304c71c97bf727ec43cd2f195c2c237c27fd3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:02 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:23 2008 +0100"
      },
      "message": "ftrace: add ftrace_graph_stop()\n\nImpact: new ftrace_graph_stop function\n\nWhile developing more features of function graph, I hit a bug that\ncaused the WARN_ON to trigger in the prepare_ftrace_return function.\nWell, it was hard for me to find out that was happening because the\nbug would not print, it would just cause a hard lockup or reboot.\nThe reason is that it is not safe to call printk from this function.\n\nLooking further, I also found that it calls unregister_ftrace_graph,\nwhich grabs a mutex and calls kstop machine. This would definitely\nlock the box up if it were to trigger.\n\nThis patch adds a fast and safe ftrace_graph_stop() which will\nstop the function tracer. Then it is safe to call the WARN ON.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8789a9e7df6bf9b93739c4c7d4e380725bc9e936",
      "tree": "0930b286d987611b4a453766e8479bb005edbc27",
      "parents": [
        "abc9b56d66fbd4d93302ef4bf6fa726e1b8255f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 15:34:07 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:21 2008 +0100"
      },
      "message": "ring-buffer: read page interface\n\nImpact: new API to ring buffer\n\nThis patch adds a new interface into the ring buffer that allows a\npage to be read from the ring buffer on a given CPU. For every page\nread, one must also be given to allow for a \"swap\" of the pages.\n\n rpage \u003d ring_buffer_alloc_read_page(buffer);\n if (!rpage)\n\tgoto err;\n ret \u003d ring_buffer_read_page(buffer, \u0026rpage, cpu, full);\n if (!ret)\n\tgoto empty;\n process_page(rpage);\n ring_buffer_free_read_page(rpage);\n\nThe caller of these functions must handle any waits that are\nneeded to wait for new data. The ring_buffer_read_page will simply\nreturn 0 if there is no data, or if \"full\" is set and the writer\nis still on the current page.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "abc9b56d66fbd4d93302ef4bf6fa726e1b8255f9",
      "tree": "a93b0dca471b616bc2987530d536a1829ef537a8",
      "parents": [
        "a5e25883a445dce94a087ca479b21a5959cd5c18"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 15:34:06 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:20 2008 +0100"
      },
      "message": "ring-buffer: move some metadata into buffer page\n\nImpact: get ready for splice changes\n\nThis patch moves the commit and timestamp into the beginning of each\ndata page of the buffer. This change will allow the page to be moved\nto another location (disk, network, etc) and still have information\nin the page to be able to read it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a5e25883a445dce94a087ca479b21a5959cd5c18",
      "tree": "9453b1116b9784b91d63fd6a1110af0d62fd02b7",
      "parents": [
        "dfdc5437bd62dd6a26961e27f26b671374749875"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 15:34:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:19 2008 +0100"
      },
      "message": "ftrace: replace raw_local_irq_save with local_irq_save\n\nImpact: fix for lockdep and ftrace\n\nThe raw_local_irq_save/restore confuses lockdep. This patch\nconverts them to the local_irq_save/restore variants.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f0461d0146ee30927bc7efa2ae24ea8c6693b725",
      "tree": "6a6b416c76c0e1a569af5531454fb45fe06e07ba",
      "parents": [
        "66eafebc1086014709dc38f52ddcb3d67d9b346c",
        "48d68b20d00865035b8b65e69af343d0f53fac9d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:49:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:49:21 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/function-graph-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "48d68b20d00865035b8b65e69af343d0f53fac9d",
      "tree": "eca27c0cf9486ae83c7e3193709abae099d1f019",
      "parents": [
        "222658e08f72cd539d01f3aabdc258c596f487e2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 02 00:20:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 02 09:47:48 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: support for x86-64\n\nImpact: extend and enable the function graph tracer to 64-bit x86\n\nThis patch implements the support for function graph tracer under x86-64.\nBoth static and dynamic tracing are supported.\n\nThis causes some small CPP conditional asm on arch/x86/kernel/ftrace.c I\nwanted to use probe_kernel_read/write to make the return address\nsaving/patching code more generic but it causes tracing recursion.\n\nThat would be perhaps useful to implement a notrace version of these\nfunction for other archs ports.\n\nNote that arch/x86/process_64.c is not traced, as in X86-32. I first\nthought __switch_to() was responsible of crashes during tracing because I\nbelieved current task were changed inside but that\u0027s actually not the\ncase (actually yes, but not the \"current\" pointer).\n\nSo I will have to investigate to find the functions that harm here, to\nenable tracing of the other functions inside (but there is no issue at\nthis time, while process_64.c stays out of -pg flags).\n\nA little possible race condition is fixed inside this patch too. When the\ntracer allocate a return stack dynamically, the current depth is not\ninitialized before but after. An interrupt could occur at this time and,\nafter seeing that the return stack is allocated, the tracer could try to\ntrace it with a random uninitialized depth. It\u0027s a prevention, even if I\nhadn\u0027t problems with it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66eafebc1086014709dc38f52ddcb3d67d9b346c",
      "tree": "10147e635d8d4d15d73cb23baa32a2357570eab0",
      "parents": [
        "222658e08f72cd539d01f3aabdc258c596f487e2"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Tue Dec 02 10:33:08 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 02 09:23:24 2008 +0100"
      },
      "message": "function trace: fix a bug of single thread function trace\n\nImpact: fix \"no output from tracer\" bug caused by ftrace_update_pid_func()\n\nWhen disabling single thread function trace using\n\"echo -1 \u003e set_ftrace_pid\", the normal function trace\nhas to restore to original function, otherwise the normal\nfunction trace will not work well.\n\nWithout this commit, something like below:\n\n\t$ ps |grep 850\n\t  850 root      2556 S    -/bin/sh\n\t$ echo 850 \u003e /debug/tracing/set_ftrace_pid\n\t$ echo function \u003e /debug/tracing/current_tracer\n\t$ echo 1 \u003e /debug/tracing/tracing_enabled\n\t$ sleep 1\n\t$ echo 0 \u003e /debug/tracing/tracing_enabled\n\t$ cat /debug/tracing/trace_pipe |wc -l\n\t59704\n\t$ echo -1 \u003e /debug/tracing/set_ftrace_pid\n\t$ echo 1 \u003e /debug/tracing/tracing_enabled\n\t$ sleep 1\n\t$ echo 0 \u003e /debug/tracing/tracing_enabled\n\t$ more /debug/tracing/trace_pipe\n\t\t\u003c\u003d\u003d\u003d\u003d\u003d\u003d nothing output now!\n\t\t\tit should output trace record.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "222658e08f72cd539d01f3aabdc258c596f487e2",
      "tree": "047099f92b108153b3844c08bcf3ffbffa652c21",
      "parents": [
        "74bf3cabc306f31ddd02f2c1b0540a6cfcacc593",
        "65c6dc6adbe7ee0acf207445243400a68c77af15",
        "c072c24975ec4f0ccfcb6f5c8a8040b6eb75ef8f",
        "d51090b34602a20984ab0312ef04e47069c0aec6",
        "a838c2ec6ea1f18431da74dfe4978c57355b95f3",
        "f1eecf0e4f0796911cc076f38fcf05fea0b353d5",
        "604094f4615180f71da799e7e5b191f5c2a42a28",
        "f08340c5d68ab621f377c108637e2d8e95b3e5d4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 02 09:20:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 02 09:20:44 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027, \u0027tracing/markers\u0027, \u0027tracing/powerpc\u0027, \u0027tracing/stack-tracer\u0027 and \u0027tracing/tracepoints\u0027 into tracing/core\n"
    },
    {
      "commit": "65c6dc6adbe7ee0acf207445243400a68c77af15",
      "tree": "b9b2285c31982b55ee77200a8b4dd04a27f3e224",
      "parents": [
        "c7cc77307669336a08928ab8668bdb3f3bcc021b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Nov 29 04:12:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 29 10:11:54 2008 +0100"
      },
      "message": "tracing/branch-tracer: include missing irqflags.h\n\nImpact: fix build error on branch tracer\n\nThis should fix a build error reported on alpha in linux-next:\n\n CC      kernel/trace/trace_branch.o\n  kernel/trace/trace_branch.c: In function \u0027probe_likely_condition\u0027:\n  kernel/trace/trace_branch.c:44: error: implicit declaration of function \u0027raw_local_irq_save\u0027\n  kernel/trace/trace_branch.c:76: error: implicit declaration of function \u0027raw_local_irq_restore\u0027\n\nUnfortunately, I can\u0027t test it since I don\u0027t have any Alpha build environment.\n\nReported-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "50cdaf08a8ec1d7f43987705da7aff7cf949708f",
      "tree": "b8c1b6072d907a196df4ef556cf6c0070b289b38",
      "parents": [
        "c7cc77307669336a08928ab8668bdb3f3bcc021b"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Fri Nov 28 12:13:21 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 12:30:40 2008 +0100"
      },
      "message": "ftrace: improve seq_operation of ftrace\n\nImpact: make ftrace position computing more sane\n\nFirst remove useless -\u003epos field. Then we needn\u0027t check seq_printf\nin .show like other place.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nReviewed-by: Bruce Ashfield \u003cbruce.ashfield@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7425acb42fff1e723b05fbf4ea11e9a455d95dc",
      "tree": "15720cbd28def3a0ccec8d9920b9dc9eb7dab671",
      "parents": [
        "c7cc77307669336a08928ab8668bdb3f3bcc021b"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Fri Nov 28 11:17:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 11:33:00 2008 +0100"
      },
      "message": "tracing, alpha: fix build: add missing #ifdef CONFIG_STACKTRACE\n\nThere are architectures that still have no stacktrace support.\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d51090b34602a20984ab0312ef04e47069c0aec6",
      "tree": "5b7907272ceff4d57ec346d630a279dd0dec8d2d",
      "parents": [
        "1a056155edd458eb93ef383fa8e5741d7e7c6360"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 09:55:16 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 10:15:06 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: more output tweaks\n\nImpact: prettify the output some more\n\nBefore:\n\n0)           |     sys_read() {\n0)      0.796 us |   fget_light();\n0)           |       vfs_read() {\n0)           |         rw_verify_area() {\n0)           |           security_file_permission() {\n------------8\u003c---------- thread sshd-1755 ------------8\u003c----------\n\nAfter:\n\n 0)               |  sys_read() {\n 0)      0.796 us |    fget_light();\n 0)               |    vfs_read() {\n 0)               |      rw_verify_area() {\n 0)               |        security_file_permission() {\n ------------------------------------------\n | 1)  migration/0--1  \u003d\u003e  sshd-1755\n ------------------------------------------\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1a056155edd458eb93ef383fa8e5741d7e7c6360",
      "tree": "9d58c7c118be65899b62f0c43892e5980a9912c2",
      "parents": [
        "83a8df618eb04bd2819a758f3b409b1449862434"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 28 00:42:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 09:45:04 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: adjustments of the trace informations\n\nImpact: increase the visual qualities of the call-graph-tracer output\n\nThis patch applies various trace output formatting changes:\n\n - CPU is now a decimal number, followed by a parenthesis.\n\n - Overhead is now on the second column (gives a good visibility)\n\n - Cost is now on the third column, can\u0027t exceed 9999.99 us. It is\n   followed by a virtual line based on a \"|\" character.\n\n - Functions calls are now the last column on the right. This way, we\n   haven\u0027t dynamic column (which flow is harder to follow) on its right.\n\n - CPU and Overhead have their own option flag. They are default-on but you\n   can disable them easily:\n\n      echo nofuncgraph-cpu \u003e trace_options\n      echo nofuncgraph-overhead \u003e trace_options\n\nTODO:\n\n_ Refactoring of the thread switch output.\n_ Give a default-off option to output the thread and its pid on each row.\n_ Provide headers\n_ ....\n\nHere is an example of the new trace style:\n\n0)           |             mutex_unlock() {\n0)      0.639 us |           __mutex_unlock_slowpath();\n0)      1.607 us |         }\n0)           |             remove_wait_queue() {\n0)      0.616 us |           _spin_lock_irqsave();\n0)      0.616 us |           _spin_unlock_irqrestore();\n0)      2.779 us |         }\n0)      0.495 us |         n_tty_set_room();\n0) ! 9999.999 us |       }\n0)           |           tty_ldisc_deref() {\n0)      0.615 us |         _spin_lock_irqsave();\n0)      0.616 us |         _spin_unlock_irqrestore();\n0)      2.793 us |       }\n0)           |           current_fs_time() {\n0)      0.488 us |         current_kernel_time();\n0)      0.495 us |         timespec_trunc();\n0)      2.486 us |       }\n0) ! 9999.999 us |     }\n0) ! 9999.999 us |   }\n0) ! 9999.999 us | }\n0)           |     sys_read() {\n0)      0.796 us |   fget_light();\n0)           |       vfs_read() {\n0)           |         rw_verify_area() {\n0)           |           security_file_permission() {\n0)      0.488 us |         cap_file_permission();\n0)      1.720 us |       }\n0)      3.  4 us |     }\n0)           |         tty_read() {\n0)      0.488 us |       tty_paranoia_check();\n0)           |           tty_ldisc_ref_wait() {\n0)           |             tty_ldisc_try() {\n0)      0.615 us |           _spin_lock_irqsave();\n0)      0.615 us |           _spin_unlock_irqrestore();\n0)      5.436 us |         }\n0)      6.427 us |       }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83a8df618eb04bd2819a758f3b409b1449862434",
      "tree": "f6a8d6a75e2c94d7c0cfb475f11d5bd4adc20cf8",
      "parents": [
        "c7cc77307669336a08928ab8668bdb3f3bcc021b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 27 01:46:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:59:14 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: enhancements for the trace output\n\nImpact: enhance the output of the graph-tracer\n\nThis patch applies some ideas of Ingo Molnar and Steven Rostedt.\n\n* Output leaf functions in one line with parenthesis, semicolon and duration\n  output.\n\n* Add a second column (after cpu) for an overhead sign.\n  if duration \u003e 100 us, \"!\"\n  if duration \u003e 10 us, \"+\"\n  else \" \"\n\n* Print output in us with remaining nanosec: u.n\n\n* Print duration on the right end, following the indentation of the functions.\n  Use also visual clues: \"-\" on entry call (no duration to output) and \"+\" on\n  return (duration output).\n\nThe name of the tracer has been fixed as well: function-branch becomes\nfunction_branch.\n\nHere is an example of the new output:\n\nCPU[000]           dequeue_entity() {                    -\nCPU[000]             update_curr() {                    -\nCPU[000]               update_min_vruntime();                    + 0.512 us\nCPU[000]             }                                + 1.504 us\nCPU[000]             clear_buddies();                    + 0.481 us\nCPU[000]             update_min_vruntime();                    + 0.504 us\nCPU[000]           }                                + 4.557 us\nCPU[000]           hrtick_update() {                    -\nCPU[000]             hrtick_start_fair();                    + 0.489 us\nCPU[000]           }                                + 1.443 us\nCPU[000] +       }                                + 14.655 us\nCPU[000] +     }                                + 15.678 us\nCPU[000] +   }                                + 16.686 us\nCPU[000]     msecs_to_jiffies();                    + 0.481 us\nCPU[000]     put_prev_task_fair();                    + 0.504 us\nCPU[000]     pick_next_task_fair();                    + 0.482 us\nCPU[000]     pick_next_task_rt();                    + 0.504 us\nCPU[000]     pick_next_task_fair();                    + 0.481 us\nCPU[000]     pick_next_task_idle();                    + 0.489 us\nCPU[000]     _spin_trylock();                    + 0.655 us\nCPU[000]     _spin_unlock();                    + 0.609 us\n\nCPU[000]  ------------8\u003c---------- thread bash-2794 ------------8\u003c----------\n\nCPU[000]               finish_task_switch() {                    -\nCPU[000]                 _spin_unlock_irq();                    + 0.722 us\nCPU[000]               }                                + 2.369 us\nCPU[000] !           }                                + 501972.605 us\nCPU[000] !         }                                + 501973.763 us\nCPU[000]           copy_from_read_buf() {                    -\nCPU[000]             _spin_lock_irqsave();                    + 0.670 us\nCPU[000]             _spin_unlock_irqrestore();                    + 0.699 us\nCPU[000]             copy_to_user() {                    -\nCPU[000]               might_fault() {                    -\nCPU[000]                 __might_sleep();                    + 0.503 us\nCPU[000]               }                                + 1.632 us\nCPU[000]               __copy_to_user_ll();                    + 0.542 us\nCPU[000]             }                                + 3.858 us\nCPU[000]             tty_audit_add_data() {                    -\nCPU[000]               _spin_lock_irq();                    + 0.609 us\nCPU[000]               _spin_unlock_irq();                    + 0.624 us\nCPU[000]             }                                + 3.196 us\nCPU[000]             _spin_lock_irqsave();                    + 0.624 us\nCPU[000]             _spin_unlock_irqrestore();                    + 0.625 us\nCPU[000] +         }                                + 13.611 us\nCPU[000]           copy_from_read_buf() {                    -\nCPU[000]             _spin_lock_irqsave();                    + 0.624 us\nCPU[000]             _spin_unlock_irqrestore();                    + 0.616 us\nCPU[000]           }                                + 2.820 us\nCPU[000]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7cc77307669336a08928ab8668bdb3f3bcc021b",
      "tree": "c9f2997a7266cc5d8c5b61e964d8e014f274f5d3",
      "parents": [
        "0bfc24559d7945506184d86739fe365a181f06b7",
        "d144d5ee6a265823d39f75ecfed351a516295183",
        "437f24fb897d409a9978eb71ecfaf279dcd94acd",
        "f3f47a6768a29448866da4422b6f6bee485c947f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/power-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "4f5a7f40ddbae98569acbb99118a98570315579c",
      "tree": "82eca15746f525acc19fd9e3f33cb08c6c8bc3e6",
      "parents": [
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 27 10:21:46 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:11:53 2008 +0100"
      },
      "message": "ftrace: prevent recursion\n\nImpact: prevent unnecessary stack recursion\n\nif the resched flag was set before we entered, then don\u0027t reschedule.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3f47a6768a29448866da4422b6f6bee485c947f",
      "tree": "ba4bf1b79cbd13412871eec50250294d7140fd09",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sun Nov 23 16:49:58 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 08:29:32 2008 +0100"
      },
      "message": "tracing: add \"power-tracer\": C/P state tracer to help power optimization\n\nImpact: new \"power-tracer\" ftrace plugin\n\nThis patch adds a C/P-state ftrace plugin that will generate\ndetailed statistics about the C/P-states that are being used,\nso that we can look at detailed decisions that the C/P-state\ncode is making, rather than the too high level \"average\"\nthat we have today.\n\nAn example way of using this is:\n\n mount -t debugfs none /sys/kernel/debug\n echo cstate \u003e /sys/kernel/debug/tracing/current_tracer\n echo 1 \u003e /sys/kernel/debug/tracing/tracing_enabled\n sleep 1\n echo 0 \u003e /sys/kernel/debug/tracing/tracing_enabled\n cat /sys/kernel/debug/tracing/trace | perl scripts/trace/cstate.pl \u003e out.svg\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "437f24fb897d409a9978eb71ecfaf279dcd94acd",
      "tree": "6d84f5f7f3000c5560000c8c29a3af4494ffd0f7",
      "parents": [
        "660c7f9be96321fc80026d76411bd15e6f418a72"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:27 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:57 2008 +0100"
      },
      "message": "ftrace: add cpu annotation for function graph tracer\n\nImpact: enhancement for function graph tracer\n\nWhen run on a SMP box, the function graph tracer is confusing because\nit shows the different CPUS as changes in the trace.\n\nThis patch adds the annotation of \u0027CPU[###]\u0027 where ### is a three digit\nnumber. The output will look similar to this:\n\nCPU[001]     dput() {\nCPU[000] } 726\nCPU[001]     } 487\nCPU[000] do_softirq() {\nCPU[001]   } 2221\nCPU[000]   __do_softirq() {\nCPU[000]     __local_bh_disable() {\nCPU[001]   unroll_tree_refs() {\nCPU[000]     } 569\nCPU[001]   } 501\nCPU[000]     rcu_process_callbacks() {\nCPU[001]   kfree() {\n\nWhat makes this nice is that now you can grep the file and produce\nreadable format for a particular CPU.\n\n # cat /debug/tracing/trace \u003e /tmp/trace\n # grep \u0027^CPU\\[000\\]\u0027 /tmp/trace \u003e /tmp/trace0\n # grep \u0027^CPU\\[001\\]\u0027 /tmp/trace \u003e /tmp/trace1\n\nWill give you:\n\n # head /tmp/trace0\nCPU[000] ------------8\u003c---------- thread sshd-3899 ------------8\u003c----------\nCPU[000]     inotify_dentry_parent_queue_event() {\nCPU[000]     } 2531\nCPU[000]     inotify_inode_queue_event() {\nCPU[000]     } 505\nCPU[000]   } 69626\nCPU[000] } 73089\nCPU[000] audit_syscall_exit() {\nCPU[000]   path_put() {\nCPU[000]     dput() {\n\n # head /tmp/trace1\nCPU[001] ------------8\u003c---------- thread pcscd-3446 ------------8\u003c----------\nCPU[001]               } 4186\nCPU[001]               dput() {\nCPU[001]               } 543\nCPU[001]               vfs_permission() {\nCPU[001]                 inode_permission() {\nCPU[001]                   shmem_permission() {\nCPU[001]                     generic_permission() {\nCPU[001]                     } 501\nCPU[001]                   } 2205\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "660c7f9be96321fc80026d76411bd15e6f418a72",
      "tree": "5ae61fa51c9e9ce7b42f64cfaa168cd09439ac3d",
      "parents": [
        "e53a6319cca69111c1643dc9f18f4465d7f1cbf0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:26 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:56 2008 +0100"
      },
      "message": "ftrace: add thread comm to function graph tracer\n\nImpact: enhancement to function graph tracer\n\nExport the trace_find_cmdline so the function graph tracer can\nuse it to print the comms of the threads.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e53a6319cca69111c1643dc9f18f4465d7f1cbf0",
      "tree": "867bd86a05aa590516aaa60221f297017cd31781",
      "parents": [
        "5a45cfe1c64862e8cd3b0d79d7c4ba71c3118915"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:25 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:55 2008 +0100"
      },
      "message": "ftrace: let function tracing and function return run together\n\nImpact: feature\n\nThis patch enables function tracing and function return to run together.\nI\u0027ve tested this by enabling the stack tracer and return tracer, where\nboth the function entry and function return are used together with\ndynamic ftrace.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a45cfe1c64862e8cd3b0d79d7c4ba71c3118915",
      "tree": "0a7edf3a9dc88d74b7c7053445ac8aff033a75fa",
      "parents": [
        "df4fc31558dd2a3a30292ddb3a64c2a5befcec73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:54 2008 +0100"
      },
      "message": "ftrace: use code patching for ftrace graph tracer\n\nImpact: more efficient code for ftrace graph tracer\n\nThis patch uses the dynamic patching, when available, to patch\nthe function graph code into the kernel.\n\nThis patch will ease the way for letting both function tracing\nand function graph tracing run together.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df4fc31558dd2a3a30292ddb3a64c2a5befcec73",
      "tree": "e7e57093541568a039175aa846fe135f6ba575e2",
      "parents": [
        "c2324b694fa8ffee382a124198c68754088e483c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 26 00:16:23 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:52 2008 +0100"
      },
      "message": "ftrace: add function tracing to single thread\n\nImpact: feature to function trace a single thread\n\nThis patch adds the ability to function trace a single thread.\nThe file:\n\n  /debugfs/tracing/set_ftrace_pid\n\ncontains the pid to trace. Valid pids are any positive integer.\nWriting any negative number to this file will disable the pid\ntracing and the function tracer will go back to tracing all of\nthreads.\n\nThis feature works with both static and dynamic function tracing.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "287b6e68ca7209caec40b2f44f837c580a413bae",
      "tree": "b0867d75868f6049dc5747bd39fdae2d477dde66",
      "parents": [
        "fb52607afcd0629776f1dc9e657647ceae81dd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 26 00:57:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: set a more human readable output\n\nImpact: feature\n\nThis patch sets a C-like output for the function graph tracing.\nFor this aim, we now call two handler for each function: one on the entry\nand one other on return. This way we can draw a well-ordered call stack.\n\nThe pid of the previous trace is loosely stored to be compared against\nthe one of the current trace to see if there were a context switch.\n\nWithout this little feature, the call tree would seem broken at\nsome locations.\nWe could use the sched_tracer to capture these sched_events but this\nway of processing is much more simpler.\n\n2 spaces have been chosen for indentation to fit the screen while deep\ncalls. The time of execution in nanosecs is printed just after closed\nbraces, it seems more easy this way to find the corresponding function.\nIf the time was printed as a first column, it would be not so easy to\nfind the corresponding function if it is called on a deep depth.\n\nI plan to output the return value but on 32 bits CPU, the return value\ncan be 32 or 64, and its difficult to guess on which case we are.\nI don\u0027t know what would be the better solution on X86-32: only print\neax (low-part) or even edx (high-part).\n\nActually it\u0027s thee same problem when a function return a 8 bits value, the\nhigh part of eax could contain junk values...\n\nHere is an example of trace:\n\nsys_read() {\n  fget_light() {\n  } 526\n  vfs_read() {\n    rw_verify_area() {\n      security_file_permission() {\n        cap_file_permission() {\n        } 519\n      } 1564\n    } 2640\n    do_sync_read() {\n      pipe_read() {\n        __might_sleep() {\n        } 511\n        pipe_wait() {\n          prepare_to_wait() {\n          } 760\n          deactivate_task() {\n            dequeue_task() {\n              dequeue_task_fair() {\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 504\n                  } 1587\n                  clear_buddies() {\n                  } 512\n                  add_cfs_task_weight() {\n                  } 519\n                  update_min_vruntime() {\n                  } 511\n                } 5602\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 496\n                  } 1631\n                  clear_buddies() {\n                  } 496\n                  update_min_vruntime() {\n                  } 527\n                } 4580\n                hrtick_update() {\n                  hrtick_start_fair() {\n                  } 488\n                } 1489\n              } 13700\n            } 14949\n          } 16016\n          msecs_to_jiffies() {\n          } 496\n          put_prev_task_fair() {\n          } 504\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_rt() {\n          } 496\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_idle() {\n          } 489\n\n------------8\u003c---------- thread 4 ------------8\u003c----------\n\nfinish_task_switch() {\n} 1203\ndo_softirq() {\n  __do_softirq() {\n    __local_bh_disable() {\n    } 669\n    rcu_process_callbacks() {\n      __rcu_process_callbacks() {\n        cpu_quiet() {\n          rcu_start_batch() {\n          } 503\n        } 1647\n      } 3128\n      __rcu_process_callbacks() {\n      } 542\n    } 5362\n    _local_bh_enable() {\n    } 587\n  } 8880\n} 9986\nkthread_should_stop() {\n} 669\ndeactivate_task() {\n  dequeue_task() {\n    dequeue_task_fair() {\n      dequeue_entity() {\n        update_curr() {\n          calc_delta_mine() {\n          } 511\n          update_min_vruntime() {\n          } 511\n        } 2813\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb52607afcd0629776f1dc9e657647ceae81dd50",
      "tree": "7bf43b41ff8510d3098c089913cce56a9049f0fd",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 25 21:07:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: change the name into function-graph-tracer\n\nImpact: cleanup\n\nThis patch changes the name of the \"return function tracer\" into\nfunction-graph-tracer which is a more suitable name for a tracing\nwhich makes one able to retrieve the ordered call stack during\nthe code flow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e9b51c28312f7334394aa30be56ff52c2b65b7e",
      "tree": "c0a231d83541263ee938e3452475409323e4e9a9",
      "parents": [
        "8bba1bf5e2434c83f2fe8b1422604ace9bbe4cb8"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:24:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:13 2008 +0100"
      },
      "message": "x86, bts, ftrace: a BTS ftrace plug-in prototype\n\nImpact: add new ftrace plugin\n\nA prototype for a BTS ftrace plug-in.\n\nThe tracer collects branch trace in a cyclic buffer for each cpu.\n\nThe tracer is not configurable and the trace for each snapshot is\nappended when doing cat /debug/tracing/trace.\n\nThis is a proof of concept that will be extended with future patches\nto become a (hopefully) useful tool.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bba1bf5e2434c83f2fe8b1422604ace9bbe4cb8",
      "tree": "3df07de04de7e3a838dbf544e6a98eadac37b027",
      "parents": [
        "6abb11aecd888d1da6276399380b7355f127c006"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:12:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:13 2008 +0100"
      },
      "message": "x86, ftrace: call trace-\u003eopen() before stopping tracing; add trace-\u003eprint_header()\n\nAdd a callback to allow an ftrace plug-in to write its own header.\n\nMove the call to trace-\u003eopen() up a few lines.\n\nThe changes are required by the BTS ftrace plug-in.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca109491f612aab5c8152207631c0444f63da97f",
      "tree": "46d0a90e79c75fc039bda7d01862062e0ac39900",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Nov 25 12:43:51 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 15:45:46 2008 +0100"
      },
      "message": "hrtimer: removing all ur callback modes\n\nImpact: cleanup, move all hrtimer processing into hardirq context\n\nThis is an attempt at removing some of the hrtimer complexity by\nreducing the number of callback modes to 1.\n\nThis means that all hrtimer callback functions will be ran from HARD-irq\ncontext.\n\nI went through all the 30 odd hrtimer callback functions in the kernel\nand saw only one that I\u0027m not quite sure of, which is the one in\nnet/can/bcm.c - hence I\u0027m CC-ing the folks responsible for that code.\n\nFurthermore, the hrtimer core now calls callbacks directly with IRQs\ndisabled in case you try to enqueue an expired timer. If this timer is a\nperiodic timer (which should use hrtimer_forward() to advance its time)\nthen it might be possible to end up in an inf. recursive loop due to the\nfact that hrtimer_forward() doesn\u0027t round up to the next timer\ngranularity, and therefore keeps on calling the callback - obviously\nthis needs a fix.\n\nAside from that, this seems to compile and actually boot on my dual core\ntest box - although I\u0027m sure there are some bugs in, me not hitting any\nmakes me certain :-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f893fb2e89287a4d755f928c3cda9d18440355c",
      "tree": "e2b2d9b3974567bc25a5298b14660062d6afb871",
      "parents": [
        "0429149fb5e01edc410648591c19095d2074ee00",
        "1d926f2756392c6909f60e0c9fe2a09d5462e376",
        "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
        "65afa5e603d507014580ead016ec887b49e1afa6",
        "cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349",
        "813b8520f5c240c71df55d14095a7b171de264ce",
        "033601a32b2012b6948e80e739cca40bff4de4a0",
        "958086d1784459be3fe85e4cad79d42b17d33381",
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/power-tracer\u0027, \u0027tracing/powerpc\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/stack-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "7ee1768ddb3075ae3a0801cc2d0ea4195530a7db",
      "tree": "403dea91103838cbe56bca586a8f41a470e7a1e4",
      "parents": [
        "522a110b42b306d696cf84e34c677ed0e7080194"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Sun Nov 23 21:24:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 20:33:23 2008 +0100"
      },
      "message": "x86, mmiotrace: fix buffer overrun detection\n\nImpact: fix mmiotrace overrun tracing\n\nWhen ftrace framework moved to use the ring buffer facility, the buffer\noverrun detection was broken after 2.6.27 by commit\n\n| commit 3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c\n| Author: Steven Rostedt \u003crostedt@goodmis.org\u003e\n| Date:   Mon Sep 29 23:02:41 2008 -0400\n|\n|     ftrace: make work with new ring buffer\n|\n|     This patch ports ftrace over to the new ring buffer.\n\nThe detection is now fixed by using the ring buffer API.\n\nWhen mmiotrace detects a buffer overrun, it will report the number of\nlost events. People reading an mmiotrace log must know if something was\nmissed, otherwise the data may not make sense.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eae849ca034c7f1015f0a6f17421ebc737f0a069",
      "tree": "f247bac71fd0fe4fa80bde31ccf3dcca2bda74d1",
      "parents": [
        "82f60f0bc854aada696f27d863c03bef91f1509d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 23 17:33:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 17:39:03 2008 +0100"
      },
      "message": "tracing/function-return-tracer: don\u0027t trace kfree while it frees the return stack\n\nImpact: fix a crash\n\nWhile I killed the cat process, I got sometimes the following (but rare)\ncrash:\n\n[   65.689027] Pid: 2969, comm: cat Not tainted (2.6.28-rc6-tip #83) AMILO Li 2727\n[   65.689027] EIP: 0060:[\u003c00000000\u003e] EFLAGS: 00010082 CPU: 1\n[   65.689027] EIP is at 0x0\n[   65.689027] EAX: 00000000 EBX: f66cd780 ECX: c019a64a EDX: f66cd780\n[   65.689027] ESI: 00000286 EDI: f66cd780 EBP: f630be2c ESP: f630be24\n[   65.689027]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n[   65.689027] Process cat (pid: 2969, ti\u003df630a000 task\u003df66cd780 task.ti\u003df630a000)\n[   65.689027] Stack:\n[   65.689027]  00000012 f630bd54 f630be7c c012c853 00000000 c0133cc9 f66cda54 f630be5c\n[   65.689027]  f630be68 f66cda54 f66cd88c f66cd878 f7070000 00000001 f630be90 c0135dbc\n[   65.689027]  f614a614 f630be68 f630be68 f65ba200 00000002 f630bf10 f630be90 c012cad6\n[   65.689027] Call Trace:\n[   65.689027]  [\u003cc012c853\u003e] ? do_exit+0x603/0x850\n[   65.689027]  [\u003cc0133cc9\u003e] ? next_signal+0x9/0x40\n[   65.689027]  [\u003cc0135dbc\u003e] ? dequeue_signal+0x8c/0x180\n[   65.689027]  [\u003cc012cad6\u003e] ? do_group_exit+0x36/0x90\n[   65.689027]  [\u003cc013709c\u003e] ? get_signal_to_deliver+0x20c/0x390\n[   65.689027]  [\u003cc0102b69\u003e] ? do_notify_resume+0x99/0x8b0\n[   65.689027]  [\u003cc02e6d1a\u003e] ? tty_ldisc_deref+0x5a/0x80\n[   65.689027]  [\u003cc014db9b\u003e] ? trace_hardirqs_on+0xb/0x10\n[   65.689027]  [\u003cc02e6d1a\u003e] ? tty_ldisc_deref+0x5a/0x80\n[   65.689027]  [\u003cc02e39b0\u003e] ? n_tty_write+0x0/0x340\n[   65.689027]  [\u003cc02e1812\u003e] ? redirected_tty_write+0x82/0x90\n[   65.689027]  [\u003cc019ee99\u003e] ? vfs_write+0x99/0xd0\n[   65.689027]  [\u003cc02e1790\u003e] ? redirected_tty_write+0x0/0x90\n[   65.689027]  [\u003cc019f342\u003e] ? sys_write+0x42/0x70\n[   65.689027]  [\u003cc01035ca\u003e] ? work_notifysig+0x13/0x19\n[   65.689027] Code:  Bad EIP value.\n[   65.689027] EIP: [\u003c00000000\u003e] 0x0 SS:ESP 0068:f630be24\n\nThis is because on do_exit(), kfree is called to free the return addresses stack\nbut kfree is traced and stored its return address in this stack.\nThis patch fixes it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e38da59269be8c0196d16dff1be5bb26076afc6a",
      "tree": "b43829f918725af5a2875f0244db62c4cc701c27",
      "parents": [
        "8d26487fd4ddda7a0237da418fb8669fb06ae557"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 13:08:10 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 12:20:26 2008 +0100"
      },
      "message": "tracing/stack-tracer: avoid races accessing file\n\nImpact: fix race\n\nvma-\u003evm_file reference is only stable while holding the mmap_sem,\nso move usage of it to within the critical section.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d26487fd4ddda7a0237da418fb8669fb06ae557",
      "tree": "df518f9aef1c0f830ada2f2ad221ee41fd38ba1e",
      "parents": [
        "cffa10aecb6891f090a4d53a075bc40c082c45fc"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 12:39:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:53:50 2008 +0100"
      },
      "message": "tracing/stack-tracer: introduce CONFIG_USER_STACKTRACE_SUPPORT\n\nImpact: cleanup\n\nUser stack tracing is just implemented for x86, but it is not x86 specific.\n\nIntroduce a generic config flag, that is currently enabled only for x86.\nWhen other arches implement it, they will have to\nSELECT USER_STACKTRACE_SUPPORT.\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cffa10aecb6891f090a4d53a075bc40c082c45fc",
      "tree": "825b264f70bc5c5aaa2882e8dfba75e366238b1e",
      "parents": [
        "8d7c6a96164651dbbab449ef0b5c20ae1f76a3a1"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 12:39:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:53:49 2008 +0100"
      },
      "message": "tracing/stack-tracer: fix locking and refcounts\n\nImpact: fix refcounting/object-access bug\n\nHold mmap_sem while looking up/accessing vma.\nHold the RCU lock while using the task we looked up.\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d7c6a96164651dbbab449ef0b5c20ae1f76a3a1",
      "tree": "f7474eb4873f62df30915897c3424048f3142b4f",
      "parents": [
        "b54d3de9f3b8956653b06f1a32e9f9321c6d9027"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 12:39:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:53:48 2008 +0100"
      },
      "message": "tracing/stack-tracer: fix style issues\n\nImpact: cleanup\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0429149fb5e01edc410648591c19095d2074ee00",
      "tree": "d16c0e5b19f1d1409bc653ea12ba17938774ec64",
      "parents": [
        "2bcd521a684cc94befbe2ce7d5b613c841b0d304"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 14:44:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:46:49 2008 +0100"
      },
      "message": "trace: fix compiler warning in branch profiler\n\nImpact: fix compiler warning\n\nThe ftrace_pointers used in the branch profiler are constant values.\nThey should never change. But the compiler complains when they are\npassed into the debugfs_create_file as a data pointer, because the\nfunction discards the qualifier.\n\nThis patch typecasts the parameter to debugfs_create_file back to\na void pointer. To remind the callbacks that they are pointing to\na constant value, I also modified the callback local pointers to\nbe const struct ftrace_pointer * as well.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
      "tree": "cdee5802117c2e78cf18df7fa524c7390d1bdb67",
      "parents": [
        "e58918ab9d4cd375f6d842e6d88cf4d7a55cbfcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:59:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:45:34 2008 +0100"
      },
      "message": "ftrace: add ftrace_off_permanent\n\nImpact: add new API to disable all of ftrace on anomalies\n\nIt case of a serious anomaly being detected (like something caught by\nlockdep) it is a good idea to disable all tracing immediately, without\ngrabing any locks.\n\nThis patch adds ftrace_off_permanent that disables the tracers, function\ntracing and ring buffers without a way to enable them again. This should\nonly be used when something serious has been detected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "033601a32b2012b6948e80e739cca40bff4de4a0",
      "tree": "79f5fb4de0c76472174a1fd46c28e1503ac88dfc",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:41:55 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:44:37 2008 +0100"
      },
      "message": "ring-buffer: add tracing_off_permanent\n\nImpact: feature to permanently disable ring buffer\n\nThis patch adds a API to the ring buffer code that will permanently\ndisable the ring buffer from ever recording. This should only be\ncalled when some serious anomaly is detected, and the system\nmay be in an unstable state. When that happens, shutting down the\nrecording to the ring buffers may be appropriate.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bcd521a684cc94befbe2ce7d5b613c841b0d304",
      "tree": "63bc4dbc52defa27c8cac9e46dddadfcb36c1c7a",
      "parents": [
        "bac28bfe42ba98ee67503f78984d1d5e1ebbbb78"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 01:30:54 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:41:01 2008 +0100"
      },
      "message": "trace: profile all if conditionals\n\nImpact: feature to profile if statements\n\nThis patch adds a branch profiler for all if () statements.\nThe results will be found in:\n\n  /debugfs/tracing/profile_branch\n\nFor example:\n\n   miss      hit    %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n       0        1 100 x86_64_start_reservations      head64.c             127\n       0        1 100 copy_bootdata                  head64.c             69\n       1        0   0 x86_64_start_kernel            head64.c             111\n      32        0   0 set_intr_gate                  desc.h               319\n       1        0   0 reserve_ebda_region            head.c               51\n       1        0   0 reserve_ebda_region            head.c               47\n       0        1 100 reserve_ebda_region            head.c               42\n       0        0   X maxcpus                        main.c               165\n\nMiss means the branch was not taken. Hit means the branch was taken.\nThe percent is the percentage the branch was taken.\n\nThis adds a significant amount of overhead and should only be used\nby those analyzing their system.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bac28bfe42ba98ee67503f78984d1d5e1ebbbb78",
      "tree": "4187a43a240651919adbd6c0ad334dc10209ca23",
      "parents": [
        "45b797492a0758e64dff74e9db70e1f65e0603a5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 01:51:53 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:40:21 2008 +0100"
      },
      "message": "trace: branch profiling should not print percent without data\n\nImpact: cleanup on output of branch profiler\n\nWhen a branch has not been taken, it does not make sense to show\na percentage incorrect or hit. This patch changes the behaviour\nto print out a \u0027X\u0027 when the branch has not been executed yet.\n\nFor example:\n\n correct incorrect  %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n    2096        0   0 do_arch_prctl                  process_64.c         832\n       0        0   X do_arch_prctl                  process_64.c         804\n    2604        0   0 IS_ERR                         err.h                34\n  130228     5765   4 __switch_to                    process_64.c         673\n       0        0   X enable_TSC                     process_64.c         448\n       0        0   X disable_TSC                    process_64.c         431\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45b797492a0758e64dff74e9db70e1f65e0603a5",
      "tree": "75db13ee888a6c7f90c92c17a743bff8ce42d86a",
      "parents": [
        "42f565e116e0408b5ddc21a33c4a4d41fd572420"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 00:40:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:39:56 2008 +0100"
      },
      "message": "trace: consolidate unlikely and likely profiler\n\nImpact: clean up to make one profiler of like and unlikely tracer\n\nThe likely and unlikely profiler prints out the file and line numbers\nof the annotated branches that it is profiling. It shows the number\nof times it was correct or incorrect in its guess. Having two\ndifferent files or sections for that matter to tell us if it was a\nlikely or unlikely is pretty pointless. We really only care if\nit was correct or not.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b54d3de9f3b8956653b06f1a32e9f9321c6d9027",
      "tree": "fef98e07a9327371304811191cafebdd65311502",
      "parents": [
        "74e2f334f4440cbcb63e9ebbcdcea430d41bdfa3"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:45:42 2008 +0100"
      },
      "message": "tracing: identify which executable object the userspace address belongs to\n\nImpact: modify+improve the userstacktrace tracing visualization feature\n\nStore thread group leader id, and use it to lookup the address in the\nprocess\u0027s map. We could have looked up the address on thread\u0027s map,\nbut the thread might not exist by the time we are called. The process\nmight not exist either, but if you are reading trace_pipe, that is\nunlikely.\n\nExample usage:\n\n mount -t debugfs nodev /sys/kernel/debug\n cd /sys/kernel/debug/tracing\n echo userstacktrace \u003eiter_ctrl\n echo sym-userobj \u003eiter_ctrl\n echo sched_switch \u003ecurrent_tracer\n echo 1 \u003etracing_enabled\n cat trace_pipe \u003e/tmp/trace\u0026\n .... run application ...\n echo 0 \u003etracing_enabled\n cat /tmp/trace\n\nYou\u0027ll see stack entries like:\n\n   /lib/libpthread-2.7.so[+0xd370]\n\nYou can convert them to function/line using:\n\n   addr2line -fie /lib/libpthread-2.7.so 0xd370\n\nOr:\n\n   addr2line -fie /usr/lib/debug/libpthread-2.7.so 0xd370\n\nFor non-PIC/PIE executables this won\u0027t work:\n\n   a.out[+0x73b]\n\nYou need to run the following: addr2line -fie a.out 0x40073b\n(where 0x400000 is the default load address of a.out)\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67518e2b1c490787dac7f35e1204e74fe21ba",
      "tree": "a3d92846e1a09a829f300ab15726ee9c288cb49e",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:25:15 2008 +0100"
      },
      "message": "tracing: add support for userspace stacktraces in tracing/iter_ctrl\n\nImpact: add new (default-off) tracing visualization feature\n\nUsage example:\n\n mount -t debugfs nodev /sys/kernel/debug\n cd /sys/kernel/debug/tracing\n echo userstacktrace \u003eiter_ctrl\n echo sched_switch \u003ecurrent_tracer\n echo 1 \u003etracing_enabled\n .... run application ...\n echo 0 \u003etracing_enabled\n\nThen read one of \u0027trace\u0027,\u0027latency_trace\u0027,\u0027trace_pipe\u0027.\n\nTo get the best output you can compile your userspace programs with\nframe pointers (at least glibc + the app you are tracing).\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f201ae2356c74bcae130b2177b3dca903ea98071",
      "tree": "c4b1b43fbe0a4594cb86749b2e7098fe15eb86ba",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 23 06:22:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:17:26 2008 +0100"
      },
      "message": "tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically\n\nImpact: use deeper function tracing depth safely\n\nSome tests showed that function return tracing needed a more deeper depth\nof function calls. But it could be unsafe to store these return addresses\nto the stack.\n\nSo these arrays will now be allocated dynamically into task_struct of current\nonly when the tracer is activated.\n\nTypical scheme when tracer is activated:\n- allocate a return stack for each task in global list.\n- fork: allocate the return stack for the newly created task\n- exit: free return stack of current\n- idle init: same as fork\n\nI chose a default depth of 50. I don\u0027t have overruns anymore.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0a70c735ef714fe1b6777b571630c3d50c7b008",
      "tree": "3f4f3bb23441a284107bede9890c4e45827634e0",
      "parents": [
        "9676e73a9e0cbdc521e1ebf4e13e6e5aada34247",
        "60a515132086b2c28a8141d873297fdf7a180ca7",
        "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
        "522a110b42b306d696cf84e34c677ed0e7080194"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/profiling\u0027, \u0027tracing/options\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    }
  ],
  "next": "522a110b42b306d696cf84e34c677ed0e7080194"
}
