)]}'
{
  "log": [
    {
      "commit": "3ddeb912f41801fd1968c7880d031702a396e4d0",
      "tree": "3a2c34153fc097172820e14bfe9b33bfc563f852",
      "parents": [
        "213cc060797378059a28ebc5c539f3e9a80160bd"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Dec 20 17:15:14 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 21 09:46:45 2008 +0100"
      },
      "message": "ftrace: enable format arguments checking\n\nImpact: broaden gcc printf format checks for ftrace_printk()\n\nformat arguments checking for ftrace_printk() is __printf(1, 2),\nnot __printf(1, 0).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30cd324e9787ccc9a5ede59742d5409857550692",
      "tree": "e53027e0283119de0ef4c3a431b1d20cd43003fb",
      "parents": [
        "c71dd42db2c6f1637b92502a214587431c1a6ad2",
        "6d102bc68f3dd2ae0e305b09170b1751aa67baeb",
        "3d9101e92529e1ff6014f95a69afc82f37b9b13a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/ftrace.h\n"
    },
    {
      "commit": "f38f1d2aa5a3520cf05da7cd6bd12fe2b0c509b7",
      "tree": "5eef795a1a081c41686971eaaa5ba2d1098ceb9d",
      "parents": [
        "40874491f9e9a4cb08eaf663dbe018bf5671975a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 16 23:06:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:56:24 2008 +0100"
      },
      "message": "trace: add a way to enable or disable the stack tracer\n\nImpact: enhancement to stack tracer\n\nThe stack tracer currently is either on when configured in or\noff when it is not. It can not be disabled when it is configured on.\n(besides disabling the function tracer that it uses)\n\nThis patch adds a way to enable or disable the stack tracer at\nrun time. It defaults off on bootup, but a kernel parameter \u0027stacktrace\u0027\nhas been added to enable it on bootup.\n\nA new sysctl has been added \"kernel.stack_tracer_enabled\" to let\nthe user enable or disable the stack tracer at run time.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bcbc4f20b52c2c40c43a4d2337707dcdfe81bc3a",
      "tree": "897774cc2f53691b2736e3d1dbadc9d1e263d47a",
      "parents": [
        "a0343e823184070f55364d8359f832dcb33c57c7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 09 23:54:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:14:08 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: annotate do_IRQ and smp_apic_timer_interrupt\n\nImpact: move most important x86 irq entry-points to a separate subsection\n\nAnnotate do_IRQ and smp_apic_timer_interrupt to put them into the .irqentry.text\nsubsection. These function will so be recognized as hardirq entrypoints for the\nfunction-graph-tracer. We could also annotate other irq entries but the others\nare far less important but they can be added on request.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "380c4b1411ccd6885f92b2c8ceb08433a720f44e",
      "tree": "f3b571e1caff2de3e6b4cace87c2b1ec332667d7",
      "parents": [
        "8e1b82e0866befaa0b2920be296c6e4c3fc7f422"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:43:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:45 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: append the tracing_graph_flag\n\nImpact: Provide a way to pause the function graph tracer\n\nAs suggested by Steven Rostedt, the previous patch that prevented from\nspinlock function tracing shouldn\u0027t use the raw_spinlock to fix it.\nIt\u0027s much better to follow lockdep with normal spinlock, so this patch\nadds a new flag for each task to make the function graph tracer able\nto be paused. We also can send an ftrace_printk whithout worrying of\nthe irrelevant traced spinlock during insertion.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b96f0119818964e4944fd1c423bf6770027d3ac",
      "tree": "02b5ec86d2fe45d6935d63913b997989f9339bf4",
      "parents": [
        "decbec3838d10ecd7aabdb4c0e05aac0e5f5dc0c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:40:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:44 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: introduce __notrace_funcgraph to filter special functions\n\nImpact: trace more functions\n\nWhen the function graph tracer is configured, three more files are not\ntraced to prevent only four functions to be traced. And this impacts the\nnormal function tracer too.\n\narch/x86/kernel/process_64/32.c:\n\nI had crashes when I let this file traced. After some debugging, I saw\nthat the \"current\" task point was changed inside__swtich_to(), ie:\n\"write_pda(pcurrent, next_p);\" inside process_64.c Since the tracer store\nthe original return address of the function inside current, we had\ncrashes. Only __switch_to() has to be excluded from tracing.\n\nkernel/module.c and kernel/extable.c:\n\nBecause of a function used internally by the function graph tracer:\n__kernel_text_address()\n\nTo let the other functions inside these files to be traced, this patch\nintroduces the __notrace_funcgraph function prefix which is __notrace if\nfunction graph tracer is configured and nothing if not.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21a8c466f99063eeb8567318b4e305eda9015408",
      "tree": "bc15ed9d28a4f1a52d390ceca6893d84de50a232",
      "parents": [
        "77d683f3e0258d522c5506e7b5fd05c9411184d9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:51:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:44 2008 +0100"
      },
      "message": "tracing/ftrace: provide the macro task_curr_ret_stack()\n\nImpact: cleanup\n\nAs suggested by Steven Rostedt, this patch provide a new macro\ntask_curr_ret_stack() to move the cpp conditionnal CONFIG into\nthe linux/ftrace.h headers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c",
      "tree": "64a4a1d9d7d3de0695cb2e8c7161886ab660e311",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:34 2008 +0100"
      },
      "message": "ftrace: graph of a single function\n\nThis patch adds the file:\n\n   /debugfs/tracing/set_graph_function\n\nwhich can be used along with the function graph tracer.\n\nWhen this file is empty, the function graph tracer will act as\nusual. When the file has a function in it, the function graph\ntracer will only trace that function.\n\nFor example:\n\n # echo blk_unplug \u003e /debugfs/tracing/set_graph_function\n # cat /debugfs/tracing/trace\n [...]\n ------------------------------------------\n | 2)  make-19003  \u003d\u003e  kjournald-2219\n ------------------------------------------\n\n 2)               |  blk_unplug() {\n 2)               |    dm_unplug_all() {\n 2)               |      dm_get_table() {\n 2)      1.381 us |        _read_lock();\n 2)      0.911 us |        dm_table_get();\n 2)      1. 76 us |        _read_unlock();\n 2) +   12.912 us |      }\n 2)               |      dm_table_unplug_all() {\n 2)               |        blk_unplug() {\n 2)      0.778 us |          generic_unplug_device();\n 2)      2.409 us |        }\n 2)      5.992 us |      }\n 2)      0.813 us |      dm_table_put();\n 2) +   29. 90 us |    }\n 2) +   34.532 us |  }\n\nYou can add up to 32 functions into this file. Currently we limit it\nto 32, but this may change with later improvements.\n\nTo add another function, use the append \u0027\u003e\u003e\u0027:\n\n  # echo sys_read \u003e\u003e /debugfs/tracing/set_graph_function\n  # cat /debugfs/tracing/set_graph_function\n  blk_unplug\n  sys_read\n\nUsing the \u0027\u003e\u0027 will clear out the function and write anew:\n\n  # echo sys_write \u003e /debug/tracing/set_graph_function\n  # cat /debug/tracing/set_graph_function\n  sys_write\n\nNote, if you have function graph running while doing this, the small\ntime between clearing it and updating it will cause the graph to\nrecord all functions. This should not be an issue because after\nit sets the filter, only those functions will be recorded from then on.\nIf you need to only record a particular function then set this\nfile first before starting the function graph tracer. In the future\nthis side effect may be corrected.\n\nThe set_graph_function file is similar to the set_ftrace_filter but\nit does not take wild cards nor does it allow for more than one\nfunction to be set with a single write. There is no technical reason why\nthis is the case, I just do not have the time yet to implement that.\n\nNote, dynamic ftrace must be enabled for this to appear because it\nuses the dynamic ftrace records to match the name to the mcount\ncall sites.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e49dc19c6a19ea112fcb94b7c62ec62cdd5c08aa",
      "tree": "851dcdfe321e16a327d656ecd7040ef6e8590bec",
      "parents": [
        "7ee991fbc6f947e9b04f29c9c6c1d057d0671a16"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:26 2008 +0100"
      },
      "message": "ftrace: function graph return for function entry\n\nImpact: feature, let entry function decide to trace or not\n\nThis patch lets the graph tracer entry function decide if the tracing\nshould be done at the end as well. This requires all function graph\nentry functions return 1 if it should trace, or 0 if the return should\nnot be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14a866c567e040ccf6240d68b083dd1dbbde63e6",
      "tree": "4e8d62ecc345d44e7cd45f973ffb931070637532",
      "parents": [
        "bb4304c71c97bf727ec43cd2f195c2c237c27fd3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:02 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:23 2008 +0100"
      },
      "message": "ftrace: add ftrace_graph_stop()\n\nImpact: new ftrace_graph_stop function\n\nWhile developing more features of function graph, I hit a bug that\ncaused the WARN_ON to trigger in the prepare_ftrace_return function.\nWell, it was hard for me to find out that was happening because the\nbug would not print, it would just cause a hard lockup or reboot.\nThe reason is that it is not safe to call printk from this function.\n\nLooking further, I also found that it calls unregister_ftrace_graph,\nwhich grabs a mutex and calls kstop machine. This would definitely\nlock the box up if it were to trigger.\n\nThis patch adds a fast and safe ftrace_graph_stop() which will\nstop the function tracer. Then it is safe to call the WARN ON.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "5a45cfe1c64862e8cd3b0d79d7c4ba71c3118915",
      "tree": "0a7edf3a9dc88d74b7c7053445ac8aff033a75fa",
      "parents": [
        "df4fc31558dd2a3a30292ddb3a64c2a5befcec73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:54 2008 +0100"
      },
      "message": "ftrace: use code patching for ftrace graph tracer\n\nImpact: more efficient code for ftrace graph tracer\n\nThis patch uses the dynamic patching, when available, to patch\nthe function graph code into the kernel.\n\nThis patch will ease the way for letting both function tracing\nand function graph tracing run together.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "6f893fb2e89287a4d755f928c3cda9d18440355c",
      "tree": "e2b2d9b3974567bc25a5298b14660062d6afb871",
      "parents": [
        "0429149fb5e01edc410648591c19095d2074ee00",
        "1d926f2756392c6909f60e0c9fe2a09d5462e376",
        "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
        "65afa5e603d507014580ead016ec887b49e1afa6",
        "cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349",
        "813b8520f5c240c71df55d14095a7b171de264ce",
        "033601a32b2012b6948e80e739cca40bff4de4a0",
        "958086d1784459be3fe85e4cad79d42b17d33381",
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/power-tracer\u0027, \u0027tracing/powerpc\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/stack-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
      "tree": "cdee5802117c2e78cf18df7fa524c7390d1bdb67",
      "parents": [
        "e58918ab9d4cd375f6d842e6d88cf4d7a55cbfcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:59:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:45:34 2008 +0100"
      },
      "message": "ftrace: add ftrace_off_permanent\n\nImpact: add new API to disable all of ftrace on anomalies\n\nIt case of a serious anomaly being detected (like something caught by\nlockdep) it is a good idea to disable all tracing immediately, without\ngrabing any locks.\n\nThis patch adds ftrace_off_permanent that disables the tracers, function\ntracing and ring buffers without a way to enable them again. This should\nonly be used when something serious has been detected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82f60f0bc854aada696f27d863c03bef91f1509d",
      "tree": "521fbccfc12f6c8a36f261b20eacbc84a4a31add",
      "parents": [
        "f201ae2356c74bcae130b2177b3dca903ea98071"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:18:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:19:35 2008 +0100"
      },
      "message": "tracing/function-return-tracer: clean up task start/exit callbacks\n\nImpact: cleanup\n\nEliminate #ifdefs in core code by using empty inline functions.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f201ae2356c74bcae130b2177b3dca903ea98071",
      "tree": "c4b1b43fbe0a4594cb86749b2e7098fe15eb86ba",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 23 06:22:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:17:26 2008 +0100"
      },
      "message": "tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically\n\nImpact: use deeper function tracing depth safely\n\nSome tests showed that function return tracing needed a more deeper depth\nof function calls. But it could be unsafe to store these return addresses\nto the stack.\n\nSo these arrays will now be allocated dynamically into task_struct of current\nonly when the tracer is activated.\n\nTypical scheme when tracer is activated:\n- allocate a return stack for each task in global list.\n- fork: allocate the return stack for the newly created task\n- exit: free return stack of current\n- idle init: same as fork\n\nI chose a default depth of 50. I don\u0027t have overruns anymore.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "e7d3737ea1b102030f44e96c97754101e41515f0",
      "tree": "44fdc3dea100d1fa639e6ba3cb1bfca2ab40e70b",
      "parents": [
        "b01c746617da5e260803eb10ed64ca043e9a1241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 06:02:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:57:38 2008 +0100"
      },
      "message": "tracing/function-return-tracer: support for dynamic ftrace on function return tracer\n\nThis patch adds the support for dynamic tracing on the function return tracer.\nThe whole difference with normal dynamic function tracing is that we don\u0027t need\nto hook on a particular callback. The only pro that we want is to nop or set\ndynamically the calls to ftrace_caller (which is ftrace_return_caller here).\n\nSome security checks ensure that we are not trying to launch dynamic tracing for\nreturn tracing while normal function tracing is already running.\n\nAn example of trace with getnstimeofday set as a filter:\n\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (2283 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1396 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1825 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1426 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1524 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1434 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1502 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1404 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1397 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1051 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1314 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1344 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1163 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1390 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1374 ns)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31e889098a80ceb3e9e3c555d522b2686a6663c6",
      "tree": "2acb73507de4191d4a9aa5ccf08fa24e7044c89e",
      "parents": [
        "d51ad7ac48f991c4a8834485727efa99a691cb87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:02 2008 +0100"
      },
      "message": "ftrace: pass module struct to arch dynamic ftrace functions\n\nImpact: allow archs more flexibility on dynamic ftrace implementations\n\nDynamic ftrace has largly been developed on x86. Since x86 does not\nhave the same limitations as other architectures, the ftrace interaction\nbetween the generic code and the architecture specific code was not\nflexible enough to handle some of the issues that other architectures\nhave.\n\nMost notably, module trampolines. Due to the limited branch distance\nthat archs make in calling kernel core code from modules, the module\nload code must create a trampoline to jump to what will make the\nlarger jump into core kernel code.\n\nThe problem arises when this happens to a call to mcount. Ftrace checks\nall code before modifying it and makes sure the current code is what\nit expects. Right now, there is not enough information to handle modifying\nmodule trampolines.\n\nThis patch changes the API between generic dynamic ftrace code and\nthe arch dependent code. There is now two functions for modifying code:\n\n  ftrace_make_nop(mod, rec, addr) - convert the code at rec-\u003eip into\n       a nop, where the original text is calling addr. (mod is the\n       module struct if called by module init)\n\n  ftrace_make_caller(rec, addr) - convert the code rec-\u003eip that should\n       be a nop into a caller to addr.\n\nThe record \"rec\" now has a new field called \"arch\" where the architecture\ncan add any special attributes to each call site record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "caf4b323b02a16c92fba449952ac6515ddc76d7a",
      "tree": "6fc234d00faca192248344996a168afb253e5f40",
      "parents": [
        "d844222a54c33a960755b44b934cd1b01b05dceb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 07:03:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 10:29:11 2008 +0100"
      },
      "message": "tracing, x86: add low level support for ftrace return tracing\n\nImpact: add infrastructure for function-return tracing\n\nAdd low level support for ftrace return tracing.\n\nThis plug-in stores return addresses on the thread_info structure of\nthe current task.\n\nThe index of the current return address is initialized when the task\nis the first one (init) and when a process forks (the child). It is\nnot needed when a task does a sys_execve because after this syscall,\nit still needs to return on the kernel functions it called.\n\nNote that the code of return_to_handler has been suggested by Steven\nRostedt as almost all of the ideas of improvements in this V3.\n\nFor purpose of security, arch/x86/kernel/process_32.c is not traced\nbecause __switch_to() changes the current task during its execution.\nThat could cause inconsistency in the stored return address of this\nfunction even if I didn\u0027t have any crash after testing with tracing on\nthis function enabled.\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": "a6b0786f7f83bcc4d414a2977aaebe2941ebe1de",
      "tree": "fd7cbdda3de7eaf05eaa01eb3609121cc05828d8",
      "parents": [
        "3e03fb7f1da2e691644526c0d6df42d778716349",
        "6a60dd121c5b6c2d827e99b38c1326f2600c3891",
        "072ba49838b42c873c496d72c91bb237914cf3b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:34:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:34:35 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/nmisafe\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "6a60dd121c5b6c2d827e99b38c1326f2600c3891",
      "tree": "d1be280b4a0dba24ca3ec800d6d1ef74c4df85be",
      "parents": [
        "7e5e26a3d8ac4bcadb380073dc9604c07a9a6198"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 06 15:55:21 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 22:20:46 2008 +0100"
      },
      "message": "ftrace: split out hardirq ftrace code into own header\n\nImpact: moving of function prototypes into own header file\n\nftrace.h is too big of a file for hardirq.h, and some archs will fail\nto build because of the include dependencies not being met.\n\nThis patch pulls out the required prototypes for hardirq.h into a smaller\nand safer ftrace_irq.h file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f04870148ecb825133bc2733f473b1c5773ac0b",
      "tree": "81399b7b9535d11ac6120366fc01fd051118226a",
      "parents": [
        "60a7ecf42661f2b22168751298592da6ee210c9e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 05 16:05:44 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:50:57 2008 +0100"
      },
      "message": "ftrace: soft tracing stop and start\n\nImpact: add way to quickly start stop tracing from the kernel\n\nThis patch adds a soft stop and start to the trace. This simply\ndisables function tracing via the ftrace_disabled flag, and\ndisables the trace buffers to prevent recording. The tracing\ncode may still be executed, but the trace will not be recorded.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60a7ecf42661f2b22168751298592da6ee210c9e",
      "tree": "050fd052c546c92f8aac10ee71d5bb6d98a21fc8",
      "parents": [
        "79c81d220c8e25163f56edcdfaf23f83a4c88e6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 05 16:05:44 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:50:51 2008 +0100"
      },
      "message": "ftrace: add quick function trace stop\n\nImpact: quick start and stop of function tracer\n\nThis patch adds a way to disable the function tracer quickly without\nthe need to run kstop_machine. It adds a new variable called\nfunction_trace_stop which will stop the calls to functions from mcount\nwhen set.  This is just an on/off switch and does not handle recursion\nlike preempt_disable().\n\nIt\u0027s main purpose is to help other tracers/debuggers start and stop tracing\nfuctions without the need to call kstop_machine.\n\nThe config option HAVE_FUNCTION_TRACE_MCOUNT_TEST is added for archs\nthat implement the testing of the function_trace_stop in the mcount\narch dependent code. Otherwise, the test is done in the C code.\n\nx86 is the only arch at the moment that supports this.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71566a0d161edec70361b7f90f6e54af6a6d5d05",
      "tree": "78d2d790ed4e20c179d2f61f2ed50ecbb6d5a451",
      "parents": [
        "7a895f53cda9d9362c30144e42c124a1ae996b9e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 31 12:57:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 04 17:14:02 2008 +0100"
      },
      "message": "tracing/fastboot: Enable boot tracing only during initcalls\n\nImpact: modify boot tracer\n\nWe used to disable the initcall tracing at a specified time (IE: end\nof builtin initcalls). But we don\u0027t need it anymore. It will be\nstopped when initcalls are finished.\n\nHowever we want two things:\n\n_Start this tracing only after pre-smp initcalls are finished.\n\n_Since we are planning to trace sched_switches at the same time, we\nwant to enable them only during the initcall execution.\n\nFor this purpose, this patch introduce two functions to enable/disable\nthe sched_switch tracing during boot.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e5e26a3d8ac4bcadb380073dc9604c07a9a6198",
      "tree": "68f6e0ab79358b198ba9cf404d647d2188146292",
      "parents": [
        "7a895f53cda9d9362c30144e42c124a1ae996b9e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 31 09:36:38 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 11:03:43 2008 +0100"
      },
      "message": "ftrace: fix hardirq header for non ftrace archs\n\nImpact: build fix for non-ftrace architectures\n\nNot all archs implement ftrace, and therefore do not have an asm/ftrace.h.\nThis patch corrects the problem.\n\nThe ftrace_nmi_enter/exit now must be defined for all archs that implement\ndynamic ftrace. Currently, only x86 does.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a895f53cda9d9362c30144e42c124a1ae996b9e",
      "tree": "e2a793cfc289015ec54d2cba5140d0171f734629",
      "parents": [
        "d9e540762f5cdd89f24e518ad1fd31142d0b9726",
        "5d9881ea1440f046ee851bbaa2a2962543336a11",
        "fd3fdf11d3c649769e02459c5f1b8081a15e9007",
        "a26a2a27396c0a0877aa701f8f92d08ba550a6c9",
        "127cafbb276266b1b8da967bfe25a062ab1d42ab",
        "c2c80529460095035752bf0ecc1af82c1e0f6e0f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 10:34:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 10:34:23 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/markers\u0027, \u0027tracing/mmiotrace\u0027, \u0027tracing/nmisafe\u0027, \u0027tracing/tracepoints\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "a26a2a27396c0a0877aa701f8f92d08ba550a6c9",
      "tree": "8e314b970e0219419b89204d3197fbc1257bf36e",
      "parents": [
        "b807c3d0f8e39ed7cbbbe6da162650e305e8de15"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 31 00:03:22 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 31 10:29:17 2008 +0100"
      },
      "message": "ftrace: nmi safe code clean ups\n\nImpact: cleanup\n\nThis patch cleans up the NMI safe code for dynamic ftrace as suggested\nby Andrew Morton.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1e302d8a9ab06ba8d7d5ec503d8996e6cf0eca4",
      "tree": "6a6c805fdfd6a2f6433956cbee348b2c3a277784",
      "parents": [
        "944ac4259e39801c843a915c3da8194ac9af0440",
        "7f82f000ed030d1108b4de47d9e2d556092980c6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 31 00:38:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 31 00:38:21 2008 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "944ac4259e39801c843a915c3da8194ac9af0440",
      "tree": "0b028e4dfa510e41e09a6497eab4ff9f16642245",
      "parents": [
        "f4a2a0d9a4226846693b5b4462d4350c1bfd58ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 19:26:08 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 15:03:15 2008 +0100"
      },
      "message": "ftrace: ftrace dump on oops control\n\nImpact: add (default-off) dump-trace-on-oops flag\n\nCurrently, ftrace is set up to dump its contents to the console if the\nkernel panics or oops. This can be annoying if you have trace data in\nthe buffers and you experience an oops, but the trace data is old or\nstatic.\n\nUsually when you want ftrace to dump its contents is when you are debugging\nyour system and you have set up ftrace to trace the events leading to\nan oops.\n\nThis patch adds a control variable called \"ftrace_dump_on_oops\" that will\nenable the ftrace dump to console on oops. This variable is default off\nbut a developer can enable it either through the kernel command line\nby adding \"ftrace_dump_on_oops\" or at run time by setting (or disabling)\n/proc/sys/kernel/ftrace_dump_on_oops.\n\nv2:\n\n   Replaced /** with /* as Randy explained that kernel-doc does\n    not yet handle variables.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08f5ac906d2c0faf96d608c54a0b03177376da8d",
      "tree": "ee43d94b168b9c3b757db83aea78b45eb3a556c1",
      "parents": [
        "4d296c24326783bff1282ac72f310d8bac8df413"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:07 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:24 2008 +0200"
      },
      "message": "ftrace: remove ftrace hash\n\nThe ftrace hash was used by the ftrace_daemon code. The record ip function\nwould place the calling address (ip) into the hash. The daemon would later\nread the hash and modify that code.\n\nThe hash complicates the code. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4d296c24326783bff1282ac72f310d8bac8df413",
      "tree": "75751fdafc0fa5818a926478e78dd9e54f1cf872",
      "parents": [
        "cb7be3b2fc2cf089ee52b16f0fd9ebb29e9944e1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:06 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:23 2008 +0200"
      },
      "message": "ftrace: remove mcount set\n\nThe arch dependent function ftrace_mcount_set was only used by the daemon\nstart up code. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "81adbdc029ecc416d56563e7f159100181dd711d",
      "tree": "ff7ed7b0fb284c22eb30e690a85e2e9e083c4162",
      "parents": [
        "ab9a0918cbf0fa8883301838df8dbc8fc085ff50"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:33:02 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:19 2008 +0200"
      },
      "message": "ftrace: only have ftrace_kill atomic\n\nWhen an anomaly is detected, we need a way to completely disable\nftrace. Right now we have two functions: ftrace_kill and ftrace_kill_atomic.\nThe ftrace_kill tries to do it in a \"nice\" way by converting everything\nback to a nop.\n\nThe \"nice\" way is dangerous itself, so this patch removes it and only\nhas the \"atomic\" version, which is all that is needed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "593eb8a2d63e95772a5f22d746f18a997c5ee463",
      "tree": "2a99c61ccffc2c0fd280bb2e5f81ac2f22e2f471",
      "parents": [
        "34698bcbdf7b0629d6c873b5da7c63073fb45361"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 23 09:32:59 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 16:00:13 2008 +0200"
      },
      "message": "ftrace: return error on failed modified text.\n\nHave the ftrace_modify_code return error values:\n\n  -EFAULT on error of reading the address\n\n  -EINVAL if what is read does not match what it expected\n\n  -EPERM  if the write fails to update after a successful match.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "ca538f6bbe583406f941f3041d40c41f9a13d1de",
      "tree": "460e3cf96472e327b48befbb4836c2d40e46f937",
      "parents": [
        "ad0a3b68114e8f3c25ac0045b45a2838f23e3b3a"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Thu Oct 09 15:23:05 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:27 2008 +0200"
      },
      "message": "tracing/fastboot: add better resolution to initcall debug/tracing\n\nChange the time resolution for initcall_debug to microseconds, from\nmilliseconds.  This is handy to determine which initcalls you want to work\non for faster booting.\n\nOne one of my test machines, over 90% of the initcalls are less than a\nmillisecond and (without this patch) these are all reported as 0 msecs.\nWorking on the 900 us ones is more important than the 4 us ones.\n\nWith \u0027quiet\u0027 on the kernel command line, this adds no significant overhead\nto kernel boot time.\n\nSigned-off-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "097d036a2f25eecc42435c57e010aaf4a2eed2d9",
      "tree": "ee5e40b940475e8a047e02093688072ff3e330d3",
      "parents": [
        "6450c1d3213e27b0dcbf34cce7ad1ae74244c520"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 03 15:39:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:17 2008 +0200"
      },
      "message": "tracing/fastboot: only trace non-module initcalls\n\nAt this time, only built-in initcalls interest us.\nWe can\u0027t really produce a relevant graph if we include\nthe modules initcall too.\n\nI had good results after this patch (see svg in attachment).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb7fa935274bb233686fdf7a53f40c5d9ee76ed6",
      "tree": "06f5429865f1c720a483579f8f872b5ac16d4053",
      "parents": [
        "3e1932ad59726d794a865cc159c0593d54bf0cb6"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Thu Oct 02 12:00:07 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:14 2008 +0200"
      },
      "message": "ftrace: ktime.h not included in ftrace.h\n\nIncluding \u003clinux/ktime.h\u003e eliminates the following error:\n\ninclude/linux/ftrace.h:220: error: expected specifier-qualifier-list\nbefore \u0027ktime_t\u0027\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e1932ad59726d794a865cc159c0593d54bf0cb6",
      "tree": "2352a3fe4af33bb7f15ae2c809b8f40d865530ab",
      "parents": [
        "5601020feb0c3010e9e3e0131e9697ac6a06777b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 17:45:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:13 2008 +0200"
      },
      "message": "tracing/fastboot: build fix\n\nfix:\n\n In file included from kernel/sysctl.c:52:\n include/linux/ftrace.h:217: error: \u0027KSYM_NAME_LEN\u0027 undeclared here (not in a function)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5601020feb0c3010e9e3e0131e9697ac6a06777b",
      "tree": "99d1a70dbf3bba2b5ae1007c4828c28e6480214a",
      "parents": [
        "cb5ab74204a6e2579d1119bf1348eb806526b12b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 13:26:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:12 2008 +0200"
      },
      "message": "tracing/fastboot: get the initcall name before it disappears\n\nAfter some initcall traces, some initcall names may be inconsistent.\nThat\u0027s because these functions will disappear from the .init section\nand also their name from the symbols table.\n\nSo we have to copy the name of the function in a buffer large enough\nduring the trace appending. It is not costly for the ring_buffer because\nthe number of initcall entries is commonly not really large.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb5ab74204a6e2579d1119bf1348eb806526b12b",
      "tree": "4810258d42e0370ec15cf424d5e3c6487fbd1781",
      "parents": [
        "77ae11f63befb7fc41ec256f1fcb72ca7e4160d5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 12:59:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:11 2008 +0200"
      },
      "message": "tracing/fastboot: change the printing of boot tracer according to bootgraph.pl\n\nChange the boot tracer printing to make it parsable for\nthe scripts/bootgraph.pl script.\n\nWe have now to output two lines for each initcall, according to the\nprintk in do_one_initcall() in init/main.c\nWe need now the call\u0027s time and the return\u0027s time.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.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": "c0719e5a4b1ccc04180b7a7b71095c9fb7131919",
      "tree": "a22ebc58b34f94caf63491ad35f034d0564f4cfd",
      "parents": [
        "d3ee6d992821f471193a7ee7a00af9ebb4bf5d01"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 06 01:06:03 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:55 2008 +0200"
      },
      "message": "ftrace: use ftrace_release for all dynamic ftrace functions\n\nftrace_release is necessary for all uses of dynamic ftrace and not just\nthe archs that have CONFIG_FTRACE_MCOUNT_RECORD defined.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3700273586ee6a58b95dd07d9f8a02db4a9b476f",
      "tree": "f291a04bd0ab0d866c00c3f2d241a870b873ec25",
      "parents": [
        "99ecdc43bc17faf5fa571db8569df171ecd0e5b8"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Aug 18 16:24:56 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:50 2008 +0200"
      },
      "message": "ftrace: fix incorrect comment style of __ftrace_enabled_save()\n\nThis patch fixes incorrect comment style of __ftrace_enabled_save().\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5131ad6c3cbe8f6674993e29a76cecf8deb4384",
      "tree": "ce9f9cd79cd987295d0cbcbb3cf99ada9b29fc1a",
      "parents": [
        "7b928c23fa3e9fa37d1d4ba52ba963f41ee5aae0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 18:22:09 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:33 2008 +0200"
      },
      "message": "ftrace: ftrace_kill_atomic() build fix\n\nfix:\n\n kernel/built-in.o: In function `ftrace_dump\u0027:\n (.text+0x2e2ea): undefined reference to `ftrace_kill_atomic\u0027\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7b928c23fa3e9fa37d1d4ba52ba963f41ee5aae0",
      "tree": "a8873d531424a53b7c5f3a7cd4e280c50ca2e2a8",
      "parents": [
        "3f5a54e371ca20b119b73704f6c01b71295c1714"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 17:48:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:29 2008 +0200"
      },
      "message": "ftrace: build fix\n\nfix:\n\n In file included from init/main.c:65:\n include/linux/ftrace.h:166: error: expected ‘,\u0027 or ‘;\u0027 before ‘{\u0027 token\n make[1]: *** [init/main.o] Error 1\n make: *** [init/main.o] Error 2\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f5a54e371ca20b119b73704f6c01b71295c1714",
      "tree": "1453315564a19e967f11e612e264d4d2989afbe5",
      "parents": [
        "2f2c99dba2398ef7d9c21f7c793180a50e68b1f0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 30 22:36:46 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:26 2008 +0200"
      },
      "message": "ftrace: dump out ftrace buffers to console on panic\n\nAt OLS I had a lot of interest to be able to have the ftrace buffers\ndumped on panic.  Usually one would expect to uses kexec and examine\nthe buffers after a new kernel is loaded. But sometimes the resources\ndo not permit kdump and kexec, so having an option to still see the\nsequence of events up to the crash is very advantageous.\n\nThis patch adds the option to have the ftrace buffers dumped to the\nconsole in the latency_trace format on a panic. When the option is set,\nthe default entries per CPU buffer are lowered to 16384, since the writing\nto the serial (if that is the console) may take an awful long time\notherwise.\n\n[\n Changes since -v1:\n  Got alpine to send correctly (as well as spell check working).\n  Removed config option.\n  Moved the static variables into ftrace_dump itself.\n  Gave printk a log level.\n]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f2c99dba2398ef7d9c21f7c793180a50e68b1f0",
      "tree": "4948b0cd7b9828aa19f6862b10173cbc9f59ea68",
      "parents": [
        "dd0e545f061f90099a3dcc13aa77e29c6295cf23"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 16:45:49 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:22 2008 +0200"
      },
      "message": "ftrace: ftrace_printk doc moved\n\nBased on Randy Dunlap\u0027s suggestion, the ftrace_printk kernel-doc belongs\nwith the ftrace_printk macro that should be used. Not with the\n__ftrace_printk internal function.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\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": "fed1939c64d2288938fdc1c367d49082da65e195",
      "tree": "a4592352d28efcfe82379c71d061b9127e49a115",
      "parents": [
        "28614889bcb2558a47d02d52394b7fd9795a9547"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 22:47:19 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:12 2008 +0200"
      },
      "message": "ftrace: remove old pointers to mcount\n\nWhen a mcount pointer is recorded into a table, it is used to add or\nremove calls to mcount (replacing them with nops). If the code is removed\nvia removing a module, the pointers still exist.  At modifying the code\na check is always made to make sure the code being replaced is the code\nexpected. In-other-words, the code being replaced is compared to what\nit is expected to be before being replaced.\n\nThere is a very small chance that the code being replaced just happens\nto look like code that calls mcount (very small since the call to mcount\nis relative). To remove this chance, this patch adds ftrace_release to\nallow module unloading to remove the pointers to mcount within the module.\n\nAnother change for init calls is made to not trace calls marked with\n__init. The tracing can not be started until after init is done anyway.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90d595fe5ca4b685465c068907e6e554760abea8",
      "tree": "03f98454af8c6756177aa053ae7440373007f67d",
      "parents": [
        "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:47 2008 +0200"
      },
      "message": "ftrace: enable mcount recording for modules\n\nThis patch enables the loading of the __mcount_section of modules and\nchanging all the callers of mcount into nops.\n\nThe modification is done before the init_module function is called, so\nagain, we do not need to use kstop_machine to make these changes.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1",
      "tree": "54d4d4f7e8311b77f3166a8807a635347d479081",
      "parents": [
        "8da3821ba5634497da63d58a69e24a97697c4a2b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:08 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:44 2008 +0200"
      },
      "message": "ftrace: mcount call site on boot nops core\n\nThis is the infrastructure to the converting the mcount call sites\nrecorded by the __mcount_loc section into nops on boot. It also allows\nfor using these sites to enable tracing as normal. When the __mcount_loc\nsection is used, the \"ftraced\" kernel thread is disabled.\n\nThis uses the current infrastructure to record the mcount call sites\nas well as convert them to nops. The mcount function is kept as a stub\non boot up and not converted to the ftrace_record_ip function. We use the\nftrace_record_ip to only record from the table.\n\nThis patch does not handle modules. That comes with a later patch.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9bdeb7b5d34f197dea7859d24475943395ffea5e",
      "tree": "f2db04f16f95ac713bb35d9c0dc8626a294d6d60",
      "parents": [
        "73bd9c72a29be1e8de008186eea55d333a938804"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Aug 15 00:40:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:42 2008 -0700"
      },
      "message": "kexec jump: __ftrace_enabled_save/restore\n\nAdd __ftrace_enabled_save/restore, used to disable ftrace for a while.\nNow, this is used by kexec jump, which need a version without lock, for\ngeneral situation, a locked version should be used.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2bb6a3d85ef3124cd336403a95abc0540d3fbe2",
      "tree": "3048f355cc3ca814222ba34943c9a8f735e7a5e6",
      "parents": [
        "26bc83f4cb911a0b4dabfe23b700aaf3235f2955"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:21 2008 +0200"
      },
      "message": "ftrace: add ftrace_kill_atomic\n\nIt has been suggested that I add a way to disable the function tracer\non an oops. This code adds a ftrace_kill_atomic. It is not meant to be\nused in normal situations. It will disable the ftrace tracer, but will\nnot perform the nice shutdown that requires scheduling.\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": "ecea656d1d5e912d2f3d332657ea4a6d8380f891",
      "tree": "fd139cdd762230bf4e55a1341ba29e2b309968b1",
      "parents": [
        "785656a41f9a9c0e843a23d1ae05d900b5158f8f"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sat Jun 21 23:47:53 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:10:58 2008 +0200"
      },
      "message": "ftrace: freeze kprobe\u0027d records\n\nLet records identified as being kprobe\u0027d be marked as \"frozen\". The trouble\nwith records which have a kprobe installed on their mcount call-site is\nthat they don\u0027t get updated. So if such a function which is currently being\ntraced gets its tracing disabled due to a new filter rule (or because it\nwas added to the notrace list) then it won\u0027t be updated and continue being\ntraced. This patch allows scanning of all frozen records during tracing to\ncheck if they should be traced.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "395a59d0f8e86bb39cd700c3d185d30c670bb958",
      "tree": "1558e635efcede901c5dbe9acd625d475db5b369",
      "parents": [
        "f34bfb1beef8a17ba3d46b60f8fa19ffedc1ed8d"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sat Jun 21 23:47:27 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:10:56 2008 +0200"
      },
      "message": "ftrace: store mcount address in rec-\u003eip\n\nRecord the address of the mcount call-site. Currently all archs except sparc64\nrecord the address of the instruction following the mcount call-site. Some\ngeneral cleanups are entailed. Storing mcount addresses in rec-\u003eip enables\nlooking them up in the kprobe hash table later on to check if they\u0027re kprobe\u0027d.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: davem@davemloft.net\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0eb967012ea15e6e8cfab483d9fa37bc602d400c",
      "tree": "0e9c026a2d83f313cdc3f9f235d58ff522cee090",
      "parents": [
        "e0773410247f1e5fc6f7c52a4c5f3c6c9873d527"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sun Jun 01 21:47:30 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 11:56:57 2008 +0200"
      },
      "message": "ftrace: prevent freeing of all failed updates\n\nPrevent freeing of records which cause problems and correspond to function from\ncore kernel text. A new flag, FTRACE_FL_CONVERTED is used to mark a record\nas \"converted\". All other records are patched lazily to NOPs. Failed records\nnow also remain on frace_hash table. Each invocation of ftrace_record_ip now\nchecks whether the traced function has ever been recorded (including past\nfailures) and doesn\u0027t re-record it again.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad90c0e3ce8d20d6873b57e36181ef6d7a0097fe",
      "tree": "34af559928f9f2403c72156b672578d28f790a4f",
      "parents": [
        "76094a2cf46e4ab776055d4086615b884408568c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 27 20:48:37 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 02 12:50:04 2008 +0200"
      },
      "message": "ftrace: user update and disable dynamic ftrace daemon\n\nIn dynamic ftrace, the mcount function starts off pointing to a stub\nfunction that just returns.\n\nOn start up, the call to the stub is modified to point to a \"record_ip\"\nfunction. The job of the record_ip function is to add the function to\na pre-allocated hash list. If the function is already there, it simply is\nignored, otherwise it is added to the list.\n\nLater, a ftraced daemon wakes up and calls kstop_machine if any functions\nhave been recorded, and changes the calls to the recorded functions to\na simple nop.  If no functions were recorded, the daemon goes back to sleep.\n\nThe daemon wakes up once a second to see if it needs to update any newly\nrecorded functions into nops.  Usually it does not, but if a lot of code\nhas been executed for the first time in the kernel, the ftraced daemon\nwill call kstop_machine to update those into nops.\n\nThe problem currently is that there\u0027s no way to stop the daemon from doing\nthis, and it can cause unneeded latencies (800us which for some is bothersome).\n\nThis patch adds a new file /debugfs/tracing/ftraced_enabled. If the daemon\nis active, reading this will return \"enabled\\n\" and \"disabled\\n\" when the\ndaemon is not running. To disable the daemon, the user can echo \"0\" or\n\"disable\" into this file, and \"1\" or \"enable\" to re-enable the daemon.\n\nSince the daemon is used to convert the functions into nops to increase\nthe performance of the system, I also added that anytime something is\nwritten into the ftraced_enabled file, kstop_machine will run if there\nare new functions that have been detected that need to be converted.\n\nThis way the user can disable the daemon but still be able to control the\nconversion of the mcount calls to nops by simply,\n\n  \"echo 0 \u003e /debugfs/tracing/ftraced_enabled\"\n\nwhen they need to do more conversions.\n\nTo see the number of converted functions:\n\n  \"cat /debugfs/tracing/dyn_ftrace_total_info\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1829d2705daa7cb72eb1e08bdc8b7e9fad34266",
      "tree": "2be273d7b2902ee3b789c63337437c65479f4660",
      "parents": [
        "492a7ea5bcf263ee02a9eb6a3ab0222a1946fade"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 28 01:22:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 28 01:25:04 2008 +0200"
      },
      "message": "ftrace: fix merge\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41c52c0db9607e59f90da7da5309489fa06e887f",
      "tree": "b0b1f282c087c53dfd4081da5a8a35cdc5ea5ebb",
      "parents": [
        "da89a7a2536c46e76a1a4351a70a8b8417e5fed1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 22 11:46:33 2008 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 26 22:51:37 2008 +0200"
      },
      "message": "ftrace: set_ftrace_notrace feature\n\nWhile debugging latencies in the RT kernel, I found that it would be nice\nto be able to filter away functions from the trace than just to filter\non functions.\n\nI added a new interface to the debugfs tracing directory called\n\n  set_ftrace_notrace\n\nWhen dynamic frace is enabled, this lets you filter away functions that will\nnot be recorded in the trace. It is similar to adding \u0027notrace\u0027 to those\nfunctions but by doing it without recompiling the kernel.\n\nHere\u0027s how set_ftrace_filter and set_ftrace_notrace interact. Remember, if\nset_ftrace_filter is set, it removes all functions from the trace execpt for\nthose listed in the set_ftrace_filter. set_ftrace_notrace will prevent those\nfunctions from being traced.\n\nIf you were to set one function in both set_ftrace_filter and\nset_ftrace_notrace and that function was the same, then you would end up\nwith an empty trace.\n\nthe set of functions to trace is:\n\n  set_ftrace_filter \u003d\u003d empty then\n\n     all functions not in set_ftrace_notrace\n\n  else\n\n     set of the set_ftrace_filter and not in set of set_ftrace_notrace.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "489f139614596cbc956a06f5e4bb41288e276fe3",
      "tree": "6c705f5859ff90adc871c4d002b1437ff5407733",
      "parents": [
        "d49dbf33f0bf8748ee3662b973eb57e60525d622"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 13:38:05 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:37:04 2008 +0200"
      },
      "message": "ftrace: fix build bug\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d49dbf33f0bf8748ee3662b973eb57e60525d622",
      "tree": "aac62379ef416cf50755841b7d7dbaefd1ec560b",
      "parents": [
        "2d8b820b2e81954754277723379ae9ed5de316fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 16 10:41:53 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:36:51 2008 +0200"
      },
      "message": "ftrace: fix include file dependency\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": "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": "aeaee8a2c9cb4489f166ca0e39c568e8254faaa6",
      "tree": "1b817104f60dc06c1bdd3f5e4e0bed5ee86e780e",
      "parents": [
        "2577046740fe6d77864128c6187c11125c2449ea"
      ],
      "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 20:55:33 2008 +0200"
      },
      "message": "ftrace: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4eebcc81a33fbc45e28542b50197ed7b3c486d90",
      "tree": "13bbad50aa8d4dc36d630ef08886876f4dc0b6eb",
      "parents": [
        "37ad508419f0fdfda7b378756eb1f35cfd26d96d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:48 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:54:16 2008 +0200"
      },
      "message": "ftrace: disable tracing on failure\n\nSince ftrace touches practically every function. If we detect any\nanomaly, we want to fully disable ftrace. This patch adds code\nto try shutdown ftrace as much as possible without doing any more\nharm is something is detected not quite correct.\n\nThis only kills ftrace, this patch does have checks for other parts of\nthe tracer (irqsoff, wakeup, etc.).\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": "37ad508419f0fdfda7b378756eb1f35cfd26d96d",
      "tree": "53db6e201e605c1926adc74fa965b1a615066da8",
      "parents": [
        "088b1e427dbba2af93cb6a7d39258c10ff58dd27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:48 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:54:04 2008 +0200"
      },
      "message": "ftrace - fix dynamic ftrace memory leak\n\nThe ftrace dynamic function update allocates a record to store the\ninstruction pointers that are being modified. If the modified\ninstruction pointer fails to update, then the record is marked as\nfailed and nothing more is done.\n\nWorse, if the modification fails, but the record ip function is still\ncalled, it will allocate a new record and try again. In just a matter\nof time, will this cause a serious memory leak and crash the system.\n\nThis patch plugs this memory leak. When a record fails, it is\nincluded back into the pool of records to be used. Now a record may\nfail over and over again, but the number of allocated records will\nnot increase.\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": "77a2b37d227483fe52aead242652aee406c25bf0",
      "tree": "cecb6a3a02a567530e2ce3502de18f371c9db7c1",
      "parents": [
        "7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7"
      ],
      "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:06 2008 +0200"
      },
      "message": "ftrace: startup tester on dynamic tracing.\n\nThis patch adds a startup self test on dynamic code modification\nand filters. The test filters on a specific function, makes sure that\nno other function is traced, exectutes the function, then makes sure that\nthe function is traced.\n\nThis patch also fixes a slight bug with the ftrace selftest, where\ntracer_enabled was not being set.\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": "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": "e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8",
      "tree": "eb2c642f9b7b5e222f1635e138c6072b0799f37b",
      "parents": [
        "57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81"
      ],
      "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:29 2008 +0200"
      },
      "message": "ftrace: force recording\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f43fdad8627fec2d21df92799b254dceb66c9c3c",
      "tree": "09a9c54beaea06b814b3f4e6724375de282d944b",
      "parents": [
        "4c11d7aed389375253b59e2b1865eec96663c65d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:39:05 2008 +0200"
      },
      "message": "ftrace: fix kexec\n\ndisable the tracer while kexec pulls the rug from under the old\nkernel.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5072c59fd45e9976d02ee6f18c7336ef97623cbc",
      "tree": "d7c9d48ed518246b958ee7759f285bc22445feb8",
      "parents": [
        "d61f82d06672f57fca410da6f7fffd15867db622"
      ],
      "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:41 2008 +0200"
      },
      "message": "ftrace: add filter select functions to trace\n\nThis patch adds two files to the debugfs system:\n\n /debugfs/tracing/available_filter_functions\n\nand\n\n /debugfs/tracing/set_ftrace_filter\n\nThe available_filter_functions lists all functions that has been\nrecorded by the ftraced that has called the ftrace_record_ip function.\nThis is to allow users to see what functions have been converted\nto nops and can be enabled for tracing.\n\nTo enable functions, simply echo the names (whitespace delimited)\ninto set_ftrace_filter. Simple wildcards are also allowed.\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the scheduler be activated when tracing is enabled.\n\necho \u0027sched_*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the functions starting with \u0027sched_\u0027 be activated.\n\necho \u0027*lock\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions ending with \u0027lock\u0027 be activated.\n\necho \u0027*lock*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions with \u0027lock\u0027 in its name be activated.\n\nNote: \u0027sched*lock\u0027 will not work. The only wildcards that are\nallowed is an asterisk and the beginning and or end of the string\npassed in.\n\nMultiple names can be passed in with whitespace delimited:\n\necho \u0027scheduler *lock *acpi*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nis also the same as:\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*lock\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*acpi*\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\n\nAppending does just that. It appends to the list.\n\nTo disable all filters simply echo an empty line in:\n\necho \u003e /debugfs/tracing/set_ftrace_filter\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": "d61f82d06672f57fca410da6f7fffd15867db622",
      "tree": "62ef5573934eaa638c0d39a45d789691aecbd7d3",
      "parents": [
        "3c1720f00bb619302ba19d55986ab565e74d06db"
      ],
      "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:33:47 2008 +0200"
      },
      "message": "ftrace: use dynamic patching for updating mcount calls\n\nThis patch replaces the indirect call to the mcount function\npointer with a direct call that will be patched by the\ndynamic ftrace routines.\n\nOn boot up, the mcount function calls the ftace_stub function.\nWhen the dynamic ftrace code is initialized, the ftrace_stub\nis replaced with a call to the ftrace_record_ip, which records\nthe instruction pointers of the locations that call it.\n\nLater, the ftraced daemon will call kstop_machine and patch all\nthe locations to nops.\n\nWhen a ftrace is enabled, the original calls to mcount will now\nbe set top call ftrace_caller, which will do a direct call\nto the registered ftrace function. This direct call is also patched\nwhen the function that should be called is updated.\n\nAll patching is performed by a kstop_machine routine to prevent any\ntype of race conditions that is associated with modifying code\non the fly.\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": "3c1720f00bb619302ba19d55986ab565e74d06db",
      "tree": "d58aaa54bc8e7a465597f385de36204c3b0b9cf8",
      "parents": [
        "dfa60aba04dae7833d75b2e2be124bb7cfb8239f"
      ],
      "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:33:35 2008 +0200"
      },
      "message": "ftrace: move memory management out of arch code\n\nThis patch moves the memory management of the ftrace\nrecords out of the arch code and into the generic code\nmaking the arch code simpler.\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": "b0fc494fae96a7089f3651cb451f461c7291244c",
      "tree": "586412b9ecbd8e3f04e8cd90a31644f94ff3a7d8",
      "parents": [
        "3d0833953e1b98b79ddf491dd49229eef9baeac1"
      ],
      "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:33:19 2008 +0200"
      },
      "message": "ftrace: add ftrace_enabled sysctl to disable mcount function\n\nThis patch adds back the sysctl ftrace_enabled. This time it is\ndefaulted to on, if DYNAMIC_FTRACE is configured. When ftrace_enabled\nis disabled, the ftrace function is set to the stub return.\n\nIf DYNAMIC_FTRACE is also configured, on ftrace_enabled \u003d 0,\nthe registered ftrace functions will all be set to jmps, but no more\nnew calls to ftrace recording (used to find the ftrace calling sites)\nwill be called.\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": "3d0833953e1b98b79ddf491dd49229eef9baeac1",
      "tree": "3520cda824bdb58e47ce3e9f43d68249d5cc1a12",
      "parents": [
        "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3"
      ],
      "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:33:09 2008 +0200"
      },
      "message": "ftrace: dynamic enabling/disabling of function calls\n\nThis patch adds a feature to dynamically replace the ftrace code\nwith the jmps to allow a kernel with ftrace configured to run\nas fast as it can without it configured.\n\nThe way this works, is on bootup (if ftrace is enabled), a ftrace\nfunction is registered to record the instruction pointer of all\nplaces that call the function.\n\nLater, if there\u0027s still any code to patch, a kthread is awoken\n(rate limited to at most once a second) that performs a stop_machine,\nand replaces all the code that was called with a jmp over the call\nto ftrace. It only replaces what was found the previous time. Typically\nthe system reaches equilibrium quickly after bootup and there\u0027s no code\npatching needed at all.\n\ne.g.\n\n  call ftrace  /* 5 bytes */\n\nis replaced with\n\n  jmp 3f  /* jmp is 2 bytes and we jump 3 forward */\n3:\n\nWhen we want to enable ftrace for function tracing, the IP recording\nis removed, and stop_machine is called again to replace all the locations\nof that were recorded back to the call of ftrace.  When it is disabled,\nwe replace the code back to the jmp.\n\nAllocation is done by the kthread. If the ftrace recording function is\ncalled, and we don\u0027t have any record slots available, then we simply\nskip that call. Once a second a new page (if needed) is allocated for\nrecording new ftrace function calls.  A large batch is allocated at\nboot up to get most of the calls there.\n\nBecause we do this via stop_machine, we don\u0027t have to worry about another\nCPU executing a ftrace call as we modify it. But we do need to worry\nabout NMI\u0027s so all functions that might be called via nmi must be\nannotated with notrace_nmi. When this code is configured in, the NMI code\nwill not call notrace.\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": "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3",
      "tree": "845af8f3c7f8956b4f3591759a0d67248af243a2",
      "parents": [
        "81d68a96a39844853b37f20cc8282d9b65b78ef3"
      ],
      "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:54 2008 +0200"
      },
      "message": "ftrace: trace preempt off critical timings\n\nAdd preempt off timings. A lot of kernel core code is taken from the RT patch\nlatency trace that was written by Ingo Molnar.\n\nThis adds \"preemptoff\" and \"preemptirqsoff\" to /debugfs/tracing/available_tracers\n\nNow instead of just tracing irqs off, preemption off can be selected\nto be recorded.\n\nWhen this is selected, it shares the same files as irqs off timings.\nOne can either trace preemption off, irqs off, or one or the other off.\n\nBy echoing \"preemptoff\" into /debugfs/tracing/current_tracer, recording\nof preempt off only is performed. \"irqsoff\" will only record the time\nirqs are disabled, but \"preemptirqsoff\" will take the total time irqs\nor preemption are disabled. Runtime switching of these options is now\nsupported by simpling echoing in the appropriate trace name into\n/debugfs/tracing/current_tracer.\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": "81d68a96a39844853b37f20cc8282d9b65b78ef3",
      "tree": "bbc05f415930c15fb5a1004620bd77585fcec43a",
      "parents": [
        "352ad25aa4a189c667cb2af333948d34692a2d27"
      ],
      "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:46 2008 +0200"
      },
      "message": "ftrace: trace irq disabled critical timings\n\nThis patch adds latency tracing for critical timings\n(how long interrupts are disabled for).\n\n \"irqsoff\" is added to /debugfs/tracing/available_tracers\n\nNote:\n  tracing_max_latency\n    also holds the max latency for irqsoff (in usecs).\n   (default to large number so one must start latency tracing)\n\n  tracing_thresh\n    threshold (in usecs) to always print out if irqs off\n    is detected to be longer than stated here.\n    If irq_thresh is non-zero, then max_irq_latency\n    is ignored.\n\nHere\u0027s an example of a trace with ftrace_enabled \u003d 0\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1d.s3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1d.s3  100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1d.s3  100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnd this is a trace with ftrace_enabled \u003d\u003d 1\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\n--------------------------------------------------------------------\n latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1dNs3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000])\n swapper-0     1dNs3   46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000])\n swapper-0     1dNs3   47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000])\n swapper-0     1dNs3   47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47)\n swapper-0     1dNs3   97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50)\n swapper-0     1dNs3   98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000])\n swapper-0     1dNs3   99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000])\n swapper-0     1dNs3  101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\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": "352ad25aa4a189c667cb2af333948d34692a2d27",
      "tree": "83a11c626b3818711d3b88061964c9ea603f7b68",
      "parents": [
        "35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1"
      ],
      "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:36 2008 +0200"
      },
      "message": "ftrace: tracer for scheduler wakeup latency\n\nThis patch adds the tracer that tracks the wakeup latency of the\nhighest priority waking task.\n\n  \"wakeup\" is added to /debugfs/tracing/available_tracers\n\nAlso added to /debugfs/tracing\n\n  tracing_max_latency\n     holds the current max latency for the wakeup\n\n  wakeup_thresh\n     if set to other than zero, a log will be recorded\n     for every wakeup that takes longer than the number\n     entered in here (usecs for all counters)\n     (deletes previous trace)\n\nExamples:\n\n  (with ftrace_enabled \u003d 0)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 26 us, #2/2, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/0-3 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n   quilt-8551  0d..3    0us+: wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n   quilt-8551  0d..4   26us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n  (with ftrace_enabled \u003d 1)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\n--------------------------------------------------------------------\n latency: 36 us, #45/45, CPU#0 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/1-5 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n    bash-10653 1d..3    0us : wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n    bash-10653 1d..3    1us : try_to_wake_up+0x271/0x2e7 \u003cffffffff80233dcf\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..2    2us : try_to_wake_up+0x296/0x2e7 \u003cffffffff80233df4\u003e (update_rq_clock+0x9/0x20 \u003cffffffff802303f3\u003e)\n    bash-10653 1d..2    2us : update_rq_clock+0x1e/0x20 \u003cffffffff80230408\u003e (__update_rq_clock+0xc/0x90 \u003cffffffff80230366\u003e)\n    bash-10653 1d..2    3us : __update_rq_clock+0x1b/0x90 \u003cffffffff80230375\u003e (sched_clock+0x9/0x29 \u003cffffffff80214529\u003e)\n    bash-10653 1d..2    4us : try_to_wake_up+0x2a6/0x2e7 \u003cffffffff80233e04\u003e (activate_task+0xc/0x3f \u003cffffffff8022ffca\u003e)\n    bash-10653 1d..2    4us : activate_task+0x2d/0x3f \u003cffffffff8022ffeb\u003e (enqueue_task+0xe/0x66 \u003cffffffff8022ff66\u003e)\n    bash-10653 1d..2    5us : enqueue_task+0x5b/0x66 \u003cffffffff8022ffb3\u003e (enqueue_task_rt+0x9/0x3c \u003cffffffff80233351\u003e)\n    bash-10653 1d..2    6us : try_to_wake_up+0x2ba/0x2e7 \u003cffffffff80233e18\u003e (check_preempt_wakeup+0x12/0x99 \u003cffffffff80234f84\u003e)\n[...]\n    bash-10653 1d..5   33us : tracing_record_cmdline+0xcf/0xd4 \u003cffffffff80338aad\u003e (_spin_unlock+0x9/0x33 \u003cffffffff8048d3ec\u003e)\n    bash-10653 1d..5   34us : _spin_unlock+0x19/0x33 \u003cffffffff8048d3fc\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..4   35us : wakeup_sched_switch+0x65/0x2ff \u003cffffffff80339f66\u003e (_spin_lock_irqsave+0xc/0xa9 \u003cffffffff8048d08b\u003e)\n    bash-10653 1d..4   35us : _spin_lock_irqsave+0x19/0xa9 \u003cffffffff8048d098\u003e (add_preempt_count+0xe/0x77 \u003cffffffff8023311a\u003e)\n    bash-10653 1d..4   36us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe [...] was added here to not waste your email box space.\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": "16444a8a40d4c7b4f6de34af0cae1f76a4f6c901",
      "tree": "9c290bcdbdc1ecf8f578c30b3b36914e14fdaacc",
      "parents": [
        "6e766410c4babd37bc7cd5e25009c179781742c8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:31:58 2008 +0200"
      },
      "message": "ftrace: add basic support for gcc profiler instrumentation\n\nIf CONFIG_FTRACE is selected and /proc/sys/kernel/ftrace_enabled is\nset to a non-zero value the ftrace routine will be called everytime\nwe enter a kernel function that is not marked with the \"notrace\"\nattribute.\n\nThe ftrace routine will then call a registered function if a function\nhappens to be registered.\n\n[ This code has been highly hacked by Steven Rostedt and Ingo Molnar,\n  so don\u0027t blame Arnaldo for all of this ;-) ]\n\nUpdate:\n  It is now possible to register more than one ftrace function.\n  If only one ftrace function is registered, that will be the\n  function that ftrace calls directly. If more than one function\n  is registered, then ftrace will call a function that will loop\n  through the functions to call.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\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"
    }
  ]
}
