)]}'
{
  "log": [
    {
      "commit": "4462344ee9ea9224d026801b877887f2f39774a3",
      "tree": "deb703d6858f2fb7f7db69c65e90560ce4a0654e",
      "parents": [
        "9e01c1b74c9531e301c900edaa92a99fcb7738f2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:23 2009 +1030"
      },
      "message": "cpumask: convert kernel trace functions further\n\nImpact: Reduce future memory usage, use new cpumask API.\n\nSince the last patch was created and acked, more old cpumask users\nslipped into kernel/trace.\n\nMostly trivial conversions, except struct trace_iterator\u0027s \"started\"\nmember becomes a cpumask_var_t.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "213cc060797378059a28ebc5c539f3e9a80160bd",
      "tree": "e159f9fae35ca59fe2c02e905c2b4b91881d865c",
      "parents": [
        "30cd324e9787ccc9a5ede59742d5409857550692"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Dec 19 12:08:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 16:29:34 2008 +0100"
      },
      "message": "ftrace: introduce tracing_reset_online_cpus() helper\n\nImpact: cleanup\n\nThis patch factors out common code from multiple tracers into a\ntracing_reset_online_cpus() function and converts the tracers to use it.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66896a85cf2890b6bbbc4c9ccdcd296600ffbf89",
      "tree": "ad6b0a4df65a59280163f5b8ab0b92b2fe54c283",
      "parents": [
        "2c2d7329d8afa9efa3ec24e19a53e7be9d14f242"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 13 20:18:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 00:26:36 2008 +0100"
      },
      "message": "tracing/ftrace: add the printk-msg-only option\n\nImpact: display ftrace_printk messages \"as is\"\n\nBy default, ftrace_printk() messages find their output with some other\ninformations like pid, caller, ...\nSometimes a developer just want to have the ftrace_printk left \"as is\", without\nother information.\n\nThis is done by providing a default-off option called printk-msg-only.\nTo enable it, just do `echo printk-msg-only \u003e /debugfs/tracing/trace_options`\n\nBefore the patch:\n\n           \u003c...\u003e-2739  [000]   145.692153: __might_sleep: I\u0027m an ftrace_printk msg in __might_sleep\n           \u003c...\u003e-2739  [000]   145.692155: __might_sleep: I\u0027m another ftrace_printk msg in __might_sleep\n\nAfter the patch and the printk-msg-only option enabled:\n\nI\u0027m an ftrace_printk msg in __might_sleep\nI\u0027m another ftrace_printk msg in __might_sleep\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a93751cab71d63126687551823ed3e70cd85854a",
      "tree": "665e9bf274c457edd672ad44320fad962e6c16f5",
      "parents": [
        "c2724775ce57c98b8af9694857b941dc61056516"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markut.t.metzger@intel.com",
        "time": "Thu Dec 11 13:53:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 08:08:14 2008 +0100"
      },
      "message": "x86, bts, ftrace: adapt the hw-branch-tracer to the ds.c interface\n\nImpact: restructure code, cleanup\n\nRemove BTS bits from the hw-branch-tracer (renamed from bts-tracer) and\nuse the ds interface.\n\nSigned-off-by: Markus Metzger \u003cmarkut.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77d683f3e0258d522c5506e7b5fd05c9411184d9",
      "tree": "defa7451b5218e7cfdd3a92117fca96368791425",
      "parents": [
        "ff32504fdc56407654584ef187b20022c94a3486"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:49:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:43 2008 +0100"
      },
      "message": "tracing/ftrace: fix the check of ftrace_trace_task\n\nImpact: fix default empty traces on function-graph-tracer\n\nThe actual ftrace_trace_task() checks if ftrace_pid_trace is allocated\nand return 1 if it is true.\nIf it is NULL, it will check the bit of pid tracing flag for the current\ntask (which are not set by default).\nSo by default, a task is not traced.\nActually all tasks should be traced by default and filter_by_pid when\nftrace_pid_trace is allocated.\n\nThe appropriate condition should be to return 1 if filter_by_pid is\nset.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcke-dby: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "970987beb9c99ca806edc464518d411cc399fb4d",
      "tree": "51e2298b6eb7e6412009428b380a51e1f17b531b",
      "parents": [
        "faec2ec505d397e9426754722b6e80d519c4938f",
        "1fd8f2a3f9a91b287a876cef830b21baafc8a799",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "1fd8f2a3f9a91b287a876cef830b21baafc8a799",
      "tree": "2baf0dfb14e3765efa370edafa2ab7f78d654308",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 03 23:45:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 10:18:39 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: handle ftrace_printk entries\n\nHandle the TRACE_PRINT entries from the function grapg tracer\nand output them as a C comment just below the function that called\nit, as if it was a comment inside this function.\n\nExample with an ftrace_printk inside might_sleep() function:\n\nvoid __might_sleep(char *file, int line)\n{\n\tstatic unsigned long prev_jiffy;\t/* ratelimiting */\n\n\tftrace_printk(\"Hi I\u0027m a comment in might_sleep() :-)\");\n\nA chunk of a resulting trace:\n\n 0)               |        _reiserfs_free_block() {\n 0)               |          reiserfs_read_bitmap_block() {\n 0)               |            __bread() {\n 0)               |              __getblk() {\n 0)               |                __find_get_block() {\n 0)   0.698 us    |                  mark_page_accessed();\n 0)   2.267 us    |                }\n 0)               |                __might_sleep() {\n 0)               |                  /* Hi I\u0027m a comment in might_sleep() :-) */\n 0)   1.321 us    |                }\n 0)   5.872 us    |              }\n 0)   7.313 us    |            }\n 0)   8.718 us    |          }\n\nAnd this patch brings two minor fixes:\n\n- The newline after a switch-out task has disappeared\n- The \"|\" sign just before the cpu number on task-switch has been deleted.\n\n 0)   0.616 us    |                pick_next_task_rt();\n 0)   1.457 us    |                _spin_trylock();\n 0)   0.653 us    |                _spin_unlock();\n 0)   0.728 us    |                _spin_trylock();\n 0)   0.631 us    |                _spin_unlock();\n 0)   0.729 us    |                native_load_sp0();\n 0)   0.593 us    |                native_load_tls();\n ------------------------------------------\n 0)    cat-2834    \u003d\u003e   migrati-3\n ------------------------------------------\n\n 0)               |    finish_task_switch() {\n 0)   0.841 us    |      _spin_unlock_irq();\n 0)   0.616 us    |      post_schedule_rt();\n 0)   3.882 us    |    }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b2539302bee8e88c99e3c7d80c16a04dbe5e2ad",
      "tree": "d4ae4b2af29f2e75546d3a496b6f077c5ef01555",
      "parents": [
        "e32d89569128e76bdf84867be0928902ca9f7555"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:18:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:33:01 2008 +0100"
      },
      "message": "tracing: fix typo and missing inline function\n\nImpact: fix build bugs\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "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": "c7cc77307669336a08928ab8668bdb3f3bcc021b",
      "tree": "c9f2997a7266cc5d8c5b61e964d8e014f274f5d3",
      "parents": [
        "0bfc24559d7945506184d86739fe365a181f06b7",
        "d144d5ee6a265823d39f75ecfed351a516295183",
        "437f24fb897d409a9978eb71ecfaf279dcd94acd",
        "f3f47a6768a29448866da4422b6f6bee485c947f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/power-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "f3f47a6768a29448866da4422b6f6bee485c947f",
      "tree": "ba4bf1b79cbd13412871eec50250294d7140fd09",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sun Nov 23 16:49:58 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 08:29:32 2008 +0100"
      },
      "message": "tracing: add \"power-tracer\": C/P state tracer to help power optimization\n\nImpact: new \"power-tracer\" ftrace plugin\n\nThis patch adds a C/P-state ftrace plugin that will generate\ndetailed statistics about the C/P-states that are being used,\nso that we can look at detailed decisions that the C/P-state\ncode is making, rather than the too high level \"average\"\nthat we have today.\n\nAn example way of using this is:\n\n mount -t debugfs none /sys/kernel/debug\n echo cstate \u003e /sys/kernel/debug/tracing/current_tracer\n echo 1 \u003e /sys/kernel/debug/tracing/tracing_enabled\n sleep 1\n echo 0 \u003e /sys/kernel/debug/tracing/tracing_enabled\n cat /sys/kernel/debug/tracing/trace | perl scripts/trace/cstate.pl \u003e out.svg\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "660c7f9be96321fc80026d76411bd15e6f418a72",
      "tree": "5ae61fa51c9e9ce7b42f64cfaa168cd09439ac3d",
      "parents": [
        "e53a6319cca69111c1643dc9f18f4465d7f1cbf0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:26 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:56 2008 +0100"
      },
      "message": "ftrace: add thread comm to function graph tracer\n\nImpact: enhancement to function graph tracer\n\nExport the trace_find_cmdline so the function graph tracer can\nuse it to print the comms of the threads.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "287b6e68ca7209caec40b2f44f837c580a413bae",
      "tree": "b0867d75868f6049dc5747bd39fdae2d477dde66",
      "parents": [
        "fb52607afcd0629776f1dc9e657647ceae81dd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 26 00:57:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: set a more human readable output\n\nImpact: feature\n\nThis patch sets a C-like output for the function graph tracing.\nFor this aim, we now call two handler for each function: one on the entry\nand one other on return. This way we can draw a well-ordered call stack.\n\nThe pid of the previous trace is loosely stored to be compared against\nthe one of the current trace to see if there were a context switch.\n\nWithout this little feature, the call tree would seem broken at\nsome locations.\nWe could use the sched_tracer to capture these sched_events but this\nway of processing is much more simpler.\n\n2 spaces have been chosen for indentation to fit the screen while deep\ncalls. The time of execution in nanosecs is printed just after closed\nbraces, it seems more easy this way to find the corresponding function.\nIf the time was printed as a first column, it would be not so easy to\nfind the corresponding function if it is called on a deep depth.\n\nI plan to output the return value but on 32 bits CPU, the return value\ncan be 32 or 64, and its difficult to guess on which case we are.\nI don\u0027t know what would be the better solution on X86-32: only print\neax (low-part) or even edx (high-part).\n\nActually it\u0027s thee same problem when a function return a 8 bits value, the\nhigh part of eax could contain junk values...\n\nHere is an example of trace:\n\nsys_read() {\n  fget_light() {\n  } 526\n  vfs_read() {\n    rw_verify_area() {\n      security_file_permission() {\n        cap_file_permission() {\n        } 519\n      } 1564\n    } 2640\n    do_sync_read() {\n      pipe_read() {\n        __might_sleep() {\n        } 511\n        pipe_wait() {\n          prepare_to_wait() {\n          } 760\n          deactivate_task() {\n            dequeue_task() {\n              dequeue_task_fair() {\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 504\n                  } 1587\n                  clear_buddies() {\n                  } 512\n                  add_cfs_task_weight() {\n                  } 519\n                  update_min_vruntime() {\n                  } 511\n                } 5602\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 496\n                  } 1631\n                  clear_buddies() {\n                  } 496\n                  update_min_vruntime() {\n                  } 527\n                } 4580\n                hrtick_update() {\n                  hrtick_start_fair() {\n                  } 488\n                } 1489\n              } 13700\n            } 14949\n          } 16016\n          msecs_to_jiffies() {\n          } 496\n          put_prev_task_fair() {\n          } 504\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_rt() {\n          } 496\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_idle() {\n          } 489\n\n------------8\u003c---------- thread 4 ------------8\u003c----------\n\nfinish_task_switch() {\n} 1203\ndo_softirq() {\n  __do_softirq() {\n    __local_bh_disable() {\n    } 669\n    rcu_process_callbacks() {\n      __rcu_process_callbacks() {\n        cpu_quiet() {\n          rcu_start_batch() {\n          } 503\n        } 1647\n      } 3128\n      __rcu_process_callbacks() {\n      } 542\n    } 5362\n    _local_bh_enable() {\n    } 587\n  } 8880\n} 9986\nkthread_should_stop() {\n} 669\ndeactivate_task() {\n  dequeue_task() {\n    dequeue_task_fair() {\n      dequeue_entity() {\n        update_curr() {\n          calc_delta_mine() {\n          } 511\n          update_min_vruntime() {\n          } 511\n        } 2813\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb52607afcd0629776f1dc9e657647ceae81dd50",
      "tree": "7bf43b41ff8510d3098c089913cce56a9049f0fd",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 25 21:07:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: change the name into function-graph-tracer\n\nImpact: cleanup\n\nThis patch changes the name of the \"return function tracer\" into\nfunction-graph-tracer which is a more suitable name for a tracing\nwhich makes one able to retrieve the ordered call stack during\nthe code flow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e9b51c28312f7334394aa30be56ff52c2b65b7e",
      "tree": "c0a231d83541263ee938e3452475409323e4e9a9",
      "parents": [
        "8bba1bf5e2434c83f2fe8b1422604ace9bbe4cb8"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:24:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:13 2008 +0100"
      },
      "message": "x86, bts, ftrace: a BTS ftrace plug-in prototype\n\nImpact: add new ftrace plugin\n\nA prototype for a BTS ftrace plug-in.\n\nThe tracer collects branch trace in a cyclic buffer for each cpu.\n\nThe tracer is not configurable and the trace for each snapshot is\nappended when doing cat /debug/tracing/trace.\n\nThis is a proof of concept that will be extended with future patches\nto become a (hopefully) useful tool.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bba1bf5e2434c83f2fe8b1422604ace9bbe4cb8",
      "tree": "3df07de04de7e3a838dbf544e6a98eadac37b027",
      "parents": [
        "6abb11aecd888d1da6276399380b7355f127c006"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:12:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:13 2008 +0100"
      },
      "message": "x86, ftrace: call trace-\u003eopen() before stopping tracing; add trace-\u003eprint_header()\n\nAdd a callback to allow an ftrace plug-in to write its own header.\n\nMove the call to trace-\u003eopen() up a few lines.\n\nThe changes are required by the BTS ftrace plug-in.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b54d3de9f3b8956653b06f1a32e9f9321c6d9027",
      "tree": "fef98e07a9327371304811191cafebdd65311502",
      "parents": [
        "74e2f334f4440cbcb63e9ebbcdcea430d41bdfa3"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:45:42 2008 +0100"
      },
      "message": "tracing: identify which executable object the userspace address belongs to\n\nImpact: modify+improve the userstacktrace tracing visualization feature\n\nStore thread group leader id, and use it to lookup the address in the\nprocess\u0027s map. We could have looked up the address on thread\u0027s map,\nbut the thread might not exist by the time we are called. The process\nmight not exist either, but if you are reading trace_pipe, that is\nunlikely.\n\nExample usage:\n\n mount -t debugfs nodev /sys/kernel/debug\n cd /sys/kernel/debug/tracing\n echo userstacktrace \u003eiter_ctrl\n echo sym-userobj \u003eiter_ctrl\n echo sched_switch \u003ecurrent_tracer\n echo 1 \u003etracing_enabled\n cat trace_pipe \u003e/tmp/trace\u0026\n .... run application ...\n echo 0 \u003etracing_enabled\n cat /tmp/trace\n\nYou\u0027ll see stack entries like:\n\n   /lib/libpthread-2.7.so[+0xd370]\n\nYou can convert them to function/line using:\n\n   addr2line -fie /lib/libpthread-2.7.so 0xd370\n\nOr:\n\n   addr2line -fie /usr/lib/debug/libpthread-2.7.so 0xd370\n\nFor non-PIC/PIE executables this won\u0027t work:\n\n   a.out[+0x73b]\n\nYou need to run the following: addr2line -fie a.out 0x40073b\n(where 0x400000 is the default load address of a.out)\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67518e2b1c490787dac7f35e1204e74fe21ba",
      "tree": "a3d92846e1a09a829f300ab15726ee9c288cb49e",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:25:15 2008 +0100"
      },
      "message": "tracing: add support for userspace stacktraces in tracing/iter_ctrl\n\nImpact: add new (default-off) tracing visualization feature\n\nUsage example:\n\n mount -t debugfs nodev /sys/kernel/debug\n cd /sys/kernel/debug/tracing\n echo userstacktrace \u003eiter_ctrl\n echo sched_switch \u003ecurrent_tracer\n echo 1 \u003etracing_enabled\n .... run application ...\n echo 0 \u003etracing_enabled\n\nThen read one of \u0027trace\u0027,\u0027latency_trace\u0027,\u0027trace_pipe\u0027.\n\nTo get the best output you can compile your userspace programs with\nframe pointers (at least glibc + the app you are tracing).\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
      "tree": "b45429e95fc7d52bae32e62ef514f3d7ccf62ce6",
      "parents": [
        "0619faf657806b943e6acf51f60f1cd023a96c78"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 03:22:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:11:00 2008 +0100"
      },
      "message": "tracing/function-return-tracer: add the overrun field\n\nImpact: help to find the better depth of trace\n\nWe decided to arbitrary define the depth of function return trace as\n\"20\". Perhaps this is not enough. To help finding an optimal depth, we\nmeasure now the overrun: the number of functions that have been missed\nfor the current thread. By default this is not displayed, we have to\ndo set a particular flag on the return tracer: echo overrun \u003e\n/debug/tracing/trace_options And the overrun will be printed on the\nright.\n\nAs the trace shows below, the current 20 depth is not enough.\n\nupdate_wall_time+0x37f/0x8c0 -\u003e update_xtime_cache (345 ns) (Overruns: 2838)\nupdate_wall_time+0x384/0x8c0 -\u003e clocksource_get_next (1141 ns) (Overruns: 2838)\ndo_timer+0x23/0x100 -\u003e update_wall_time (3882 ns) (Overruns: 2838)\ntick_do_update_jiffies64+0xbf/0x160 -\u003e do_timer (5339 ns) (Overruns: 2838)\ntick_sched_timer+0x6a/0xf0 -\u003e tick_do_update_jiffies64 (7209 ns) (Overruns: 2838)\nvgacon_set_cursor_size+0x98/0x120 -\u003e native_io_delay (2613 ns) (Overruns: 274)\nvgacon_cursor+0x16e/0x1d0 -\u003e vgacon_set_cursor_size (33151 ns) (Overruns: 274)\nset_cursor+0x5f/0x80 -\u003e vgacon_cursor (36432 ns) (Overruns: 274)\ncon_flush_chars+0x34/0x40 -\u003e set_cursor (38790 ns) (Overruns: 274)\nrelease_console_sem+0x1ec/0x230 -\u003e up (721 ns) (Overruns: 274)\nrelease_console_sem+0x225/0x230 -\u003e wake_up_klogd (316 ns) (Overruns: 274)\ncon_flush_chars+0x39/0x40 -\u003e release_console_sem (2996 ns) (Overruns: 274)\ncon_write+0x22/0x30 -\u003e con_flush_chars (46067 ns) (Overruns: 274)\nn_tty_write+0x1cc/0x360 -\u003e con_write (292670 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2a/0x90 -\u003e native_apic_mem_write (330 ns) (Overruns: 274)\nirq_enter+0x17/0x70 -\u003e idle_cpu (413 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2f/0x90 -\u003e irq_enter (1525 ns) (Overruns: 274)\nktime_get_ts+0x40/0x70 -\u003e getnstimeofday (465 ns) (Overruns: 274)\nktime_get_ts+0x60/0x70 -\u003e set_normalized_timespec (436 ns) (Overruns: 274)\nktime_get+0x16/0x30 -\u003e ktime_get_ts (2501 ns) (Overruns: 274)\nhrtimer_interrupt+0x77/0x1a0 -\u003e ktime_get (3439 ns) (Overruns: 274)\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": "adf9f19574334c9a29a2bc956009fcac7edf1a6b",
      "tree": "644415fb8e460290a6747c5933a1c62be9a9d50f",
      "parents": [
        "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 19:23:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:10:58 2008 +0100"
      },
      "message": "tracing/ftrace: implement a set_flag callback for tracers\n\nImpact: give a way to send specific messages to tracers\n\nThe current implementation of tracing uses some flags to control the\noutput of general tracers. But we have no way to implement custom\nflags handling for a specific tracer. This patch proposes a new\ncallback for the struct tracer which called set_flag and a structure\nthat represents a 32 bits variable flag.\n\nA tracer can implement a struct tracer_flags on which it puts the\ninitial value of the flag integer. Than it can place a range of flags\nwith their name and their flag mask on the flag integer. The structure\nthat implement a single flag is called struct tracer_opt.\n\nThese custom flags will be available through the trace_options file\nlike the general tracing flags. Changing their value is done like the\nother general flags. For example if you have a flag that calls \"foo\",\nyou can activate it by writing \"foo\" or \"nofoo\" on trace_options.\n\nNote that the set_flag callback is optional and is only needed if you\nwant the flags changing to be signaled to your tracer and let it to\naccept or refuse their assignment.\n\nV2: Some arrangements in coding style....\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": "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371",
      "tree": "02e63e90cc26792eaea21dced12bd7c10f996d30",
      "parents": [
        "3f8e402f34ecc7d1d00b54703d3baa401b8bdd78",
        "0c726da983de0704254250ef6495ca152e7abcca",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:52:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:52:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "0c726da983de0704254250ef6495ca152e7abcca",
      "tree": "fe57e18784cef716c65a1f4daa39da20acd15b4f",
      "parents": [
        "072b40a15616fe6bea68466e6bffcfcbf5c8f26f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sun Nov 16 16:07:58 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 12:07:27 2008 +0100"
      },
      "message": "tracing: branch tracer, fix writing to trace/trace_options\n\nImpact: fix trace_options behavior\n\nwriting to trace/trace_options use the index of the array\nto find the value of the flag. With branch tracer flag\ndefined conditionally, this breaks writing to trace_options\nwith branch tracer disabled.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c80025a49855b12fa09bb6db71820e3367b1369",
      "tree": "063fe72ed9bb3410c3293c83a7882cecc46e7410",
      "parents": [
        "e6e7a65aabdb696cf05a56cfd495c49a11fd4cde"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 05:57:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:55:23 2008 +0100"
      },
      "message": "tracing/ftrace: change the type of the init() callback\n\nImpact: extend the -\u003einit() method with the ability to fail\n\nThis bring a way to know if the initialization of a tracer successed.\nA tracer must return 0 on success and a traditional error (ie:\n-ENOMEM) if it fails.\n\nIf a tracer fails to init, it is free to print a detailed warn. The\ntracing api will not and switch to a new tracer will just return the\nerror from the init callback.\n\nNote: this will be used for the return tracer.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12ef7d448613ead2babd41c3ebfa1fe03c20edef",
      "tree": "252b12211d2bbf96e4a90625f0c6116c9a4bd7de",
      "parents": [
        "ee6bce52276c0717ed3e63296e5d9465d339e923"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 17:52:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:49:24 2008 +0100"
      },
      "message": "ftrace: CPU buffer start annotation clean ups\n\nImpact: better handling of CPU buffer start annotation\n\nBecause of the confusion with the per CPU buffers wrapping where\none CPU might be more active at the end of the trace than the other\nCPUs causing that one CPU to have a shorter history. Kernel\ndevelopers were confused by the \"missing\" data of that one CPU\nat the beginning of the trace output. An annotation was added to\nthe trace output to show that the buffer had started:\n\n # tracer: function\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n ##### CPU 3 buffer started ####\n          \u003cidle\u003e-0     [003]   158.192959: smp_apic_timer_interrupt\n [...]\n           \u003cidle\u003e-0     [003]   161.556520: default_idle\n ##### CPU 1 buffer started ####\n           \u003cidle\u003e-0     [001]   161.592494: hrtimer_force_reprogram\n [etc]\n\nBut this annotation gets a bit messy when tracers do not fill the\nbuffers. This patch does a couple of things:\n\n One) it adds a flag to trace_options to disable these annotations\n\n Two) it does not annotate if the tracer did not overflow its buffer.\n\nThis makes the output much cleaner.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80e5ea4506791af206266c5921c97f11d3b17866",
      "tree": "847eb231f1c98377bdd600a801657a338cd1baa1",
      "parents": [
        "9f029e83e968e5661d7be045bbcb620dbb909938"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:28:25 2008 +0100"
      },
      "message": "ftrace: add tracer called branch\n\nImpact: added new branch tracer\n\nCurrently the tracing of branch profiling (unlikelys and likelys hit)\nis only activated by the iter_ctrl. This patch adds a tracer called\n\"branch\" that will just trace the branch profiling. The advantage\nof adding this tracer is that it can be added to the ftrace selftests\non startup.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f029e83e968e5661d7be045bbcb620dbb909938",
      "tree": "13beecf2626162dc8a3912c79d58fc91e2193de5",
      "parents": [
        "2ed84eeb8808cf3c9f039213ca137ffd7d753f0e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:28:09 2008 +0100"
      },
      "message": "ftrace: rename unlikely iter_ctrl to branch\n\nImpact: rename of iter_ctrl unlikely to branch\n\nThe unlikely name is ugly. This patch converts the iter_ctrl command\n\"unlikely\" and \"nounlikely\" to \"branch\" and \"nobranch\" respectively.\n\nIt also renames a lot of internal functions to use \"branch\" instead\nof \"unlikely\".\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed84eeb8808cf3c9f039213ca137ffd7d753f0e",
      "tree": "3aa22269a1fd5ed0b66826120ca9b572400962b5",
      "parents": [
        "68d119f0a66f7e3663304343b072e56a2693446b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:27:58 2008 +0100"
      },
      "message": "trace: rename unlikely profiler to branch profiler\n\nImpact: name change of unlikely tracer and profiler\n\nIngo Molnar suggested changing the config from UNLIKELY_PROFILE\nto BRANCH_PROFILING. I never did like the \"unlikely\" name so I\nwent one step farther, and renamed all the unlikely configurations\nto a \"BRANCH\" variant.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52f232cb720a7babb752849cbc2cab2d24021209",
      "tree": "47c7e800549457bd5ab9b54f47729acac6e10780",
      "parents": [
        "1f0d69a9fc815db82f15722bf05227190b1d714d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:14:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:52:02 2008 +0100"
      },
      "message": "tracing: likely/unlikely branch annotation tracer\n\nImpact: new likely/unlikely branch tracer\n\nThis patch adds a way to record the instances of the likely() and unlikely()\nbranch condition annotations.\n\nWhen \"unlikely\" is set in /debugfs/tracing/iter_ctrl the unlikely conditions\nwill be added to any of the ftrace tracers. The change takes effect when\na new tracer is passed into the current_tracer file.\n\nFor example:\n\n bash-3471  [003]   357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177\n bash-3471  [003]   357.014756: [correct] update_curr:sched_fair.c:489\n bash-3471  [003]   357.014758: [correct] calc_delta_fair:sched_fair.c:411\n bash-3471  [003]   357.014759: [correct] account_group_exec_runtime:sched_stats.h:356\n bash-3471  [003]   357.014761: [correct] update_curr:sched_fair.c:489\n bash-3471  [003]   357.014763: [INCORRECT] calc_delta_fair:sched_fair.c:411\n bash-3471  [003]   357.014765: [correct] calc_delta_mine:sched.c:1279\n\nWhich shows the normal tracer heading, as well as whether the condition was\ncorrect \"[correct]\" or was mistaken \"[INCORRECT]\", followed by the function,\nfile name and line number.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74239072830ef3f1398edeb1bc1076fc330fd4a2",
      "tree": "60a244c6c88d9943760ded98a1a29ce018292107",
      "parents": [
        "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:24:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:19 2008 +0100"
      },
      "message": "tracing/fastboot: Use the ring-buffer timestamp for initcall entries\n\nImpact: Split the boot tracer entries in two parts: call and return\n\nNow that we are using the sched tracer from the boot tracer, we want\nto use the same timestamp than the ring-buffer to have consistent time\ncaptures between sched events and initcall events.\n\nSo we get rid of the old time capture by the boot tracer and split the\ninitcall events in two parts: call and return. This way we have the\nring buffer timestamp of both.\n\nAn example trace:\n\n[   27.904149584] calling  net_ns_init+0x0/0x1c0 @ 1\n[   27.904429624] initcall net_ns_init+0x0/0x1c0 returned 0 after 0 msecs\n[   27.904575926] calling  reboot_init+0x0/0x20 @ 1\n[   27.904655399] initcall reboot_init+0x0/0x20 returned 0 after 0 msecs\n[   27.904800228] calling  sysctl_init+0x0/0x30 @ 1\n[   27.905142914] initcall sysctl_init+0x0/0x30 returned 0 after 0 msecs\n[   27.905287211] calling  ksysfs_init+0x0/0xb0 @ 1\n ##### CPU 0 buffer started ####\n            init-1     [000]    27.905395:      1:120:R   + [001]    11:115:S\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.905425:      0:140:R \u003d\u003d\u003e [001]    11:115:R\n            init-1     [000]    27.905426:      1:120:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905431:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905451:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905456:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-11    [001]    27.905458:     11:115:R   + [001]    14:115:R\n          \u003cidle\u003e-0     [000]    27.905459:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905462:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-11    [001]    27.905462:     11:115:R \u003d\u003d\u003e [001]    14:115:R\n     ksoftirqd/0-4     [000]    27.905467:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905470:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905473:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905476:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905479:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905482:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905486:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-14    [001]    27.905499:     14:120:X \u003d\u003d\u003e [001]    11:115:R\n           udevd-11    [001]    27.905506:     11:115:R   + [000]     1:120:D\n          \u003cidle\u003e-0     [000]    27.905515:      0:140:R \u003d\u003d\u003e [000]     1:120:R\n           udevd-11    [001]    27.905517:     11:115:S \u003d\u003d\u003e [001]     0:140:R\n[   27.905557107] initcall ksysfs_init+0x0/0xb0 returned 0 after 3906 msecs\n[   27.905705736] calling  init_jiffies_clocksource+0x0/0x10 @ 1\n[   27.905779239] initcall init_jiffies_clocksource+0x0/0x10 returned 0 after 0 msecs\n[   27.906769814] calling  pm_init+0x0/0x30 @ 1\n[   27.906853627] initcall pm_init+0x0/0x30 returned 0 after 0 msecs\n[   27.906997803] calling  pm_disk_init+0x0/0x20 @ 1\n[   27.907076946] initcall pm_disk_init+0x0/0x20 returned 0 after 0 msecs\n[   27.907222556] calling  swsusp_header_init+0x0/0x30 @ 1\n[   27.907294325] initcall swsusp_header_init+0x0/0x30 returned 0 after 0 msecs\n[   27.907439620] calling  stop_machine_init+0x0/0x50 @ 1\n            init-1     [000]    27.907485:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907490:      1:120:D \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907507:      2:115:R   + [001]    15:115:R\n          \u003cidle\u003e-0     [001]    27.907517:      0:140:R \u003d\u003d\u003e [001]    15:115:R\n        kthreadd-2     [000]    27.907517:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907521:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.907524:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-15    [001]    27.907527:     15:115:D   + [000]     2:115:D\n     ksoftirqd/0-4     [000]    27.907537:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n           udevd-15    [001]    27.907537:     15:115:D \u003d\u003d\u003e [001]     0:140:R\n        kthreadd-2     [000]    27.907546:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907550:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907584:      1:120:R   + [000]    15:  0:D\n            init-1     [000]    27.907589:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907593:      1:120:D \u003d\u003d\u003e [000]    15:  0:R\n           udevd-15    [000]    27.907601:     15:  0:S \u003d\u003d\u003e [000]     2:115:R\n ##### CPU 0 buffer started ####\n        kthreadd-2     [000]    27.907616:      2:115:R   + [001]    16:115:R\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.907620:      0:140:R \u003d\u003d\u003e [001]    16:115:R\n        kthreadd-2     [000]    27.907621:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n           udevd-16    [001]    27.907625:     16:115:D   + [000]     2:115:D\n          \u003cidle\u003e-0     [000]    27.907628:      0:140:R   + [000]     4:115:S\n           udevd-16    [001]    27.907629:     16:115:D \u003d\u003d\u003e [001]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907631:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.907636:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907644:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907647:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907657:      1:120:R   + [001]    16:  0:D\n          \u003cidle\u003e-0     [001]    27.907666:      0:140:R \u003d\u003d\u003e [001]    16:  0:R\n[   27.907703862] initcall stop_machine_init+0x0/0x50 returned 0 after 0 msecs\n[   27.907850704] calling  filelock_init+0x0/0x30 @ 1\n[   27.907926573] initcall filelock_init+0x0/0x30 returned 0 after 0 msecs\n[   27.908071327] calling  init_script_binfmt+0x0/0x10 @ 1\n[   27.908165195] initcall init_script_binfmt+0x0/0x10 returned 0 after 0 msecs\n[   27.908309461] calling  init_elf_binfmt+0x0/0x10 @ 1\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": "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd",
      "tree": "3c705c5991fcf0f4968ff790bb2e2ce65c8cbf18",
      "parents": [
        "60a011c736e7dd09a0b01ca6a051a416f3f52ffb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:21:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:18 2008 +0100"
      },
      "message": "tracing/fastboot: move boot tracer structs and funcs into their own header.\n\nImpact: Cleanups on the boot tracer and ftrace\n\nThis patch bring some cleanups about the boot tracer headers. The\nfunctions and structures of this tracer have nothing related to ftrace\nand should have so their own header file.\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": "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": "a309720c876d7ad2e224bfd1982c92ae4364c82e",
      "tree": "a161d06f29e3739b95d8b96c3cfb67198de9af22",
      "parents": [
        "769c48eb2530c5c1a393e2c82063f4f050571d24"
      ],
      "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:54 2008 +0100"
      },
      "message": "ftrace: display start of CPU buffer in trace output\n\nImpact: change in trace output\n\nBecause the trace buffers are per cpu ring buffers, the start of\nthe trace can be confusing. If one CPU is very active at the\nend of the trace, its history will not go as far back as the\nother CPU traces.  This means that output for a particular CPU\nmay not appear for the first part of a trace.\n\nTo help annotate what is happening, and to prevent any more\nconfusion, this patch adds a line that annotates the start of\na CPU buffer output.\n\nFor example:\n\n       automount-3495  [001]   184.596443: dnotify_parent \u003c-vfs_write\n[...]\n       automount-3495  [001]   184.596449: dput \u003c-path_put\n       automount-3496  [002]   184.596450: down_read_trylock \u003c-do_page_fault\n[...]\n           sshd-3497  [001]   184.597069: up_read \u003c-do_page_fault\n          \u003cidle\u003e-0     [000]   184.597074: __exit_idle \u003c-exit_idle\n[...]\n       automount-3496  [002]   184.597257: filemap_fault \u003c-__do_fault\n          \u003cidle\u003e-0     [003]   184.597261: exit_idle \u003c-smp_apic_timer_interrupt\n\nNote, parsers of a trace output should always ignore any lines that\nstart with a \u0027#\u0027.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c76f06945be50564f925799ddfb6235ee4c26aa0",
      "tree": "941aaf84dd36096d7fb013f1e4be28bb8f2ac598",
      "parents": [
        "bbf5b1a0cecb56de6236db8b01c5bfb7ab8ba8b2"
      ],
      "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:39 2008 +0100"
      },
      "message": "ftrace: remove trace array ctrl\n\nImpact: remove obsolete variable in trace_array structure\n\nWith the new start / stop method of ftrace, the ctrl variable\nin the trace_array structure is now obsolete. Remove it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbf5b1a0cecb56de6236db8b01c5bfb7ab8ba8b2",
      "tree": "ca72072808748d3ebfcf9a58a1255cd6ce63fee8",
      "parents": [
        "49833fc232bd6a5076496994d855f601354501d7"
      ],
      "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:34 2008 +0100"
      },
      "message": "ftrace: remove ctrl_update method\n\nImpact: Remove the ctrl_update tracer method\n\nWith the new quick start/stop method of tracing, the ctrl_update\nmethod is out of date.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e168e0516e476070faa9e8e7b23dfcba79b76d82",
      "tree": "21b1bad3def7f6cd88d9adfe1b09973fc70f864a",
      "parents": [
        "75f5c47da386445ba0c5a8b7e3ca0c906e763369"
      ],
      "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:18 2008 +0100"
      },
      "message": "ftrace: fix sched_switch API\n\nImpact: fix for sched_switch that broke dynamic ftrace startup\n\nThe commit: tracing/fastboot: use sched switch tracer from boot tracer\nbroke the API of the sched_switch trace. The use of the\ntracing_start/stop_cmdline record is for only recording the cmdline,\nNOT recording the schedule switches themselves.\n\nSeeing that the boot tracer broke the API to do something that it\nwanted, this patch adds a new interface for the API while\nputing back the original interface of the old API.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75f5c47da386445ba0c5a8b7e3ca0c906e763369",
      "tree": "fa6719d849c7d3d8b1a7f753c877ac871035701e",
      "parents": [
        "0183fb1c94b74862b073590fc52c56b7364b7bad"
      ],
      "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:09 2008 +0100"
      },
      "message": "ftrace: fix boot trace sched startup\n\nImpact: boot tracer startup modified\n\nThe boot tracer calls into some of the schedule tracing private functions\nthat should not be exported. This patch cleans it up, and makes\nway for further changes in the ftrace infrastructure.\n\nThis patch adds a api to assign a tracer array to the schedule\ncontext switch tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9036990d462e09366f7297a2d1da6582c3e6b1d3",
      "tree": "e110393aad12177cb17fa68cb3fefb18ae2f1037",
      "parents": [
        "0f04870148ecb825133bc2733f473b1c5773ac0b"
      ],
      "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:51:03 2008 +0100"
      },
      "message": "ftrace: restructure tracing start/stop infrastructure\n\nImpact: change where tracing is started up and stopped\n\nCurrently, when a new tracer is selected via echo\u0027ing a tracer name into\nthe current_tracer file, the startup is only done if tracing_enabled is\nset to one. If tracing_enabled is changed to zero (by echo\u0027ing 0 into\nthe tracing_enabled file) a full shutdown is performed.\n\nThe full startup and shutdown of a tracer can be expensive and the\nuser can lose out traces when echo\u0027ing in 0 to the tracing_enabled file,\nbecause the process takes too long. There can also be places that\nthe user would like to start and stop the tracer several times and\ndoing the full startup and shutdown of a tracer might be too expensive.\n\nThis patch performs the full startup and shutdown when a tracer is\nselected. It also adds a way to do a quick start or stop of a tracer.\nThe quick version is just a flag that prevents the tracing from\ntaking place, but the overhead of the code is still there.\n\nFor example, the startup of a tracer may enable tracepoints, or enable\nthe function tracer.  The stop and start will just set a flag to\nhave the tracer ignore the calls when the tracepoint or function trace\nis called.  The overhead of the tracer may still be present when\nthe tracer is stopped, but no tracing will occur. Setting the tracer\nto the \u0027nop\u0027 tracer (or any other tracer) will perform the shutdown\nof the tracer which will disable the tracepoint or disable the\nfunction tracer.\n\nThe tracing_enabled file will simply start or stop tracing.\n\nThis change is all internal. The end result for the user should be the same\nas before. If tracing_enabled is not set, no trace will happen.\nIf tracing_enabled is set, then the trace will happen. The tracing_enabled\nvariable is static between tracers. Enabling  tracing_enabled and\ngoing to another tracer will keep tracing_enabled enabled. Same\nis true with disabling tracing_enabled.\n\nThis patch will now provide a fast start/stop method to the users\nfor enabling or disabling tracing.\n\nNote: There were two methods to the struct tracer that were never\n used: The methods start and stop. These were to be used as a hook\n to the reading of the trace output, but ended up not being\n necessary. These two methods are now used to enable the start\n and stop of each tracer, in case the tracer needs to do more than\n just not write into the buffer. For example, the irqsoff tracer\n must stop recording max latencies when tracing is stopped.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79c81d220c8e25163f56edcdfaf23f83a4c88e6b",
      "tree": "8748e39e968aacebbf150b81cbc845582b382a47",
      "parents": [
        "3299b4dd1180762da831be5eb6adc44553eaec26",
        "79a9d461fd521f133f0e66485aa9ed09c21f5191"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:43:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:43:47 2008 +0100"
      },
      "message": "Merge branch \u0027tracing/fastboot\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "d7ad44b697c9d13e445ddc7d16f736fbac333249",
      "tree": "a18ac8995bf7158835c69ca1c9ab9b674fc617fa",
      "parents": [
        "e55f605c14679c30be41473e60b7ad26524cdc35"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 31 13:20:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 04 17:14:06 2008 +0100"
      },
      "message": "tracing/fastboot: use sched switch tracer from boot tracer\n\nImpact: enhance boot trace output with scheduling events\n\nUse the sched_switch tracer from the boot tracer.\n\nWe also can trace schedule events inside the initcalls.\nSched tracing is disabled after the initcall has finished and\nthen reenabled before the next one is started.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b2a866f9344cb30d7ddf5d67b5b8393daf8bef07",
      "tree": "5265b5bcc3e6daca52f2951a85394bbc58f789fd",
      "parents": [
        "182e9f5f704ed6b9175142fe8da33c9ce0c52b52"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 03 23:15:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 04 10:09:50 2008 +0100"
      },
      "message": "ftrace: function tracer with irqs disabled\n\nImpact: disable interrupts during trace entry creation (as opposed to preempt)\n\nTo help with performance, I set the ftracer to not disable interrupts,\nand only to disable preemption. If an interrupt occurred, it would not\nbe traced, because the function tracer protects itself from recursion.\nThis may be faster, but the trace output might miss some traces.\n\nThis patch makes the fuction trace disable interrupts, but it also\nadds a runtime feature to disable preemption instead. It does this by\nhaving two different tracer functions. When the function tracer is\nenabled, it will check to see which version is requested (irqs disabled\nor preemption disabled). Then it will use the corresponding function\nas the tracer.\n\nIrq disabling is the default behaviour, but if the user wants better\nperformance, with the chance of missing traces, then they can choose\nthe preempt disabled version.\n\nRunning hackbench 3 times with the irqs disabled and 3 times with\nthe preempt disabled function tracer yielded:\n\ntracing type       times            entries recorded\n------------      --------          ----------------\nirq disabled      43.393            166433066\n                  43.282            166172618\n                  43.298            166256704\n\npreempt disabled  38.969            159871710\n                  38.943            159972935\n                  39.325            161056510\n\nAverage:\n\n   irqs disabled:  43.324           166287462\npreempt disabled:  39.079           160300385\n\n preempt is 10.8 percent faster than irqs disabled.\n\nI wrote a patch to count function trace recursion and reran hackbench.\n\nWith irq disabled: 1,150 times the function tracer did not trace due to\n  recursion.\nwith preempt disabled: 5,117,718 times.\n\nThe thousand times with irq disabled could be due to NMIs, or simply a case\nwhere it called a function that was not protected by notrace.\n\nBut we also see that a large amount of the trace is lost with the\npreempt version.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f0a056fcb2f83a069fb5d60c2383304b7456687",
      "tree": "a427700400ab674ed7de882214b501176ec7507f",
      "parents": [
        "7a895f53cda9d9362c30144e42c124a1ae996b9e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 03 23:15:55 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 04 10:09:48 2008 +0100"
      },
      "message": "ftrace: introduce ftrace_preempt_disable()/enable()\n\nImpact: add new ftrace-plugin internal APIs\n\nParts of the tracer needs to be careful about schedule recursion.\nIf the NEED_RESCHED flag is set, a preempt_enable will call schedule.\nInside the schedule function, the NEED_RESCHED flag is cleared.\n\nThe problem arises when a trace happens in the schedule function but before\nNEED_RESCHED is cleared. The race is as follows:\n\nschedule()\n  \u003e\u003e tracer called\n\n    trace_function()\n       preempt_disable()\n       [ record trace ]\n       preempt_enable()  \u003c\u003c- here\u0027s the issue.\n\n         [check NEED_RESCHED]\n          schedule()\n          [ Repeat the above, over and over again ]\n\nThe naive approach is simply to use preempt_enable_no_schedule instead.\nThe problem with that approach is that, although we solve the schedule\nrecursion issue, we now might lose a preemption check when not in the\nschedule function.\n\n  trace_function()\n    preempt_disable()\n    [ record trace ]\n    [Interrupt comes in and sets NEED_RESCHED]\n    preempt_enable_no_resched()\n    [continue without scheduling]\n\nThe way ftrace handles this problem is with the following approach:\n\n\tint resched;\n\n\tresched \u003d need_resched();\n\tpreempt_disable_notrace();\n\t[record trace]\n\tif (resched)\n\t\tpreempt_enable_no_sched_notrace();\n\telse\n\t\tpreempt_enable_notrace();\n\nThis may seem like the opposite of what we want. If resched is set\nthen we call the \"no_sched\" version??  The reason we do this is because\nif NEED_RESCHED is set before we disable preemption, there\u0027s two reasons\nfor that:\n\n  1) we are in an atomic code path\n  2) we are already on our way to the schedule function, and maybe even\n     in the schedule function, but have yet to clear the flag.\n\nBoth the above cases we do not want to schedule.\n\nThis solution has already been implemented within the ftrace infrastructure.\nBut the problem is that it has been implemented several times. This patch\nencapsulates this code to two nice functions.\n\n  resched \u003d ftrace_preempt_disable();\n  [ record trace]\n  ftrace_preempt_enable(resched);\n\nThis way the tracers do not need to worry about getting it right.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9244489a7b69fe0746dc7cb3957f02e05bd1ceb0",
      "tree": "f0fb4a422667f67e7e3ac587bbbc6b03fa83756a",
      "parents": [
        "f3384b28a05624783b53836ccfed95ecde66a7ad"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 24 09:42:59 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 31 00:03:26 2008 +0100"
      },
      "message": "ftrace: handle archs that do not support irqs_disabled_flags\n\nImpact: build fix on non-lockdep architectures\n\nSome architectures do not support a way to read the irq flags that\nis set from \"local_irq_save(flags)\" to determine if interrupts were\ndisabled or enabled. Ftrace uses this information to display to the user\nif the trace occurred with interrupts enabled or disabled.\n\nBesides the fact that those archs that do not support this will fail to\ncompile, unless they fix it, we do not want to have the trace simply\nsay interrupts were not disabled or they were enabled, without knowing\nthe real answer.\n\nThis patch adds a \u0027X\u0027 in the output to let the user know that the\narchitecture they are running on does not support a way for the tracer\nto determine if interrupts were enabled or disabled. It also lets those\nsame archs compile with tracing enabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "606576ce816603d9fe1fb453a88bc6eea16ca709",
      "tree": "7c6844ff4d75f249df49e9e5fe97062d301c3a1f",
      "parents": [
        "c2db8054c1eaf99983d8deee347876b01c26c2cf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 06 19:06:12 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 20 18:27:03 2008 +0200"
      },
      "message": "ftrace: rename FTRACE to FUNCTION_TRACER\n\nDue to confusion between the ftrace infrastructure and the gcc profiling\ntracer \"ftrace\", this patch renames the config options from FTRACE to\nFUNCTION_TRACER.  The other two names that are offspring from FTRACE\nDYNAMIC_FTRACE and FTRACE_MCOUNT_RECORD will stay the same.\n\nThis patch was generated mostly by script, and partially by hand.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38697053fa006411224a1790e2adb8216440ab0f",
      "tree": "30daab3a6ba93f1c8c922397ffe8a0d6a220e8b1",
      "parents": [
        "e4c2ce82ca2710e17cb4df8eb2b249fa2eb5af30"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 13:14:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:09 2008 +0200"
      },
      "message": "ftrace: preempt disable over interrupt disable\n\nWith the new ring buffer infrastructure in ftrace, I\u0027m trying to make\nftrace a little more light weight.\n\nThis patch converts a lot of the local_irq_save/restore into\npreempt_disable/enable.  The original preempt count in a lot of cases\nhas to be sent in as a parameter so that it can be recorded correctly.\nSome places were recording it incorrectly before anyway.\n\nThis is also laying the ground work to make ftrace a little bit\nmore reentrant, and remove all locking. The function tracers must\nstill protect from reentrancy.\n\nNote: All the function tracers must be careful when using preempt_disable.\n  It must do the following:\n\n  resched \u003d need_resched();\n  preempt_disable_notrace();\n  [...]\n  if (resched)\n\tpreempt_enable_no_resched_notrace();\n  else\n\tpreempt_enable_notrace();\n\nThe reason is that if this function traces schedule() itself, the\npreempt_enable_notrace() will cause a schedule, which will lead\nus into a recursive failure.\n\nIf we needed to reschedule before calling preempt_disable, we\nshould have already scheduled. Since we did not, this is most\nlikely that we should not and are probably inside a schedule\nfunction.\n\nIf resched was not set, we still need to catch the need resched\nflag being set when preemption was off and the if case at the\nend will catch that for us.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7104f300c5a69b46dda00d898034dd05c9f21739",
      "tree": "a8c885bd61fb1e269f277837b2e521179faf8739",
      "parents": [
        "797d3712a9dd75c720558612be05f42c031a7bb5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 10:52:51 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:07 2008 +0200"
      },
      "message": "ftrace: type cast filter+verifier\n\nThe mmiotrace map had a bug that would typecast the entry from\nthe trace to the wrong type. That is a known danger of C typecasts,\nthere\u0027s absolutely zero checking done on them.\n\nHelp that problem a bit by using a GCC extension to implement a\ntype filter that restricts the types that a trace record can be\ncast into, and by adding a dynamic check (in debug mode) to verify\nthe type of the entry.\n\nThis patch adds a macro to assign all entries of ftrace using the type\nof the variable and checking the entry id. The typecasts are now done\nin the macro for only those types that it knows about, which should\nbe all the types that are allowed to be read from the tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c4f035f6c3e8fda661eb6105aa51ef07aa71607",
      "tree": "9bac9e431789f2f551b6b6b2f86463b0b568bf19",
      "parents": [
        "777e208d40d0953efc6fb4ab58590da3f7d8f02d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 29 20:18:34 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:00 2008 +0200"
      },
      "message": "tracing/ftrace: change the type of the print_line callback\n\nWe need a kind of disambiguation when a print_line callback\nreturns 0.\n\n_There is not enough space to print all the entry.\n Please flush the seq and retry.\n_I can\u0027t handle this type of entry\n\nThis patch changes the type of this callback for better information.\n\nAlso some changes have been made in this V2.\n\n_ Only relay to default functions after the print_line callback fails.\n_ This patch doesn\u0027t fix the issue with the broken pipe (see patch 2/4 for that)\n\nSome things are still in discussion:\n\n_ Find better names for the enum print_line_t values\n_ Change the type of print_trace_line into boolean.\n\nPatches to change that can be sent later.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "777e208d40d0953efc6fb4ab58590da3f7d8f02d",
      "tree": "1e5940ccafd26c958b358f7ce85926659f12c37d",
      "parents": [
        "3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:42 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:59 2008 +0200"
      },
      "message": "ftrace: take advantage of variable length entries\n\nNow that the underlining ring buffer for ftrace now hold variable length\nentries, we can take advantage of this by only storing the size of the\nactual event into the buffer. This happens to increase the number of\nentries in the buffer dramatically.\n\nWe can also get rid of the \"trace_cont\" operation, but I\u0027m keeping that\nuntil we have no more users. Some of the ftrace tracers can now change\ntheir code to adapt to this new feature.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c",
      "tree": "5c1fd6fd721e2e9a5c47facfd50fbc011b3db53a",
      "parents": [
        "ed56829cb3195de499f97fa6108fe9134319bae6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:41 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:57 2008 +0200"
      },
      "message": "ftrace: make work with new ring buffer\n\nThis patch ports ftrace over to the new ring buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d13744cd6e3fef373a3fe656ac349b4e7c49ff79",
      "tree": "7315ec5390bd4977ecf5d0b25d7ec5cf0440236a",
      "parents": [
        "aa5d9151f745b6ee6a236a1f109118034277eb92"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 23 11:32:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:47 2008 +0200"
      },
      "message": "tracing/ftrace: add the boot tracer\n\nAdd the boot/initcall tracer.\n\nIt\u0027s primary purpose is to be able to trace the initcalls.\n\nIt is intended to be used with scripts/bootgraph.pl after some small\nimprovements.\n\nNote that it is not active after its init. To avoid tracing (and so\ncrashing) before the whole tracing engine init, you have to explicitly\ncall start_boot_trace() after do_pre_smp_initcalls() to enable it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43a15386c4faf913f7d70a47748c266d6210cd6e",
      "tree": "2af766a34661123bd520fb30b1f83fbff1e65dab",
      "parents": [
        "2a3a4f669df2164288d11406d11d5e4933bf5e53"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Sep 21 20:16:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:09 2008 +0200"
      },
      "message": "tracing/ftrace: replace none tracer by nop tracer\n\nReplace \"none\" tracer by the recently created \"nop\" tracer.\nBoth are pretty similar except that nop accepts TRACE_PRINT\nor TRACE_SPECIAL entries.\n\nAnd as a consequence, changing the size of the ring buffer now\nrequires that tracing has already been disabled.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8925b394eca0bb0a444a6487d702d0f650e94a10",
      "tree": "855a9f3ba8f6e74eaf0301898d79619077fa9b8d",
      "parents": [
        "71c67d58b5660f8e42c7d4c3e77cbc03fac5ed31"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Sat Sep 20 01:00:38 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:01 2008 +0200"
      },
      "message": "trace: remove pointless ifdefs\n\nThe functions are already \u0027extern\u0027 anyway, so there\u0027s no problem\nwith linkage. Removing these ifdefs also helps find any potential\ncompiler errors.\n\nSuggested by Andrew Morton.\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb1b6d8b5154c692172a424e45fbd0573295cb93",
      "tree": "d9a7ad2c629a6133998402354e77cd721e4962b4",
      "parents": [
        "5bf9a1ee350a10feb94107de32a203d81fbbe706"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Fri Sep 19 03:06:43 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:43 2008 +0200"
      },
      "message": "ftrace: add nop tracer\n\nA no-op tracer which can serve two purposes:\n\n 1. A template for development of a new tracer.\n 2. A convenient way to see ftrace_printk() calls without\n    an irrelevant trace making the output messy.\n\n[ mingo@elte.hu: resolved conflicts ]\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5bf9a1ee350a10feb94107de32a203d81fbbe706",
      "tree": "ac6b11aaa35194aed9fe9f1403c9542d070d0c62",
      "parents": [
        "4427414170a63331a9cc36b9598502c5cdfe453b"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:06:42 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:20 2008 +0200"
      },
      "message": "ftrace: inject markers via trace_marker file\n\nAllow a user to inject a marker (TRACE_PRINT entry) into the trace ring\nbuffer. The related file operations are derived from code by Frédéric\nWeisbecker \u003cfweisbec@gmail.com\u003e.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fc5e27ae4b45a0619701a83f30d9b7fad7ed9400",
      "tree": "236b53e76430aae9f6b1abc37de9259ba95c38c6",
      "parents": [
        "9e57fb35d711331a9b1410c5c56ebeb3733428a0"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:02:27 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:14 2008 +0200"
      },
      "message": "mmiotrace: handle TRACE_PRINT entries\n\nAlso make trace_seq_print_cont() non-static, and add a newline if the\nseq buffer can\u0027t hold all data.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "801fe40001dfc263848552fb28924b766ed44ea4",
      "tree": "fbb0a6ff09deb9f605d955ccdc6f5cb89793e1cf",
      "parents": [
        "45dcd8b8a8ca855591e3ac882d3a7fc255d09d43"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 21:58:24 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:07 2008 +0200"
      },
      "message": "ftrace: add trace_vprintk()\n\ntrace_vprintk() for easier implementation of tracer specific *_printk\nfunctions. Add check check for no_tracer, and implement\n__ftrace_printk() as a wrapper.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45dcd8b8a8ca855591e3ac882d3a7fc255d09d43",
      "tree": "55b1772dfc9a6381ab1ecad7f3f6fbd605427f20",
      "parents": [
        "bbe5c7830c6dbde58726d44ec0337bc8b2d95d37"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 21:56:41 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:04 2008 +0200"
      },
      "message": "ftrace: move mmiotrace functions out of trace.c\n\nMoves the mmiotrace specific functions from trace.c to\ntrace_mmiotrace.c. Functions trace_wake_up(), tracing_get_trace_entry(),\nand tracing_generic_entry_update() are therefore made available outside\ntrace.c.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80b5e940050c273ba277acbf3a9fbc1d4441e681",
      "tree": "dd40f96b91fe3dc5508395cf9a559e14070499e7",
      "parents": [
        "f09ce573f57ddc35c67b39e51f34545877b30031"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 04 10:24:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:48 2008 +0200"
      },
      "message": "ftrace: sched_switch: show the wakee\u0027s cpu\n\nWhile profiling the smp behaviour of the scheduler it was needed to know to\nwhich cpu a task got woken.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f09ce573f57ddc35c67b39e51f34545877b30031",
      "tree": "776620a03aa55eecf5497b2a2a8027de6d819624",
      "parents": [
        "5a90f577e5369a84b720ead42e621fcb1b8a8b21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 04 10:24:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:45 2008 +0200"
      },
      "message": "ftrace: make ftrace_printk usable with the other tracers\n\nCurrently ftrace_printk only works with the ftrace tracer, switch it to an\niter_ctrl setting so we can make us of them with other tracers too.\n\n[rostedt@redhat.com: tweak to the disable condition]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd0e545f061f90099a3dcc13aa77e29c6295cf23",
      "tree": "91842e81cacd2ae785bf14b96f3f65af96985658",
      "parents": [
        "2e2ca155cd2213b4f398031180fb3d399d5b7db9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 12:26:41 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:19 2008 +0200"
      },
      "message": "ftrace: printk formatting infrastructure\n\nThis patch adds a feature that can help kernel developers debug their\ncode using ftrace.\n\n  int ftrace_printk(const char *fmt, ...);\n\nThis records into the ftrace buffer using printf formatting. The entry\nsize in the buffers are still a fixed length. A new type has been added\nthat allows for more entries to be used for a single recording.\n\nThe start of the print is still the same as the other entries.\n\nIt returns the number of characters written to the ftrace buffer.\n\nFor example:\n\nHaving a module with the following code:\n\nstatic int __init ftrace_print_test(void)\n{\n        ftrace_printk(\"jiffies are %ld\\n\", jiffies);\n        return 0;\n}\n\nGives me:\n\n  insmod-5441  3...1 7569us : ftrace_print_test: jiffies are 4296626666\n\nfor the latency_trace file and:\n\n          insmod-5441  [03]  1959.370498: ftrace_print_test jiffies are 4296626666\n\nfor the trace file.\n\nNote: Only the infrastructure should go into the kernel. It is to help\nfacilitate debugging for other kernel developers. Calls to ftrace_printk\nis not intended to be left in the kernel, and should be frowned upon just\nlike scattering printks around in the code.\n\nBut having this easily at your fingertips helps the debugging go faster\nand bugs be solved quicker.\n\nMaybe later on, we can hook this with markers and have their printf format\nbe sucked into ftrace output.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e2ca155cd2213b4f398031180fb3d399d5b7db9",
      "tree": "027295832950e23ac4edc84e43550d02e9a1acc6",
      "parents": [
        "fed1939c64d2288938fdc1c367d49082da65e195"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 12:26:40 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:15 2008 +0200"
      },
      "message": "ftrace: new continue entry - separate out from trace_entry\n\nSome tracers will need to work with more than one entry. In order to do this\nthe trace_entry structure was split into two fields. One for the start of\nall entries, and one to continue an existing entry.\n\nThe trace_entry structure now has a \"field\" entry that consists of the previous\ncontent of the trace_entry, and a \"cont\" entry that is just a string buffer\nthe size of the \"field\" entry.\n\nThanks to Andrew Morton for suggesting this idea.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6712e299b7dc78aa4971b85e803435ee6d49a9dd",
      "tree": "b3d17a2d068737ec07727b28e93c7d374c27721b",
      "parents": [
        "ec1bb60bbff0386c3ec25360e7a8c72f467a6ff1",
        "b2613e370dbeb69edbff989382fa54f2395aa471"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 15:58:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 15:58:35 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "001b6767b1d0c89e458e5ddb039245b268f569fb",
      "tree": "51d1135647957f9ad1a513103cdd3cfa11694cda",
      "parents": [
        "007c05d4d2ce42fabd58cb54ed98e0a1714d9d86"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:10 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:18 2008 +0200"
      },
      "message": "ftrace: define function trace nop\n\nWhen CONFIG_FTRACE is not enabled, the tracing_start_functon_trace\nand tracing_stop_function_trace should be nops.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec1bb60bbff0386c3ec25360e7a8c72f467a6ff1",
      "tree": "893c04336763acd84d575fd713773b882e8bc8a6",
      "parents": [
        "5373fdbdc1dba69aa956098650f71b731d471885",
        "37f5d732f34fa099676b2c52b8a57bab01a011de"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:08 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/sysprof\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "5373fdbdc1dba69aa956098650f71b731d471885",
      "tree": "8d9f07539896a696352818820c9c5f6612370882",
      "parents": [
        "bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f",
        "4d51c7587bb13dbb2fafcad6c0b5231bd864b55f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:06 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/mmiotrace\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "41bc8144d02028133bcd1d545023c6f49e8b2411",
      "tree": "382a6bbd0560df129c27b490aca36404edd7b19a",
      "parents": [
        "41c52c0db9607e59f90da7da5309489fa06e887f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 22 11:49:22 2008 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 26 22:51:49 2008 +0200"
      },
      "message": "ftrace: fix up cmdline recording\n\nThe new work with converting the trace hooks over to markers broke the\ncommand line recording of ftrace. This patch fixes it again.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bd8ac686c73c7e925fcfe0b02dc4e7b947127864",
      "tree": "7a675c4919429b507bb8e7b09677d96ae30ec561",
      "parents": [
        "f984b51e0779a6dd30feedc41404013ca54e5d05"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:24:53 2008 +0200"
      },
      "message": "ftrace: mmiotrace, updates\n\nhere is a patch that makes mmiotrace work almost well within the tracing\nframework. The patch applies on top of my previous patch. I have my own\noutput formatting in place now.\n\nSummary of changes:\n- fix the NULL dereference that was due to not calling tracing_reset()\n- add print_line() callback into struct tracer\n- implement print_line() for mmiotrace, producing up-to-spec text\n- add my output header, but that is not really called in the right place\n- rewrote the main structs in mmiotrace\n- added two new trace entry types: TRACE_MMIO_RW and TRACE_MMIO_MAP\n- made some functions in trace.c non-static\n- check current\u003d\u003dNULL in tracing_generic_entry_update()\n- fix(?) comparison in trace_seq_printf()\n\nThings seem to work fine except a few issues. Markers (text lines injected\ninto mmiotrace log) are missing, I did not feel hacking them in before we\nhave variable length entries. My output header is printed only for \u0027trace\u0027\nfile, but not \u0027trace_pipe\u0027. For some reason, despite my quick fix,\niter-\u003etrace is NULL in print_trace_line() when called from \u0027trace_pipe\u0027\nfile, which means I don\u0027t get proper output formatting.\n\nI only tried by loading nouveau.ko, which just detects the card, and that\nis traced fine. I didn\u0027t try further. Map, two reads and unmap. Works\nperfectly.\n\nI am missing the information about overflows, I\u0027d prefer to have a\ncounter for lost events. I didn\u0027t try, but I guess currently there is no\nway of knowning when it overflows?\n\nSo, not too far from being fully operational, it seems :-)\nAnd looking at the diffstat, there also is some 700-900 lines of user space\ncode that just became obsolete.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d618b3e6e50970a6248ac857653fdd49bcd3c045",
      "tree": "1bf01a4c4092b9db9b3690a980b5260170ec6567",
      "parents": [
        "9f6b4e3f4a24f2590f1c96f117fc45fbea9b0fa4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:49 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 23:40:22 2008 +0200"
      },
      "message": "ftrace: sysprof updates\n\nmake the sample period configurable.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a6dd24f8d00cbccb560b19a723e6fb9bdfb20799",
      "tree": "8170d270a55b3d5856eef54a16e76b24d5a62c38",
      "parents": [
        "56a08bdcff20f0022bd9160c1093e56f763499aa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:47 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 23:39:38 2008 +0200"
      },
      "message": "ftrace: sysprof-plugin, add self-tests\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "74f4e369fc5b52433ad824cef32d3bf1304549be",
      "tree": "c70d073a2740821f52d8b2b09f01626a06201e74",
      "parents": [
        "5b82a1b08a00b2adca3d9dd9777efff40b7aaaa1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:21:15 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:34:56 2008 +0200"
      },
      "message": "ftrace: stacktrace fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5b82a1b08a00b2adca3d9dd9777efff40b7aaaa1",
      "tree": "4dcce4af592ca177bee3dfeb34f9b482d142e713",
      "parents": [
        "0aa977f592f17004f9d1d545f2e1bb9ea71896c3"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Mon May 12 21:21:10 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:29:25 2008 +0200"
      },
      "message": "Port ftrace to markers\n\nPorting ftrace to the marker infrastructure.\n\nDon\u0027t need to chain to the wakeup tracer from the sched tracer, because markers\nsupport multiple probes connected.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6c6c27969a4c6024e6c8838829546c02aaddca18",
      "tree": "95158673881e53373ec4e7d92ff0c0e0f34be30f",
      "parents": [
        "2bb6f8d6389cbfadd657e7dc069f6986abf35e4f"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:21:02 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:02:13 2008 +0200"
      },
      "message": "ftrace: add readpos to struct trace_seq; add trace_seq_to_user()\n\nRefactor code from tracing_read_pipe() and create trace_seq_to_user().\nMoved trace_seq_reset() call before iter-\u003etrace-\u003eread() call so that\nwhen all leftover data is returned, trace_seq is reset automatically.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "107bad8bef5ab2c3a3bff7648c18c9dc3abdc13b",
      "tree": "6a7767e093cf3439efb334f6222b9fd5e1d9eb25",
      "parents": [
        "53d0aa773053ab18287781e25d52c5faf9e0e09e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:21:01 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:56:29 2008 +0200"
      },
      "message": "ftrace: add trace pipe header pluggin\n\nThis patch adds a method for open_pipe and open_read to the pluggins\nso that they can add a header to the trace pipe call.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "53d0aa773053ab18287781e25d52c5faf9e0e09e",
      "tree": "c0e268cb22a0416efca8709c677d41b513af04d3",
      "parents": [
        "72b59d67f80983f7bb587b086fb4cb1bc95263a4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:21:01 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:56:02 2008 +0200"
      },
      "message": "ftrace: add logic to record overruns\n\nThis patch sets up the infrastructure to record overruns of the tracing\nbuffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "25b0b44a1c732ccfc58095cdd8438955a0a19fff",
      "tree": "68d2577cc12d6fc6cf14508cdf2ce8fbbf85032b",
      "parents": [
        "4fcdae83cebda24b519a89d3dd976081fff1ca80"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:21:00 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:52:12 2008 +0200"
      },
      "message": "ftrace: fix comm on function trace output\n\nIn cleaning up of the sched_switch code, the function trace recording\nof task comms was removed. This patch adds back the recording of comms\nfor function trace. The output of ftrace now has the task comm instead\nof \u003c...\u003e.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4fcdae83cebda24b519a89d3dd976081fff1ca80",
      "tree": "6ad0c14f709af1fe2352ce591d3c84d76c7646a0",
      "parents": [
        "ab46428c6969d50ecf6f6e97b7a84abba6274368"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:21:00 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:52:01 2008 +0200"
      },
      "message": "ftrace: comment code\n\nThis is first installment of adding documentation to the ftrace.\nExpect many more patches of this kind in the near future.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "72829bc3d63cdc592d8f7dd86ad3b3fe8900fb74",
      "tree": "c4652b60b17d6087a492387e71c00cec4885cb30",
      "parents": [
        "86069782d62e731b4835a0cf8eb7d1d0e17cf306"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:37:28 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:37:28 2008 +0200"
      },
      "message": "ftrace: move enums to ftrace.h and make helper function global\n\npicked from the mmiotracer patches to distangle the patch queues.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "92205c2343527a863d660360599a4bf8cede77b0",
      "tree": "c85cf8495cd2eb52a99062e3505cd81851cd3444",
      "parents": [
        "c5f888cae49dfe3e86d9d1e0dab2b63ceb057be3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:20:55 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:14:11 2008 +0200"
      },
      "message": "ftrace: user raw_spin_lock in tracing\n\nLock debugging enabled cause huge performance problems for tracing. Having\nthe lock verification happening for every function that is called\nbecause mcount calls spin_lock can cripple the system.\n\nThis patch converts the spin_locks used by ftrace into raw_spin_locks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d05cdb25d80f06f77aa6bddb53cd1390d4d91a0b",
      "tree": "6c7f70f5252cbd42a1949c2d7019fe9f337bd205",
      "parents": [
        "06fa75ab566c50e01bfd7b055bde85cf9b1bc98a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:20:54 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:13:23 2008 +0200"
      },
      "message": "ftrace: fix dynamic ftrace selftest\n\nWith the adding of the configuration changes in the Makefile to prevent\ntracing of functions in the ftrace code, all tracing of all the ftrace\ncode has been removed. Unfortunately, one of the selftests, relied on\na function to be traced. With the new change, the function was no longer\ntraced and the test failed.\n\nThis patch separates out the test function into its own file so that\nwe can add the \"-pg\" flag to the compilation of that function and the\nadding of the mcount call to that function.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bac524d3f3dfeffa3a9d44f2c64035b88bcaacb4",
      "tree": "467645f4b40dcd4aa8f37f0f601ffc7b07048273",
      "parents": [
        "88a4216c3ec4281fc7e6725cc3a3ccd01fb1aa14"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 12 21:20:53 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:08:54 2008 +0200"
      },
      "message": "ftrace: trace next state\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4ac3ba41d372e3a9e420b36bc43589662b188a14",
      "tree": "b8dd93a0226a92b5f55e5ff1e51712424a7be729",
      "parents": [
        "1a3c3034336320554a3342572dae98d69e054fc7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:52 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:07:31 2008 +0200"
      },
      "message": "ftrace: trace scheduler rbtree\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4e65551905fb0300ae7e667cbaa41ee2e3f29a13",
      "tree": "0e642c311e31043eecf86c218128c40e1ddac782",
      "parents": [
        "4c1f4d4f0175129934d5dbc19a39296430937a05"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:52 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:04:44 2008 +0200"
      },
      "message": "ftrace: sched tracer, trace full rbtree\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "86387f7ee5d3273ff4859e2c64ce656639b6ca65",
      "tree": "d2080c680e9e9415dfa99bb8408302584035e664",
      "parents": [
        "57422797dc009fc83766bcf230d29dbe6e08e21e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:51 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:04:20 2008 +0200"
      },
      "message": "ftrace: add stack tracing\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "57422797dc009fc83766bcf230d29dbe6e08e21e",
      "tree": "9ba5768539c08d99679f72a9709f5e345fd359c9",
      "parents": [
        "e309b41dd65aa953f86765eeeecc941d8e1e8b8f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:51 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:04:06 2008 +0200"
      },
      "message": "ftrace: add wakeup events to sched tracer\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e309b41dd65aa953f86765eeeecc941d8e1e8b8f",
      "tree": "295d4ed6e2a766607f889a04b977ca27cc24929e",
      "parents": [
        "b53dde9d34f2df396540988ebc65c33400f57b04"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:51 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:58:28 2008 +0200"
      },
      "message": "ftrace: remove notrace\n\nnow that we have a kbuild method for notrace, no need to pollute the\nC code with the annotations.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6fb44b717c10ecf37beaaebd312f3afa93fed714",
      "tree": "a86ec44e761ac9ea2cae992fb6351cbfbea434ac",
      "parents": [
        "2a2cc8f7c4d0dfd75720867f7dc58d24f075edfc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@srostedt@redhat.com",
        "time": "Mon May 12 21:20:49 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:55:55 2008 +0200"
      },
      "message": "ftrace: add trace_function api for other tracers to use\n\nA new check was added in the ftrace function that wont trace if the CPU\ntrace buffer is disabled.  Unfortunately, other tracers used ftrace() to\nwrite to the buffer after they disabled it. The new disable check makes\nthese calls into a nop.\n\nThis patch changes the __ftrace that is called without the check into a\nnew api for the other tracers to use, called \"trace_function\". The other\ntracers use this interface instead when the trace CPU buffer is already\ndisabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f0a920d5752e1788c0cba2add103076bcc0f7a49",
      "tree": "db9c5383c3464808570b1121e44f80b817f7f263",
      "parents": [
        "cb0f12aae8d085140d37ada351aa5a8e76c3f9b0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:47 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:52:33 2008 +0200"
      },
      "message": "ftrace: add trace_special()\n\nfor ad-hoc tracing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cdd31cd2d7a0dcbec2cce3974f7129dd4fc8c879",
      "tree": "5da4691e9f2ed0850a505975216694928a6545c4",
      "parents": [
        "53c37c17aafcf50f7c6fddaf01dda8f9d7e31ddf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:55 2008 +0200"
      },
      "message": "ftrace: remove-idx-sync\n\nremove idx syncing - it\u0027s expensive on SMP.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "750ed1a40783432d0dcb0e6c2e813a12615d7664",
      "tree": "dc2d0eae703ec2ad3fe9a5bc657da5dbe0af2385",
      "parents": [
        "4bf39a9411a4ce8712954e03a9bd1592ee345919"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:31 2008 +0200"
      },
      "message": "ftrace: timestamp syncing, prepare\n\nrename and uninline now() to ftrace_now().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d4c5a2f5870939d837293de87b41dda0012a4572",
      "tree": "46512c24ff245052e60b6d2156cd9992d272ff11",
      "parents": [
        "b3806b4316306dc9c542eff6c23d7d42918f3504"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:12 2008 +0200"
      },
      "message": "ftrace: fix locking\n\nwe can hold all cpu trace buffer locks at once - put each into a\nseparate lock class.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3806b4316306dc9c542eff6c23d7d42918f3504",
      "tree": "804786b94728c42930956f1fd8bbcabbba0c7412",
      "parents": [
        "214023c3d13a71525e463b5e54e360b926b4dc90"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:01 2008 +0200"
      },
      "message": "ftrace: user run time file reading\n\nThis patch creates a file called trace_pipe in the tracing\ndebug directory. This file is a consumer of the trace buffers.\nThis means that reads of this file consumes the entries from\nthe trace buffers so that they will not be read a second time,\nas contrast to the static buffers latency_trace and trace.\n\nReading from the trace_pipe will remove the entries from trace\nand latency_trace too.\n\nThe advantage that trace_pipe has is that it can record live\ntraces. It will block when there is nothing in the buffer,\nand read the entries as they are entered.  An EOF happens when\ntracing is disabled (tracing_enabled \u003d 0).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "214023c3d13a71525e463b5e54e360b926b4dc90",
      "tree": "6fe6f3e513d976b32eb07f60810ccf336daf1f6b",
      "parents": [
        "93a588f459da134be6ab17c4104e28441beb0d22"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:46 2008 +0200"
      },
      "message": "ftrace: add a buffer for output\n\nLater patches will need to print the same things as the seq output\ndoes. But those outputs will not use the seq utility. This patch\nadds a buffer to the iterator, that can be used by either the\nseq utility or other output.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "93a588f459da134be6ab17c4104e28441beb0d22",
      "tree": "30eb991743d7ce5698f070204d666eca98519213",
      "parents": [
        "1d4db00a5e30c7b8f8dc2a1b19e886fd942be143"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:35 2008 +0200"
      },
      "message": "ftrace: change buffers to producer consumer\n\nThis patch changes the way the CPU trace buffers are handled.\nInstead of always starting from the trace page head, the logic\nis changed to a producer consumer logic. This allows for the\nbuffers to be drained while they are alive.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4e3c3333f3bd7eedfd21b1155b3c7cd24fc7f754",
      "tree": "1b53d424c618e646cba8e3a8d6b27b5cec9cb8c2",
      "parents": [
        "77a2b37d227483fe52aead242652aee406c25bf0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:13 2008 +0200"
      },
      "message": "ftrace: fix time offset\n\nfix time offset calculations and ordering, plus make code more consistent.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7aafc549766b87819285d3480648fc652a47bc4",
      "tree": "4c36170a644633f930feca57b27f8c5d23644e70",
      "parents": [
        "60a11774b38fef1ab90b18c5353bd1c7c4d311c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:46 2008 +0200"
      },
      "message": "ftrace: cleanups\n\nfactor out code and clean it up.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "60a11774b38fef1ab90b18c5353bd1c7c4d311c8",
      "tree": "e2a6fd066b0dba6dcd776d07383e2932055cf66a",
      "parents": [
        "e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:36 2008 +0200"
      },
      "message": "ftrace: add self-tests\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4c11d7aed389375253b59e2b1865eec96663c65d",
      "tree": "b43b5e38c33d69d39b5fb87860e5723d1be10416",
      "parents": [
        "5072c59fd45e9976d02ee6f18c7336ef97623cbc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:38:51 2008 +0200"
      },
      "message": "ftrace: convert single large buffer into single pages.\n\nAllocating large buffers for the tracer may fail easily.\nThis patch converts the buffer from a large ordered allocation\nto single pages. It uses the struct page LRU field to link the\npages together.\n\nLater patches may also implement dynamic increasing and decreasing\nof the trace buffers.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bc0c38d139ec7fcd5c030aea16b008f3732e42ac",
      "tree": "adaaf5e2ca49bbd7025bc357f87df9cb47641022",
      "parents": [
        "16444a8a40d4c7b4f6de34af0cae1f76a4f6c901"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:06 2008 +0200"
      },
      "message": "ftrace: latency tracer infrastructure\n\nThis patch adds the latency tracer infrastructure. This patch\ndoes not add anything that will select and turn it on, but will\nbe used by later patches.\n\nIf it were to be compiled, it would add the following files\nto the debugfs:\n\n The root tracing directory:\n\n  /debugfs/tracing/\n\nThis patch also adds the following files:\n\n  available_tracers\n     list of available tracers. Currently no tracers are\n     available. Looking into this file only shows\n     \"none\" which is used to unregister all tracers.\n\n  current_tracer\n     The trace that is currently active. Empty on start up.\n     To switch to a tracer simply echo one of the tracers that\n     are listed in available_tracers:\n\n   example: (used with later patches)\n\n      echo function \u003e /debugfs/tracing/current_tracer\n\n     To disable the tracer:\n\n       echo disable \u003e /debugfs/tracing/current_tracer\n\n  tracing_enabled\n     echoing \"1\" into this file starts the ftrace function tracing\n      (if sysctl kernel.ftrace_enabled\u003d1)\n     echoing \"0\" turns it off.\n\n  latency_trace\n      This file is readonly and holds the result of the trace.\n\n  trace\n      This file outputs a easier to read version of the trace.\n\n  iter_ctrl\n      Controls the way the output of traces look.\n      So far there\u0027s two controls:\n        echoing in \"symonly\" will only show the kallsyms variables\n            without the addresses (if kallsyms was configured)\n        echoing in \"verbose\" will change the output to show\n            a lot more data, but not very easy to understand by\n            humans.\n        echoing in \"nosymonly\" turns off symonly.\n        echoing in \"noverbose\" turns off verbose.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ]
}
