)]}'
{
  "log": [
    {
      "commit": "2aad1b76e6b0cc5a2e5d9b95a9f356ddddbfa8a9",
      "tree": "80ac6be0f1502079a50f8b1b4ffcc5e0586791e8",
      "parents": [
        "8b54e45b0005875f59cb8b1c44d429a161d5f245"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 30 11:11:28 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 14:47:42 2009 +0200"
      },
      "message": "function-graph: allow unregistering twice\n\nImpact: fix to permanent disabling of function graph tracer\n\nThere should be nothing to prevent a tracer from unregistering a\nfunction graph callback more than once. This can simplify error paths.\n\nBut currently, the counter does not account for mulitple unregistering\nof the function graph callback. If it happens, the function graph\ntracer will be permanently disabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a4efa42450762cbfa5c5712aa4cc9f06924c9fd",
      "tree": "70af0a079541af99dec634fc89ce317dee2f1a33",
      "parents": [
        "759ee0915dd713361e72facb78b66600b5712d65"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Wed Mar 25 12:06:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 17:45:36 2009 -0400"
      },
      "message": "ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n\n \"Because when we call ftrace_free_rec we change the rec-\u003eip to point to the\n  next record in the chain. Something is very wrong if rec-\u003eip \u003e\u003d s \u0026\u0026\n  rec-\u003eip \u003c e and the record is already free.\"\n\n \"Note, use FTRACE_WARN_ON() macro. This way it shuts down ftrace if it is\n  hit and helps to avoid further damage later.\"\n                   -- Steven Rostedt \u003crostedt@goodmis.org\u003e\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ee000b7f9fe429d2470c674ccec8d344f6789e0d",
      "tree": "35b480a5e5fb90d5a414d942bcb541e7887334d6",
      "parents": [
        "cc59c9e8d0165c632fd056c4a23e36f917507fb4"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 24 13:38:06 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 16:43:12 2009 +0100"
      },
      "message": "tracing: use union for multi-usages field\n\nImpact: cleanup\n\nstruct dyn_ftrace::ip has different usages in his lifecycle,\nwe use union for it. And also for struct dyn_ftrace::flags.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c49C871BE.3080405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc59c9e8d0165c632fd056c4a23e36f917507fb4",
      "tree": "8ca2b92345345d53ce3b5585cf87d72afddda43c",
      "parents": [
        "be6f164a02f394675e2ac2077dd354cebef5b4c0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 24 11:03:01 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 16:42:49 2009 +0100"
      },
      "message": "ftrace: show virtual PID\n\nImpact: fix PID output under namespaces\n\nWhen current namespace is not the global namespace,\npid read from set_ftrace_pid is no correct.\n\n # ~/newpid_namespace_run bash\n # echo $$\n 1\n # echo 1 \u003e set_ftrace_pid\n # cat set_ftrace_pid\n 3756\n\nSince we write virtual PID to set_ftrace_pid, we need get\nvirtual PID when we read it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c49C84D65.9050606@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be6f164a02f394675e2ac2077dd354cebef5b4c0",
      "tree": "9805294731c00ddb61857a4e1e42019058eb1542",
      "parents": [
        "8aef2d2856158a36c295a8d1288281e4839bff13"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 11:06:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 11:06:24 2009 -0400"
      },
      "message": "function-graph: add option for include sleep times\n\nImpact: give user a choice to show times spent while sleeping\n\nThe user may want to see the time a function spent sleeping.\nThis patch adds the trace option \"sleep-time\" to allow that.\nThe \"sleep-time\" option is default on.\n\n echo sleep-time \u003e /debug/tracing/trace_options\n\nproduces:\n\n ------------------------------------------\n 2)  avahi-d-3428  \u003d\u003e    \u003cidle\u003e-0\n ------------------------------------------\n\n 2)               |      finish_task_switch() {\n 2)   0.621 us    |        _spin_unlock_irq();\n 2)   2.202 us    |      }\n 2) ! 1002.197 us |    }\n 2) ! 1003.521 us |  }\n\nwhere as,\n\n echo nosleep-time \u003e /debug/tracing/trace_options\n\nproduces:\n\n 0)    \u003cidle\u003e-0    \u003d\u003e  yum-upd-3416\n ------------------------------------------\n\n 0)               |              finish_task_switch() {\n 0)   0.643 us    |                _spin_unlock_irq();\n 0)   2.342 us    |              }\n 0) + 41.302 us   |            }\n 0) + 42.453 us   |          }\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "8aef2d2856158a36c295a8d1288281e4839bff13",
      "tree": "eef85397dedcad001982724e0be2da6dc089b39f",
      "parents": [
        "05ce5818adee8f8efd0a5ca0d900a6789012516b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 01:10:15 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 09:33:30 2009 -0400"
      },
      "message": "function-graph: ignore times across schedule\n\nImpact: more accurate timings\n\nThe current method of function graph tracing does not take into\naccount the time spent when a task is not running. This shows functions\nthat call schedule have increased costs:\n\n 3) + 18.664 us   |      }\n ------------------------------------------\n 3)    \u003cidle\u003e-0    \u003d\u003e  kblockd-123\n ------------------------------------------\n\n 3)               |      finish_task_switch() {\n 3)   1.441 us    |        _spin_unlock_irq();\n 3)   3.966 us    |      }\n 3) ! 2959.433 us |    }\n 3) ! 2961.465 us |  }\n\nThis patch uses the tracepoint in the scheduling context switch to\naccount for time that has elapsed while a task is scheduled out.\nNow we see:\n\n ------------------------------------------\n 3)    \u003cidle\u003e-0    \u003d\u003e  edac-po-1067\n ------------------------------------------\n\n 3)               |      finish_task_switch() {\n 3)   0.685 us    |        _spin_unlock_irq();\n 3)   2.331 us    |      }\n 3) + 41.439 us   |    }\n 3) + 42.663 us   |  }\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "05ce5818adee8f8efd0a5ca0d900a6789012516b",
      "tree": "81c90288dd1da4291b5e3ee154756b2d7745c248",
      "parents": [
        "5d1a03dc541dc6672e60e57249ed22f40654ca47"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 00:18:31 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 09:32:52 2009 -0400"
      },
      "message": "function-graph: prevent more than one tracer registering\n\nImpact: prevent crash due to multiple function graph tracers\n\nThe function graph tracer can currently only handle a single tracer\nbeing registered. If another tracer registers with the function\ngraph tracer it can crash the system.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "03303549b1695dc024d4a653cc16bd79f78f9750",
      "tree": "aa731b33460908038a50fb72850b873638a768aa",
      "parents": [
        "b478b782e110fdb4135caa3062b6d687e989d994"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Mar 16 22:41:00 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 16 22:15:36 2009 -0400"
      },
      "message": "tracing/ftrace: fix the check on nopped sites\n\nImpact: fix a dynamic tracing failure\n\nRecently, the function and function graph tracers failed to use dynamic\ntracing after the following commit:\n\nfa9d13cf135efbd454453a53b6299976bea245a9\n(ftrace: don\u0027t try to __ftrace_replace_code on !FTRACE_FL_CONVERTED rec)\n\nThe patch is right except a mistake on the check for the FTRACE_FL_CONVERTED\nflag. The code patching is aborted in case of successfully nopped sites.\nWhat we want is the opposite: ignore the callsites that haven\u0027t been nopped.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e94142a67f8bad494c593f0a07c9fc2fbec98c0e",
      "tree": "75419622606aa186da5592302c91cb93471bec26",
      "parents": [
        "850a80cfaa5aec3e626eb3736eff890a80e4fa77"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 13 17:51:27 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:36:20 2009 +0100"
      },
      "message": "ftrace: remove struct list_head from struct dyn_ftrace\n\nImpact: save memory\n\nThe struct dyn_ftrace table is very large, this patch will save\nabout 50%.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c49BA2C9F.8020009@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "850a80cfaa5aec3e626eb3736eff890a80e4fa77",
      "tree": "777195c11a34eee8a63a5d2ccc3cf0ccd2855491",
      "parents": [
        "fa9d13cf135efbd454453a53b6299976bea245a9"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 13 17:47:23 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:35:31 2009 +0100"
      },
      "message": "ftrace: use seq_read\n\nImpact: cleanup\n\nVFS layer has tested the file mode, we do not need test it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c49BA2BAB.6010608@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa9d13cf135efbd454453a53b6299976bea245a9",
      "tree": "240d46a90984f3c84f336535269e97559e891104",
      "parents": [
        "b00f0b6dc1773b4c8f538503247da050b5ea631b"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Mar 13 17:16:34 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:25:06 2009 +0100"
      },
      "message": "ftrace: don\u0027t try to __ftrace_replace_code on !FTRACE_FL_CONVERTED rec\n\nDo __ftrace_replace_code for !FTRACE_FL_CONVERTED rec will always\nfail, we should ignore this rec.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: \"Steven Rostedt ;\" \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49BA2472.4060206@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b00f0b6dc1773b4c8f538503247da050b5ea631b",
      "tree": "94c81517cb3d1def0c0f9ccb33c48fb03c0f1c75",
      "parents": [
        "62a394eb77a1ddea73273f53ed8c3ccf6e04f2fb"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Mar 13 17:14:01 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:25:06 2009 +0100"
      },
      "message": "ftrace: avoid double-free of dyn_ftrace\n\nIf dyn_ftrace is freed before ftrace_release(), ftrace_release()\nwill free it again and make ftrace_free_records wrong.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: \"Steven Rostedt ;\" \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49BA23D9.1050900@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10dd3ebe213c31bff14b4dae3c5d32a76b1fad7c",
      "tree": "251609d532ccbb4c157a2c5c3d7a5b8176eeab8c",
      "parents": [
        "422d3c7a577b15e1384c9d4e72a9540896b685fa"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 06 15:29:04 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 12:07:38 2009 +0100"
      },
      "message": "tracing: fix deadlock when setting set_ftrace_pid\n\nImpact: fix deadlock while using set_ftrace_pid\n\nReproducer:\n\n\t# cd /sys/kernel/debug/tracing\n\t# echo $$ \u003e set_ftrace_pid\n\n\tthen, console becomes hung.\n\nDetails:\n\nwhen writing set_ftracepid, kernel callstack is following\n\n\tftrace_pid_write()\n\t\tmutex_lock(\u0026ftrace_lock);\n\t\tftrace_update_pid_func()\n\t\t\tmutex_lock(\u0026ftrace_lock);\n\t\t\tmutex_unlock(\u0026ftrace_lock);\n\t\tmutex_unlock(\u0026ftrace_lock);\n\nthen, system always deadlocks when ftrace_pid_write() is called.\n\nIn past days, ftrace_pid_write() used ftrace_start_lock, but\ncommit e6ea44e9b4c12325337cd1c06103cd515a1c02b2 consolidated\nftrace_start_lock to ftrace_lock.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c20090306151155.0778.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e2336a0d47c9661a40cc5ef85135ce1406af6e8",
      "tree": "6d977e4471f8e31245602a26e939368689d2383a",
      "parents": [
        "2002c258faaa8f89543df284fdbaa9e4b171547f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:44:55 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:40 2009 -0500"
      },
      "message": "tracing: make all file_operations const\n\nImpact: cleanup\n\nAll file_operations structures should be constant. No one is going to\nchange them.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c478f8786973d6d7552c652ddad3f6fd86b5af28",
      "tree": "39967f4bb9a35d626584bd46f1acd916c6b5278d",
      "parents": [
        "843adf2379c18ed9a1b7493ee208bfd5512732e0",
        "4377245aa93b65b6597e4b7bb460fb9abc48b56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "message": "Merge branch \u0027tip/x86/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n\nConflicts:\n\tinclude/linux/ftrace.h\n\tkernel/trace/ftrace.c\n"
    },
    {
      "commit": "4377245aa93b65b6597e4b7bb460fb9abc48b56b",
      "tree": "00eae2cbdd12e855bbde2f6cd6d1a6e6fd659a11",
      "parents": [
        "90c7ac49aa819feb9433b5310089fca6399881c0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 19 13:41:27 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 20 14:30:20 2009 -0500"
      },
      "message": "ftrace: break out modify loop immediately on detection of error\n\nImpact: added precaution on failure detection\n\nBreak out of the modifying loop as soon as a failure is detected.\nThis is just an added precaution found by code review and was not\nfound by any bug chasing.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "000ab691172db3921efa3cb7f17fc79235a1de7f",
      "tree": "5670e20fe203488b408977d5d5634fc9ddf418e1",
      "parents": [
        "07a66d7c53a538e1a9759954a82bb6c07365eff9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 13:35:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 20 13:16:18 2009 -0500"
      },
      "message": "ftrace: allow archs to preform pre and post process for code modification\n\nThis patch creates the weak functions: ftrace_arch_code_modify_prepare\nand ftrace_arch_code_modify_post_process that are called before and\nafter the stop machine is called to modify the kernel text.\n\nIf the arch needs to do pre or post processing, it only needs to define\nthese functions.\n\n[ Update: Ingo Molnar suggested using the name ftrace_arch_code_modify_*\n          over using ftrace_arch_modify_* ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f9349a8f978929a0c71d2c42ae299f7d462c239d",
      "tree": "e5d010a27078993709fd286f358122886cbbc3bc",
      "parents": [
        "64b36ca7f408e0bd45487c8c28f168f11f3b6dcd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Feb 19 21:13:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 20 11:36:24 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: make set_graph_function file support ftrace regex\n\nImpact: trace only functions matching a pattern\n\nThe set_graph_function file let one to trace only one or several\nchosen functions and follow all their code flow.\n\nCurrently, only a constant function name is allowed so this patch\nallows the ftrace_regex functions:\n\n- matches all functions that end with \"name\":\n  echo *name \u003e set_graph_function\n\n- matches all functions that begin with \"name\":\n  echo name* \u003e set_graph_function\n\n- matches all functions that contains \"name\":\n  echo *name* \u003e set_graph_function\n\nExample:\n\necho mutex* \u003e set_graph_function\n\n 0)               |  mutex_lock_nested() {\n 0)   0.563 us    |    __might_sleep();\n 0)   2.072 us    |  }\n 0)               |  mutex_unlock() {\n 0)   1.036 us    |    __mutex_unlock_slowpath();\n 0)   2.433 us    |  }\n 0)               |  mutex_unlock() {\n 0)   0.691 us    |    __mutex_unlock_slowpath();\n 0)   1.787 us    |  }\n 0)               |  mutex_lock_interruptible_nested() {\n 0)   0.548 us    |    __might_sleep();\n 0)   1.945 us    |  }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac07bcaa8259841905ead3f8cd60b1923ca6c0e5",
      "tree": "162def1cd53ef477adca17fe06c33a484f6b2e87",
      "parents": [
        "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
        "35ebf1caa4854ad5ba25f3a72967acc064147994"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:09:07 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:09:07 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
      "tree": "e6f718191893ccb713f854fc8bf4a5866a41fe2b",
      "parents": [
        "73d3fd96e77745742f3750b7b19ee42204adc210",
        "5b058bcde961bf28678a70e44c079107313543b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:08:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:08:13 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "5b058bcde961bf28678a70e44c079107313543b6",
      "tree": "077a1bd366399544a84f61b07ae2f7bd894fae47",
      "parents": [
        "f9aa28adfc6a4b01268ebb6d88566cca8627905f"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Feb 17 18:35:34 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 19:20:17 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: trace the idle tasks\n\nWhen the function graph tracer is activated, it iterates over the task_list\nto allocate a stack to store the return addresses.\n\nBut the per cpu idle tasks are not iterated by using\ndo_each_thread / while_each_thread.\n\nSo we have to iterate on them manually.\n\nThis fixes somes weirdness in the traces and many losses of traces.\nExamples on two cpus:\n\n 0)   Xorg-4287    |   2.906 us    |              }\n 0)   Xorg-4287    |   3.965 us    |            }\n 0)   Xorg-4287    |   5.302 us    |          }\n ------------------------------------------\n 0)   Xorg-4287    \u003d\u003e    \u003cidle\u003e-0\n ------------------------------------------\n\n 0)    \u003cidle\u003e-0    |   2.861 us    |                        }\n 0)    \u003cidle\u003e-0    |   0.526 us    |                        set_normalized_timespec();\n 0)    \u003cidle\u003e-0    |   7.201 us    |                      }\n 0)    \u003cidle\u003e-0    |   8.214 us    |                    }\n 0)    \u003cidle\u003e-0    |               |                    clockevents_program_event() {\n 0)    \u003cidle\u003e-0    |               |                      lapic_next_event() {\n 0)    \u003cidle\u003e-0    |   0.510 us    |                        native_apic_mem_write();\n 0)    \u003cidle\u003e-0    |   1.546 us    |                      }\n 0)    \u003cidle\u003e-0    |   2.583 us    |                    }\n 0)    \u003cidle\u003e-0    | + 12.435 us   |                  }\n 0)    \u003cidle\u003e-0    | + 13.470 us   |                }\n 0)    \u003cidle\u003e-0    |   0.608 us    |                _spin_unlock_irqrestore();\n 0)    \u003cidle\u003e-0    | + 23.270 us   |              }\n 0)    \u003cidle\u003e-0    | + 24.336 us   |            }\n 0)    \u003cidle\u003e-0    | + 25.417 us   |          }\n 0)    \u003cidle\u003e-0    |   0.593 us    |          _spin_unlock();\n 0)    \u003cidle\u003e-0    | + 41.869 us   |        }\n 0)    \u003cidle\u003e-0    | + 42.906 us   |      }\n 0)    \u003cidle\u003e-0    | + 95.035 us   |    }\n 0)    \u003cidle\u003e-0    |   0.540 us    |    menu_reflect();\n 0)    \u003cidle\u003e-0    | ! 100.404 us  |  }\n 0)    \u003cidle\u003e-0    |   0.564 us    |  mce_idle_callback();\n 0)    \u003cidle\u003e-0    |               |  enter_idle() {\n 0)    \u003cidle\u003e-0    |   0.526 us    |    mce_idle_callback();\n 0)    \u003cidle\u003e-0    |   1.757 us    |  }\n 0)    \u003cidle\u003e-0    |               |  cpuidle_idle_call() {\n 0)    \u003cidle\u003e-0    |               |    menu_select() {\n 0)    \u003cidle\u003e-0    |   0.525 us    |      pm_qos_requirement();\n 0)    \u003cidle\u003e-0    |   0.518 us    |      tick_nohz_get_sleep_length();\n 0)    \u003cidle\u003e-0    |   2.621 us    |    }\n[...]\n 1)    \u003cidle\u003e-0    |   0.518 us    |              touch_softlockup_watchdog();\n 1)    \u003cidle\u003e-0    | + 14.355 us   |            }\n 1)    \u003cidle\u003e-0    | + 22.840 us   |          }\n 1)    \u003cidle\u003e-0    | + 25.949 us   |        }\n 1)    \u003cidle\u003e-0    |               |        handle_irq() {\n 1)    \u003cidle\u003e-0    |   0.511 us    |          irq_to_desc();\n 1)    \u003cidle\u003e-0    |               |          handle_edge_irq() {\n 1)    \u003cidle\u003e-0    |   0.638 us    |            _spin_lock();\n 1)    \u003cidle\u003e-0    |               |            ack_apic_edge() {\n 1)    \u003cidle\u003e-0    |   0.510 us    |              irq_to_desc();\n 1)    \u003cidle\u003e-0    |               |              move_native_irq() {\n 1)    \u003cidle\u003e-0    |   0.510 us    |                irq_to_desc();\n 1)    \u003cidle\u003e-0    |   1.532 us    |              }\n 1)    \u003cidle\u003e-0    |   0.511 us    |              native_apic_mem_write();\n ------------------------------------------\n 1)    \u003cidle\u003e-0    \u003d\u003e    cat-5073\n ------------------------------------------\n\n 1)    cat-5073    |   3.731 us    |                    }\n 1)    cat-5073    |               |                    run_local_timers() {\n 1)    cat-5073    |   0.533 us    |                      hrtimer_run_queues();\n 1)    cat-5073    |               |                      raise_softirq() {\n 1)    cat-5073    |               |                        __raise_softirq_irqoff() {\n 1)    cat-5073    |               |                          /* nr: 1 */\n 1)    cat-5073    |   2.718 us    |                        }\n 1)    cat-5073    |   3.814 us    |                      }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6887d7916e44c1d8913084fb6aa5004d9473f1a",
      "tree": "3446baa5592ce9ce17abb51ffdf3d89e6b52ef9b",
      "parents": [
        "6a24a244cd3a02d5b290293c32fcf2c6e92b4235"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "message": "ftrace: rename _hook to _probe\n\nImpact: clean up\n\nIngo Molnar did not like the _hook naming convention used by the\nselect function tracer. Luis Claudio R. Goncalves suggested using\nthe \"_probe\" extension. This patch implements the change of\ncalling the functions and variables \"_hook\" and replacing them\nwith \"_probe\".\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "6a24a244cd3a02d5b290293c32fcf2c6e92b4235",
      "tree": "8328e5e7da792a07a338f20974eaea4f80bb59ac",
      "parents": [
        "73d3fd96e77745742f3750b7b19ee42204adc210"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 11:20:26 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 11:20:26 2009 -0500"
      },
      "message": "ftrace: clean up coding style\n\nIngo Molnar pointed out some coding style issues with the recent ftrace\nupdates. This patch cleans them up.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "73d3fd96e77745742f3750b7b19ee42204adc210",
      "tree": "02eb978e04288883d7f7709e87d8906687c29ba7",
      "parents": [
        "97d0bb8dcd8c2812e1927cdb51d7b1f9c98352b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:48:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:50:42 2009 +0100"
      },
      "message": "ftrace: fix !CONFIG_DYNAMIC_FTRACE ftrace_swapper_pid definition\n\nImpact: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "809dcf29ce4e1723709910878e050bd187617e0e",
      "tree": "4747ede5ad0678d6ae88176f403a2c26f277182e",
      "parents": [
        "8fc0c701c5b6c0c3e242758c3acef6f9047940a9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "message": "ftrace: add pretty print to selected fuction traces\n\nThis patch adds a call back for the tracers that have hooks to\nselected functions. This allows the tracer to show better output\nin the set_ftrace_filter file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "8fc0c701c5b6c0c3e242758c3acef6f9047940a9",
      "tree": "aa9c495fc2d898b39873e1ce9f154bed64b33f8e",
      "parents": [
        "23b4ff3aa479c9e3bb23cb6b2d0a97878399784a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 15:28:00 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:50:06 2009 -0500"
      },
      "message": "ftrace: show selected functions in set_ftrace_filter\n\nThis patch adds output to show what functions have tracer hooks\nattached to them.\n\n  # echo \u0027sys_open:traceon:4\u0027 \u003e /debug/tracing/set_ftrace_filter\n  # cat set_ftrace_filter\n\n #### all functions enabled ####\n sys_open:ftrace_traceon:0000000000000004\n\n  # echo \u0027do_fork:traceoff:\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter\n\n #### all functions enabled ####\n sys_open:ftrace_traceon:0000000000000002\n do_fork:ftrace_traceoff:ffffffffffffffff\n\nNote the 4 changed to a 2. This is because The code was executed twice\nsince the traceoff was added. If a cat is done again:\n\n #### all functions enabled ####\n sys_open:ftrace_traceon\n do_fork:ftrace_traceoff:ffffffffffffffff\n\nThe number disappears. That is because it will not print a NULL.\n\nCallbacks to allow the tracer to pretty print will be implemented soon.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "59df055f1991c9fc0c71a9230663c39188f6972f",
      "tree": "e1799897a8c8da924a3e933f539e8869e8725cb6",
      "parents": [
        "e6ea44e9b4c12325337cd1c06103cd515a1c02b2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 15:29:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:44:09 2009 -0500"
      },
      "message": "ftrace: trace different functions with a different tracer\n\nImpact: new feature\n\nCurrently, the function tracer only gives you an ability to hook\na tracer to all functions being traced. The dynamic function trace\nallows you to pick and choose which of those functions will be\ntraced, but all functions being traced will call all tracers that\nregistered with the function tracer.\n\nThis patch adds a new feature that allows a tracer to hook to specific\nfunctions, even when all functions are being traced. It allows for\ndifferent functions to call different tracer hooks.\n\nThe way this is accomplished is by a special function that will hook\nto the function tracer and will set up a hash table knowing which\ntracer hook to call with which function. This is the most general\nand easiest method to accomplish this. Later, an arch may choose\nto supply their own method in changing the mcount call of a function\nto call a different tracer. But that will be an exercise for the\nfuture.\n\nTo register a function:\n\n struct ftrace_hook_ops {\n\tvoid\t\t\t(*func)(unsigned long ip,\n\t\t\t\t\tunsigned long parent_ip,\n\t\t\t\t\tvoid **data);\n\tint\t\t\t(*callback)(unsigned long ip, void **data);\n\tvoid\t\t\t(*free)(void **data);\n };\n\n int register_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\t  void *data);\n\nglob is a simple glob to search for the functions to hook.\nops is a pointer to the operations (listed below)\ndata is the default data to be passed to the hook functions when traced\n\nops:\n func is the hook function to call when the functions are traced\n callback is a callback function that is called when setting up the hash.\n   That is, if the tracer needs to do something special for each\n   function, that is being traced, and wants to give each function\n   its own data. The address of the entry data is passed to this\n   callback, so that the callback may wish to update the entry to\n   whatever it would like.\n free is a callback for when the entry is freed. In case the tracer\n   allocated any data, it is give the chance to free it.\n\nTo unregister we have three functions:\n\n  void\n  unregister_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\tvoid *data)\n\nThis will unregister all hooks that match glob, point to ops, and\nhave its data matching data. (note, if glob is NULL, blank or \u0027*\u0027,\nall functions will be tested).\n\n  void\n  unregister_ftrace_function_hook_func(char *glob,\n\t\t\t\t struct ftrace_hook_ops *ops)\n\nThis will unregister all functions matching glob that has an entry\npointing to ops.\n\n  void unregister_ftrace_function_hook_all(char *glob)\n\nThis simply unregisters all funcs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e6ea44e9b4c12325337cd1c06103cd515a1c02b2",
      "tree": "01d13cb3dfb6031c220b42cedc7df7c84dc116b4",
      "parents": [
        "52baf11922db7377b580dd5448a07f71c6a35611"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 01:42:44 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 18:15:31 2009 -0500"
      },
      "message": "ftrace: consolidate mutexes\n\nImpact: clean up\n\nNow that ftrace_lock is a mutex, there is no reason to have three\ndifferent mutexes protecting similar data. All the mutex paths\nare not in hot paths, so having a mutex to cover more data is\nnot a problem.\n\nThis patch removes the ftrace_sysctl_lock and ftrace_start_lock\nand uses the ftrace_lock to protect the locations that were protected\nby these locks. By doing so, this change also removes some of\nthe lock nesting that was taking place.\n\nThere are still more mutexes in ftrace.c that can probably be\nconsolidated, but they can be dealt with later. We need to be careful\nabout the way the locks are nested, and by consolidating, we can cause\na recursive deadlock.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "52baf11922db7377b580dd5448a07f71c6a35611",
      "tree": "8fe8a5346da71f63d627ff3824e065efff88889b",
      "parents": [
        "f6180773d90595650e11de0118bb112018290915"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 01:15:39 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 17:33:14 2009 -0500"
      },
      "message": "ftrace: convert ftrace_lock from a spinlock to mutex\n\nImpact: clean up\n\nThe older versions of ftrace required doing the ftrace list\nsearch under atomic context. Now all the calls are in non-atomic\ncontext. There is no reason to keep the ftrace_lock as a spinlock.\n\nThis patch converts it to a mutex.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f6180773d90595650e11de0118bb112018290915",
      "tree": "ccf8642d7ac584f73e7820fae64fc4daf4546f6b",
      "parents": [
        "e68746a271eb3393a2183840be9e903caddf765b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 00:40:25 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 17:06:02 2009 -0500"
      },
      "message": "ftrace: add command interface for function selection\n\nAllow for other tracers to add their own commands for function\nselection. This interface gives a trace the ability to name a\ncommand for function selection. Right now it is pretty limited\nin what it offers, but this is a building step for more features.\n\nThe :mod: command is converted to this interface and also serves\nas a template for other implementations.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e68746a271eb3393a2183840be9e903caddf765b",
      "tree": "106ea87792837ccee1476687d9f9a067f96488a9",
      "parents": [
        "64e7c440618998fd69eee6ab490b042d12248021"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 13 20:53:42 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 17:03:49 2009 -0500"
      },
      "message": "ftrace: enable filtering only when a function is filtered on\n\nImpact: fix to prevent empty set_ftrace_filter and no ftrace output\n\nThe function filter is used to only trace a given set of functions.\nThe filter is enabled when a function name is echoed into the\nset_ftrace_filter file. But if the name has a typo and the function\nis not found, the filter is enabled, but no function is listed.\n\nThis makes a confusing situation where set_ftrace_filter is empty\nbut no functions ever get enabled for tracing.\n\nFor example:\n\n # cat /debug/tracing/set_ftrace_filter\n\n  #### all functions enabled ####\n\n # echo bad_name \u003e set_ftrace_filter\n # cat /debug/tracing/set_ftrace_filter\n\n # echo function \u003e current_tracer\n # cat trace\n\n  # tracer: nop\n  #\n  #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n  #              | |       |          |         |\n\nThis patch changes that to only enable filtering if a function\nis set to be filtered on. Now, the filter is not enabled if\na bad name is echoed into set_ftrace_filter.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "64e7c440618998fd69eee6ab490b042d12248021",
      "tree": "384246f895f2697dd6927b776c67755cc13e901d",
      "parents": [
        "9f4801e30ad291e27284e873696da1ead92d68fa"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 13 17:08:48 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 16:55:50 2009 -0500"
      },
      "message": "ftrace: add module command function filter selection\n\nThis patch adds a \"command\" syntax to the function filtering files:\n\n  /debugfs/tracing/set_ftrace_filter\n  /debugfs/tracing/set_ftrace_notrace\n\nOf the format:  \u003cfunction\u003e:\u003ccommand\u003e:\u003cparameter\u003e\n\nThe command is optional, and dependent on the command, so are\nthe parameters.\n\n echo do_fork \u003e set_ftrace_filter\n\nWill only trace \u0027do_fork\u0027.\n\n echo \u0027sched_*\u0027 \u003e set_ftrace_filter\n\nWill only trace functions starting with the letters \u0027sched_\u0027.\n\n echo \u0027*:mod:ext3\u0027 \u003e set_ftrace_filter\n\nWill trace only the ext3 module functions.\n\n echo \u0027*write*:mod:ext3\u0027 \u003e set_ftrace_notrace\n\nWill prevent the ext3 functions with the letters \u0027write\u0027 in\nthe name from being traced.\n\n echo \u0027!*_allocate:mod:ext3\u0027 \u003e set_ftrace_filter\n\nWill remove the functions in ext3 that end with the letters\n\u0027_allocate\u0027 from the ftrace filter.\n\nAlthough this patch implements the \u0027command\u0027 format, only the\n\u0027mod\u0027 command is supported. More commands to follow.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9f4801e30ad291e27284e873696da1ead92d68fa",
      "tree": "2a374e89f4f4ecb13cbcf8f914076539e9096517",
      "parents": [
        "7f24b31b01a271b62346d9df084b029e48612163"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 13 15:56:43 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 16:49:57 2009 -0500"
      },
      "message": "ftrace: break up ftrace_match_records into smaller components\n\nImpact: clean up\n\nftrace_match_records does a lot of things that other features\ncan use. This patch breaks up ftrace_match_records and pulls\nout ftrace_setup_glob and ftrace_match_record.\n\nftrace_setup_glob prepares a simple glob expression for use with\nftrace_match_record. ftrace_match_record compares a single record\nwith a glob type.\n\nBreaking this up will allow for more features to run on individual\nrecords.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "7f24b31b01a271b62346d9df084b029e48612163",
      "tree": "ad611a62206455b128db3032bf1a535207b1d20f",
      "parents": [
        "265c831cb03d533cbe159af45798ac9fef534260"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 13 14:37:33 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 16:33:15 2009 -0500"
      },
      "message": "ftrace: rename ftrace_match to ftrace_match_records\n\nImpact: clean up\n\nftrace_match is too generic of a name. What it really does is\nsearch all records and matches the records with the given string,\nand either sets or unsets the functions to be traced depending\non if the parameter \u0027enable\u0027 is set or not.\n\nThis allows us to make another function called ftrace_match that\ncan be used to test a single record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "265c831cb03d533cbe159af45798ac9fef534260",
      "tree": "d00548a034b3092f8f42086f348c70b784c1df5e",
      "parents": [
        "0c75a3ed633419d75d823d5dcb05d42924c6ae61"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 13 12:43:56 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 16:25:12 2009 -0500"
      },
      "message": "ftrace: add do_for_each_ftrace_rec and while_for_each_ftrace_rec\n\nImpact: clean up\n\nTo iterate over all the functions that dynamic trace knows about\nit requires two for loops. One to iterate over the pages and the\nother to iterate over the records within the page.\n\nThere are several duplications of these loops in ftrace.c. This\npatch creates the macros do_for_each_ftrace_rec and\nwhile_for_each_ftrace_rec to handle this logic, and removes the\nduplicate code.\n\nWhile making this change, I also discovered and fixed a small\nbug that one of the iterations should exit the loop after it found the\nrecord it was searching for. This used a break when it should have\nused a goto, since there were two loops it needed to break out\nfrom.  No real harm was done by this bug since it would only continue\nto search the other records, and the code was in a slow path anyway.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0c75a3ed633419d75d823d5dcb05d42924c6ae61",
      "tree": "1878804d15a37d1c1603d906933cee0e7b5c8787",
      "parents": [
        "5fb896a4e916e72efec4772b66be1cce3d6a9143"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 11:21:52 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 16:21:35 2009 -0500"
      },
      "message": "ftrace: state that all functions are enabled in set_ftrace_filter\n\nImpact: clean up, make set_ftrace_filter less confusing\n\nThe set_ftrace_filter shows only the functions that will be traced.\nBut when it is empty, it will trace all functions. This can be a bit\nconfusing.\n\nThis patch makes set_ftrace_filter show:\n\n  #### all functions enabled ####\n\nWhen all functions will be traced, and we do not filter only a select\nfew.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "57794a9d48b63e34acbe63282628c9f029603308",
      "tree": "ed42d073f82cd91b8d8a331c60814aa699c3293d",
      "parents": [
        "a81bd80a0b0a405dc0483e2c428332d69da2c79f"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Fri Feb 06 17:33:27 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 07 20:03:36 2009 -0500"
      },
      "message": "trace: trivial fixes in comment typos.\n\nImpact: clean up\n\nFixed several typos in the comments.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ce70a0b472e06feae3a580ecb3fbef1e1e020a9b",
      "tree": "46e8a2ef0c91fae86a735ee08add6cd6519ee74f",
      "parents": [
        "939b366977d29b5c0d53d1ea3b0b8cefb1e76202",
        "79fb0768fbd371f3b94d909f51f587b3a24ab272",
        "229c4ef8ae56d69f8dec64533bf1c7f8070c1a4a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 20:45:41 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 20:45:41 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/urgent\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "229c4ef8ae56d69f8dec64533bf1c7f8070c1a4a",
      "tree": "e13a9ef3602f945ae51b73b592c8ae4d29e67ca3",
      "parents": [
        "b1792e367053968f2ddb48bc911d314143ce6242"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Feb 03 20:39:04 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 22:50:58 2009 +0100"
      },
      "message": "ftrace: do_each_pid_task() needs rcu lock\n\n\"ftrace: use struct pid\" commit 978f3a45d9499c7a447ca7615455cefb63d44165\nconverted ftrace_pid_trace to \"struct pid*\".\n\nBut we can\u0027t use do_each_pid_task() without rcu_read_lock() even if\nwe know the pid itself can\u0027t go away (it was pinned in ftrace_pid_write).\nThe exiting task can detach itself from this pid at any moment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00f57f545afa422db3003b0d0b30a30f8de7ecb2",
      "tree": "02d5fc02d95987015b3051a63e7c481a28be4f47",
      "parents": [
        "082605de5f82eb692cc90f7fda071cc01bb5ac34"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 14 13:33:27 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 21 15:21:30 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: fix a regression while suspend to disk\n\nImpact: fix a crash while kernel image restore\n\nWhen the function graph tracer is running and while suspend to disk, some racy\nand dangerous things happen against this tracer.\n\nThe current task will save its registers including the stack pointer which\ncontains the return address hooked by the tracer. But the current task will\ncontinue to enter other functions after that to save the memory, and then\nit will store other return addresses, and finally loose the old depth which\nmatches the return address saved in the old stack (during the registers saving).\n\nSo on image restore, the code will return to wrong addresses.\nAnd there are other things: on restore, the task will have it\u0027s \"current\"\npointer overwritten during registers restoring....switching from one task to\nanother... That would be insane to try to trace function graphs at these\nstages.\n\nThis patch makes the function graph tracer listening on power events, making\nit\u0027s tracing disabled for the current task (the one that performs the\nhibernation work) while suspend/resume to disk, making the tracing safe\nduring hibernation.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4a2b8dda3f8705880ec7408135645602d5590f51",
      "tree": "94e13c979bd20c5aeb67b1cc5aadf87f8a47b25a",
      "parents": [
        "0ee6b6cf5bdb793b4c68507dd65adf16341aa4ca"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 14 13:33:27 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 15 09:47:40 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: fix a regression while suspend to disk\n\nImpact: fix a crash while kernel image restore\n\nWhen the function graph tracer is running and while suspend to disk, some racy\nand dangerous things happen against this tracer.\n\nThe current task will save its registers including the stack pointer which\ncontains the return address hooked by the tracer. But the current task will\ncontinue to enter other functions after that to save the memory, and then\nit will store other return addresses, and finally loose the old depth which\nmatches the return address saved in the old stack (during the registers saving).\n\nSo on image restore, the code will return to wrong addresses.\nAnd there are other things: on restore, the task will have it\u0027s \"current\"\npointer overwritten during registers restoring....switching from one task to\nanother... That would be insane to try to trace function graphs at these\nstages.\n\nThis patch makes the function graph tracer listening on power events, making\nit\u0027s tracing disabled for the current task (the one that performs the\nhibernation work) while suspend/resume to disk, making the tracing safe\nduring hibernation.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "32632920a788fb13da35b131b77cc4324c38c1c5",
      "tree": "41856b41a8ea41674aaf00270c36a4691c690622",
      "parents": [
        "e1d8aa9f1dd655a3534b22fcfbecb70cdb125766"
      ],
      "author": {
        "name": "Uwe Kleine-Koenig",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Mon Jan 12 23:35:50 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 14 12:11:49 2009 +0100"
      },
      "message": "ftrace, trivial: fix typo \"resgister\" -\u003e \"register\"\n\nSigned-off-by: Uwe Kleine-Koenig \u003cukleinek@strlen.de\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f00012074b1a1a67d9c8603617bbbab267347ca6",
      "tree": "7a5ec4d30a513914277ccaa607ff88ecf294f84a",
      "parents": [
        "25aac9dc7c8c73798c1be8aa36141f980d32579e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Jan 09 11:29:42 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 14 12:11:18 2009 +0100"
      },
      "message": "ftrace, ia64: Add macro for ftrace_caller\n\nDefine FTRACE_ADDR. In IA64, a function pointer isn\u0027t a \u0027unsigned long\u0027 but a\n\u0027struct {unsigned long ip, unsigned long gp}\u0027.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25aac9dc7c8c73798c1be8aa36141f980d32579e",
      "tree": "c1779bc208f76c80a5fe018ae129b19f64afec3d",
      "parents": [
        "18c167fd6d8feec5d337bd8fbc3a17da4cc37652"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Jan 09 11:29:40 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 14 12:11:13 2009 +0100"
      },
      "message": "ftrace, ia64: explictly ignore a file in recordmcount.pl\n\nIn IA64, a function pointer isn\u0027t a \u0027unsigned long\u0027 but a\n\u0027struct {unsigned long ip, unsigned long gp}\u0027. MCOUNT_ADDR is determined\nat link time not compile time, so explictly ignore kernel/trace/ftrace.o\nin recordmcount.pl.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "431aa3fbf5bbe3be79809c7e603c2ed2ac64b015",
      "tree": "a61e6a869388ab58b02bf2f0ac6931c5932fe675",
      "parents": [
        "99793e3dbe39a50d871eedc361659a894601e2bf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 06 12:43:01 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 07 10:43:52 2009 +0100"
      },
      "message": "ftrace: convert unsigned index to signed\n\nImpact: fix to unsigned compared to less than zero\n\nRoel Kluin pointed out that there is a compare of an unsigned number\nto less than zero. A previous clean up had the unsigned index set\nto -1 for certain cases, but never converted it to signed.\n\nFrederic Weisbecker noticed that another index is used to compare\nthe above index to and it also needs to be converted to signed.\n\n[\n  Converted ftrace_page-\u003eindex to int from unsigned long as\n  Andrew Morton pointed out that there\u0027s no need for it to\n  stay a long.\n]\n\nReported-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "3f8e402f34ecc7d1d00b54703d3baa401b8bdd78",
      "tree": "b1f515a1c5426809c076dd854f9385efb750683b",
      "parents": [
        "072b40a15616fe6bea68466e6bffcfcbf5c8f26f",
        "e7d3737ea1b102030f44e96c97754101e41515f0",
        "227a837567e339c74d9d4243d03a29bd943a018c",
        "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/tracepoints\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e",
      "tree": "e7bade7c500b2d4cd4d8c811a26c844c6f529366",
      "parents": [
        "ee51a1de7e3837577412be269e0100038068e691"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Sat Nov 15 15:19:06 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:32:05 2008 +0100"
      },
      "message": "function tracing: fix wrong pos computing when read buffer has been fulfilled\n\nImpact: make output of available_filter_functions complete\n\nphenomenon:\n\nThe first value of dyn_ftrace_total_info is not equal with\n`cat available_filter_functions | wc -l`, but they should be equal.\n\nroot cause:\n\nWhen printing functions with seq_printf in t_show, if the read buffer\nis just overflowed by current function record, then this function\nwon\u0027t be printed to user space through read buffer, it will\njust be dropped. So we can\u0027t see this function printing.\n\nSo, every time the last function to fill the read buffer, if overflowed,\nwill be dropped.\n\nThis also applies to set_ftrace_filter if set_ftrace_filter has\nmore bytes than read buffer.\n\nfix:\n\nThrough checking return value of seq_printf, if less than 0, we know\nthis function doesn\u0027t be printed. Then we decrease position to force\nthis function to be printed next time, in next read buffer.\n\nAnother little fix is to show correct allocating pages count.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d3737ea1b102030f44e96c97754101e41515f0",
      "tree": "44fdc3dea100d1fa639e6ba3cb1bfca2ab40e70b",
      "parents": [
        "b01c746617da5e260803eb10ed64ca043e9a1241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 06:02:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:57:38 2008 +0100"
      },
      "message": "tracing/function-return-tracer: support for dynamic ftrace on function return tracer\n\nThis patch adds the support for dynamic tracing on the function return tracer.\nThe whole difference with normal dynamic function tracing is that we don\u0027t need\nto hook on a particular callback. The only pro that we want is to nop or set\ndynamically the calls to ftrace_caller (which is ftrace_return_caller here).\n\nSome security checks ensure that we are not trying to launch dynamic tracing for\nreturn tracing while normal function tracing is already running.\n\nAn example of trace with getnstimeofday set as a filter:\n\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (2283 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1396 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1825 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1426 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1524 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1434 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1502 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1404 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1397 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1051 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1314 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1344 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1163 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1390 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1374 ns)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee02a2e5c88ca2e4d6921f08d037b46d5bf82641",
      "tree": "5ad2064cfb6de999b07a937c19438f3c6f888229",
      "parents": [
        "982c350b9ec4b3564d67f3627a274ae61bbc7e95"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Nov 15 16:31:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:37:46 2008 +0100"
      },
      "message": "ftrace: make filtered functions effective on setting\n\nImpact: set filtered functions at time the filter is set\n\nIt can be confusing when the set_filter_functions is set (or cleared)\nand the functions being recorded by the dynamic tracer does not\nmatch.\n\nThis patch causes the code to be updated if the function tracer is\nenabled and the filter is changed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "982c350b9ec4b3564d67f3627a274ae61bbc7e95",
      "tree": "c7ccd83698552997bcfe58ab7f61b8761d37957e",
      "parents": [
        "20e5227e9f55ae1969934821ccbf581563785bbe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Nov 15 16:31:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:37:17 2008 +0100"
      },
      "message": "ftrace: fix dyn ftrace filter\n\nImpact: correct implementation of dyn ftrace filter\n\nThe old decisions made by the filter algorithm was complex and incorrect.\nThis lead to inconsistent enabling or disabling of functions when\nthe filter was used.\n\nThis patch simplifies that code and in doing so, corrects the usage\nof the filters.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "20e5227e9f55ae1969934821ccbf581563785bbe",
      "tree": "cac23dc66e00c7667f5c0e7adc72a76bd1041816",
      "parents": [
        "31e889098a80ceb3e9e3c555d522b2686a6663c6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:42 2008 +0100"
      },
      "message": "ftrace: allow NULL pointers in mcount_loc\n\nImpact: make ftrace_convert_nops() more permissive\n\nDue to the way different architecture linkers combine the data sections\nof the mcount_loc (the section that lists all the locations that\ncall mcount), there may be zeros added in that section. This is usually\ndue to strange alignments that the linker performs, that pads in zeros.\n\nThis patch makes the conversion code to nops skip any pointer in\nthe mcount_loc section that is NULL.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31e889098a80ceb3e9e3c555d522b2686a6663c6",
      "tree": "2acb73507de4191d4a9aa5ccf08fa24e7044c89e",
      "parents": [
        "d51ad7ac48f991c4a8834485727efa99a691cb87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:02 2008 +0100"
      },
      "message": "ftrace: pass module struct to arch dynamic ftrace functions\n\nImpact: allow archs more flexibility on dynamic ftrace implementations\n\nDynamic ftrace has largly been developed on x86. Since x86 does not\nhave the same limitations as other architectures, the ftrace interaction\nbetween the generic code and the architecture specific code was not\nflexible enough to handle some of the issues that other architectures\nhave.\n\nMost notably, module trampolines. Due to the limited branch distance\nthat archs make in calling kernel core code from modules, the module\nload code must create a trampoline to jump to what will make the\nlarger jump into core kernel code.\n\nThe problem arises when this happens to a call to mcount. Ftrace checks\nall code before modifying it and makes sure the current code is what\nit expects. Right now, there is not enough information to handle modifying\nmodule trampolines.\n\nThis patch changes the API between generic dynamic ftrace code and\nthe arch dependent code. There is now two functions for modifying code:\n\n  ftrace_make_nop(mod, rec, addr) - convert the code at rec-\u003eip into\n       a nop, where the original text is calling addr. (mod is the\n       module struct if called by module init)\n\n  ftrace_make_caller(rec, addr) - convert the code rec-\u003eip that should\n       be a nop into a caller to addr.\n\nThe record \"rec\" now has a new field called \"arch\" where the architecture\ncan add any special attributes to each call site record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "918c115410c6cc57033835b6a401e57697f9ea4f",
      "tree": "62d4f9d5c76f022f59cdb2a58e95d55c9c233799",
      "parents": [
        "b17e8a37a13d0e87165054714434534bb7e69f2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:30:17 2008 +0100"
      },
      "message": "ftrace: do not process freed records\n\nImpact: keep from converting freed records\n\nWhen the tracer is started or stopped, it converts all code pointed\nto by the saved records into callers to ftrace or nops. When modules\nare unloaded, their records are freed, but they still exist within\nthe record pages.\n\nThis patch changes the code to skip over freed records.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b17e8a37a13d0e87165054714434534bb7e69f2d",
      "tree": "0acfd6ec460bfab35807eb6be058d946c380353e",
      "parents": [
        "f3c7ac40a99f4044b843e6e2c4f46ab2d354c563"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:30:07 2008 +0100"
      },
      "message": "ftrace: disable ftrace on anomalies in trace start and stop\n\nImpact: robust feature to disable ftrace on start or stop tracing on error\n\nCurrently only the initial conversion to nops will disable ftrace\non an anomaly. But if an anomaly happens on start or stopping of the\ntracer, it will silently fail.\n\nThis patch adds a check there too, to disable ftrace and warn if the\nconversion fails.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3c7ac40a99f4044b843e6e2c4f46ab2d354c563",
      "tree": "e4299e4cd9695adb6128eb3968d81a46f325b5c0",
      "parents": [
        "c91add5fa68ea9b1f2923b3788c5dae0e60e1f6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:29:53 2008 +0100"
      },
      "message": "ftrace: remove condition from ftrace_record_ip\n\nImpact: let module functions be recorded when dyn ftrace not enabled\n\nWhen dynamic ftrace had a daemon and a hash to record the locations\nof mcount callers at run time, the recording needed to stop when\nftrace was disabled. But now that the recording is done at compile time\nand the ftrace_record_ip is only called at boot up and when a module\nis loaded, we no longer need to check if ftrace_enabled is set.\nIn fact, this breaks module load if it is not set because we skip\nover module functions.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3535c6390f27d04273e4eee0bc687f171fbf5f4",
      "tree": "a0160e2b70acc1743d6d3c68d149df9673d78fde",
      "parents": [
        "12ef7d448613ead2babd41c3ebfa1fe03c20edef"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Fri Nov 14 00:21:02 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 19:36:30 2008 +0100"
      },
      "message": "ftrace: remove unnecessary if condition of __unregister_ftrace_function\n\nBecause it has goto out before ftrace_list \u003d\u003d \u0026ftrace_list_end,\nthat\u0027s to say, we never meet this condition.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60a011c736e7dd09a0b01ca6a051a416f3f52ffb",
      "tree": "20e91db58c3bbfa622d3ed8ec747e4974a807284",
      "parents": [
        "d06bbd669539215405874d8fe32ab65105e6c4bb",
        "19b3e9671c5a219b8c34da2cc66e0ce7c3a501ae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:09 2008 +0100"
      },
      "message": "Merge branch \u0027tracing/function-return-tracer\u0027 into tracing/fastboot\n"
    },
    {
      "commit": "d06bbd669539215405874d8fe32ab65105e6c4bb",
      "tree": "2567b00257b633fa13220fa515d4bad9749405db",
      "parents": [
        "d844222a54c33a960755b44b934cd1b01b05dceb",
        "3e89c7bb92fc92bb964734341487798c8d497bae",
        "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:11:37 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:11:37 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/ring_buffer.c\n"
    },
    {
      "commit": "a358324466b171e145df20bdb74fe81759906de6",
      "tree": "50b2b0b72ff40da6be232eb85d33a203612f3164",
      "parents": [
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:01:42 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:02:04 2008 -0500"
      },
      "message": "ring-buffer: buffer record on/off switch\n\nImpact: enable/disable ring buffer recording API added\n\nSeveral kernel developers have requested that there be a way to stop\nrecording into the ring buffers with a simple switch that can also\nbe enabled from userspace. This patch addes a new kernel API to the\nring buffers called:\n\n tracing_on()\n tracing_off()\n\nWhen tracing_off() is called, all ring buffers will not be able to record\ninto their buffers.\n\ntracing_on() will enable the ring buffers again.\n\nThese two act like an on/off switch. That is, there is no counting of the\nnumber of times tracing_off or tracing_on has been called.\n\nA new file is added to the debugfs/tracing directory called\n\n  tracing_on\n\nThis allows for userspace applications to also flip the switch.\n\n  echo 0 \u003e debugfs/tracing/tracing_on\n\ndisables the tracing.\n\n  echo 1 \u003e /debugfs/tracing/tracing_on\n\nenables it.\n\nNote, this does not disable or enable any tracers. It only sets or clears\na flag that needs to be set in order for the ring buffers to write to\ntheir buffers. It is a global flag, and affects all ring buffers.\n\nThe buffers start out with tracing_on enabled.\n\nThere are now three flags that control recording into the buffers:\n\n tracing_on: which affects all ring buffer tracers.\n\n buffer-\u003erecord_disabled: which affects an allocated buffer, which may be set\n     if an anomaly is detected, and tracing is disabled.\n\n cpu_buffer-\u003erecord_disabled: which is set by tracing_stop() or if an\n     anomaly is detected. tracing_start can not reenable this if\n     an anomaly occurred.\n\nThe userspace debugfs/tracing/tracing_enabled is implemented with\ntracing_stop() but the user space code can not enable it if the kernel\ncalled tracing_stop().\n\nUserspace can enable the tracing_on even if the kernel disabled it.\nIt is just a switch used to stop tracing if a condition was hit.\ntracing_on is not for protecting critical areas in the kernel nor is\nit for stopping tracing if an anomaly occurred. This is because userspace\ncan reenable it at any time.\n\nSide effect: With this patch, I discovered a dead variable in ftrace.c\n  called tracing_on. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "15e6cb3673ea6277999642802406a764b49391b0",
      "tree": "d0a46a918caa64d5fb1ed37be3e026b30e94fe77",
      "parents": [
        "caf4b323b02a16c92fba449952ac6515ddc76d7a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 07:14:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 10:29:12 2008 +0100"
      },
      "message": "tracing: add a tracer to catch execution time of kernel functions\n\nImpact: add new tracing plugin which can trace full (entry+exit) function calls\n\nThis tracer uses the low level function return ftrace plugin to\nmeasure the execution time of the kernel functions.\n\nThe first field is the caller of the function, the second is the\nmeasured function, and the last one is the execution time in\nnanoseconds.\n\n- v3:\n\n- HAVE_FUNCTION_RET_TRACER have been added. Each arch that support ftrace return\n  should enable it.\n- ftrace_return_stub becomes ftrace_stub.\n- CONFIG_FUNCTION_RET_TRACER depends now on CONFIG_FUNCTION_TRACER\n- Return traces printing can be used for other tracers on trace.c\n- Adapt to the new tracing API (no more ctrl_update callback)\n- Correct the check of \"disabled\" during insertion.\n- Minor changes...\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": "0183fb1c94b74862b073590fc52c56b7364b7bad",
      "tree": "79b67584fe7f2de26b1d4c9db516eb9645b6af45",
      "parents": [
        "a6b0786f7f83bcc4d414a2977aaebe2941ebe1de"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 07 22:36:02 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:51:02 2008 +0100"
      },
      "message": "ftrace: fix set_ftrace_filter\n\nImpact: fix of output of set_ftrace_filter\n\nCommit ftrace: do not show freed records in available_filter_functions\n\nRemoved a bit too much from the set_ftrace_filter code, where we now see\nall functions in the set_ftrace_filter file even when we set a filter.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60a7ecf42661f2b22168751298592da6ee210c9e",
      "tree": "050fd052c546c92f8aac10ee71d5bb6d98a21fc8",
      "parents": [
        "79c81d220c8e25163f56edcdfaf23f83a4c88e6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 05 16:05:44 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:50:51 2008 +0100"
      },
      "message": "ftrace: add quick function trace stop\n\nImpact: quick start and stop of function tracer\n\nThis patch adds a way to disable the function tracer quickly without\nthe need to run kstop_machine. It adds a new variable called\nfunction_trace_stop which will stop the calls to functions from mcount\nwhen set.  This is just an on/off switch and does not handle recursion\nlike preempt_disable().\n\nIt\u0027s main purpose is to help other tracers/debuggers start and stop tracing\nfuctions without the need to call kstop_machine.\n\nThe config option HAVE_FUNCTION_TRACE_MCOUNT_TEST is added for archs\nthat implement the testing of the function_trace_stop in the mcount\narch dependent code. Otherwise, the test is done in the C code.\n\nx86 is the only arch at the moment that supports this.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b6e4d56bf71866a2b58daa8323cf747988ce7e4",
      "tree": "abda53ec941c887283d496abf5d364ba80f72d5e",
      "parents": [
        "e946217e4fdaa67681bbabfa8e6b18641921f750"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Oct 28 20:17:38 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 19:15:58 2008 +0100"
      },
      "message": "ftrace: perform an initialization for ftrace to enable it\n\nImpact: corrects a bug which made the non-dyn function tracer not functional\n\nWith latest git, the non-dynamic function tracer didn\u0027t get any trace.\n\nThe problem was the fact that ftrace_enabled wasn\u0027t initialized to 1\nbecause ftrace hasn\u0027t any init function when DYNAMIC_FTRACE is disabled.\n\nSo when a tracer tries to register an ftrace_ops struct,\n__register_ftrace_function failed to set the hook.\n\nThis patch corrects it by setting an init function to initialize\nftrace during the boot.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f17845e5d97ead8fbdadfd40039e058ec7cf4a42",
      "tree": "14c053143dad362fce72cc77f2beb41ab6c43dec",
      "parents": [
        "66b0de3569b00f61978782b9f97aa4803dbec0fb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:47:10 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:52:44 2008 +0200"
      },
      "message": "ftrace: warning in kernel/trace/ftrace.c\n\nthis warning:\n\n  kernel/trace/ftrace.c:189: warning: ‘frozen_record_count’ defined but not used\n\ntriggers because frozen_record_count is only used in the KCONFIG_MARKERS\ncase. Move the variable it there.\n\nAlas, this frozen-record facility seems to have little use. The\nfrozen_record_count variable is not used by anything, nor the flags.\n\nSo this section might need a bit of dead-code-removal care as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66b0de3569b00f61978782b9f97aa4803dbec0fb",
      "tree": "9ffcb1a8481e7337dbe2d2ec321a3b4a427f84d7",
      "parents": [
        "15adc048986f6b54b6044f2b6fc4b48f49413e2f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:11:03 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:11:03 2008 +0200"
      },
      "message": "ftrace: fix build failure\n\nfix:\n\n kernel/trace/ftrace.c: In function \u0027ftrace_release\u0027:\n kernel/trace/ftrace.c:271: error: implicit declaration of function \u0027ftrace_release_hash\u0027\n\nrelease_hash is not needed without dftraced.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08f5ac906d2c0faf96d608c54a0b03177376da8d",
      "tree": "ee43d94b168b9c3b757db83aea78b45eb3a556c1",
      "parents": [
        "4d296c24326783bff1282ac72f310d8bac8df413"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:07 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:24 2008 +0200"
      },
      "message": "ftrace: remove ftrace hash\n\nThe ftrace hash was used by the ftrace_daemon code. The record ip function\nwould place the calling address (ip) into the hash. The daemon would later\nread the hash and modify that code.\n\nThe hash complicates the code. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4d296c24326783bff1282ac72f310d8bac8df413",
      "tree": "75751fdafc0fa5818a926478e78dd9e54f1cf872",
      "parents": [
        "cb7be3b2fc2cf089ee52b16f0fd9ebb29e9944e1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:06 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:23 2008 +0200"
      },
      "message": "ftrace: remove mcount set\n\nThe arch dependent function ftrace_mcount_set was only used by the daemon\nstart up code. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb7be3b2fc2cf089ee52b16f0fd9ebb29e9944e1",
      "tree": "4d5e4c1d1211ee7be1a583a9f9c4b33b7d4ce2ee",
      "parents": [
        "07c4cc1cdaa08fcb6c0275dd7be49eae37260169"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:05 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:22 2008 +0200"
      },
      "message": "ftrace: remove daemon\n\nThe ftrace daemon is complex and error prone.  This patch strips it out\nof the code.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6912896e994ddaf06cc0f6d3f2098bc4b59bdd84",
      "tree": "5f60e432eb5ec6cf0268ddc4d96f901578886c29",
      "parents": [
        "81adbdc029ecc416d56563e7f159100181dd711d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:03 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:20 2008 +0200"
      },
      "message": "ftrace: add ftrace warn on to disable ftrace\n\nAdd ftrace warn on to disable ftrace as well as report a warning.\n\n[ Thanks to Andrew Morton for suggesting using the WARN_ON return value ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "81adbdc029ecc416d56563e7f159100181dd711d",
      "tree": "ff7ed7b0fb284c22eb30e690a85e2e9e083c4162",
      "parents": [
        "ab9a0918cbf0fa8883301838df8dbc8fc085ff50"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:02 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:19 2008 +0200"
      },
      "message": "ftrace: only have ftrace_kill atomic\n\nWhen an anomaly is detected, we need a way to completely disable\nftrace. Right now we have two functions: ftrace_kill and ftrace_kill_atomic.\nThe ftrace_kill tries to do it in a \"nice\" way by converting everything\nback to a nop.\n\nThe \"nice\" way is dangerous itself, so this patch removes it and only\nhas the \"atomic\" version, which is all that is needed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "593eb8a2d63e95772a5f22d746f18a997c5ee463",
      "tree": "2a99c61ccffc2c0fd280bb2e5f81ac2f22e2f471",
      "parents": [
        "34698bcbdf7b0629d6c873b5da7c63073fb45361"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:32:59 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:13 2008 +0200"
      },
      "message": "ftrace: return error on failed modified text.\n\nHave the ftrace_modify_code return error values:\n\n  -EFAULT on error of reading the address\n\n  -EINVAL if what is read does not match what it expected\n\n  -EPERM  if the write fails to update after a successful match.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd95b88d9e51fcbf392a7e90338a8fcc3499cbd6",
      "tree": "a88df2bd756a4dd0715a92c3cec193366d86b861",
      "parents": [
        "c513867561eeb07d24a0bdda1a18a8f91921a301"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 16 09:31:27 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 20 18:27:01 2008 +0200"
      },
      "message": "ftrace: release functions from hash\n\nThe x86 architecture uses a static recording of mcount caller locations\nand is not affected by this patch.\n\nFor architectures still using the dynamic ftrace daemon, this patch is\ncritical. It removes the race between the recording of a function that\ncalls mcount, the unloading of a module, and the ftrace daemon updating\nthe call sites.\n\nThis patch adds the releasing of the hash functions that the daemon uses\nto update the mcount call sites. When a module is unloaded, not only\nare the replaced call site table update, but now so is the hash recorded\nfunctions that the ftrace daemon will use.\n\nAgain, architectures that implement MCOUNT_RECORD are not affected by\nthis (which currently only x86 has).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05736a427f7e16be948ccbf39782bd3a6ae16b14",
      "tree": "6efd6991853918242947df308be60b14a6fa5e80",
      "parents": [
        "43a15386c4faf913f7d70a47748c266d6210cd6e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 22 14:55:47 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:11 2008 +0200"
      },
      "message": "ftrace: warn on failure to disable mcount callers\n\nWith the recent updates to ftrace, there should not be any failures when\nmodifying the code. If there is, then we need to warn about it.\n\nThis patch has a cleaned up version of the code that I used to discover\nthat the weak symbols were causing failures.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71c67d58b5660f8e42c7d4c3e77cbc03fac5ed31",
      "tree": "c098b6b717c3bf1cb80bef83bde7c9a0ccbacaad",
      "parents": [
        "fb1b6d8b5154c692172a424e45fbd0573295cb93"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Sat Sep 20 01:00:37 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:58 2008 +0200"
      },
      "message": "ftrace: mcount_addr defined but not used\n\nWhen CONFIG_DYNAMIC_FTRACE isn\u0027t used, neither is mcount_addr. This\npatch eliminates that warning.\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "644f991d4b920ab1f5043509651479420b293490",
      "tree": "075c57f5fd43206d54e5debed0e738e1878d73aa",
      "parents": [
        "c0719e5a4b1ccc04180b7a7b71095c9fb7131919"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 06 01:06:04 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:58 2008 +0200"
      },
      "message": "ftrace: fix unlocking of hash\n\nThis must be brown paper bag week for Steven Rostedt!\n\nWhile working on ftrace for PPC, I discovered that the hash locking done\nwhen CONFIG_FTRACE_MCOUNT_RECORD is not set, is totally incorrect.\n\nWith a cut and paste error, I had the hash lock macro to lock for both\nhash_lock _and_ hash_unlock!\n\nThis bug did not affect x86 since this bug was introduced when\nCONFIG_FTRACE_MCOUNT_RECORD was added to x86.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b47bfc1fca01cccad9cce2d18b79b18ef2e4131",
      "tree": "5be5a241139b505dcb0edf6150183096c23b47ed",
      "parents": [
        "e5a81b629ea8feb9e7530cfac35cfb41c45facf3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 27 23:24:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:22 2008 +0200"
      },
      "message": "ftrace: remove direct reference to mcount in trace code\n\nThe mcount record method of ftrace scans objdump for references to mcount.\nUsing mcount as the reference to test if the calls to mcount being replaced\nare indeed calls to mcount, this use of mcount was also caught as a\nlocation to change. Using a variable that points to the mcount address\nmoves this reference into the data section that is not scanned, and\nwe do not use a false location to try and modify.\n\nThe warn on code was what was used to detect this bug.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac8825ec6d941b6899331b84c7d6bf027c3bb4f1",
      "tree": "3c8673f34f88e9438405216416ad22af8b9e4998",
      "parents": [
        "2d7da80f7138c4276ef4fa0334be400b805d0fbf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 25 08:12:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:09 2008 +0200"
      },
      "message": "ftrace: clean up macro usage\n\nenclose the argument in parenthesis. (especially since we cast it,\nwhich is a high prio operation)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d7da80f7138c4276ef4fa0334be400b805d0fbf",
      "tree": "2c2c21758498c989cf22414bf66bff1093edd263",
      "parents": [
        "6f93fc076a464bfe24e8d4c5fea3f6ca5bdb264d"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Aug 25 13:08:44 2008 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:06 2008 +0200"
      },
      "message": "ftrace: fix build failure\n\nAfter disabling FTRACE_MCOUNT_RECORD via a patch, a dormant build\nfailure surfaced:\n\n kernel/trace/ftrace.c: In function \u0027ftrace_record_ip\u0027:\n kernel/trace/ftrace.c:416: error: incompatible type for argument 1 of \u0027_spin_lock_irqsave\u0027\n kernel/trace/ftrace.c:433: error: incompatible type for argument 1 of \u0027_spin_lock_irqsave\u0027\n\nIntroduced by commit 6dad8e07f4c10b17b038e84d29f3ca41c2e55cd0 (\"ftrace:\nadd necessary locking for ftrace records\").\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "99ecdc43bc17faf5fa571db8569df171ecd0e5b8"
}
