)]}'
{
  "log": [
    {
      "commit": "89034bc2c7b839702c00a704e79d112737f98be0",
      "tree": "e65b1f3d4c751baa840efc81bc4734f089379eb3",
      "parents": [
        "fb82ad719831db58e9baa4c67015aae3fe27e7e3",
        "85dfd81dc57e8183a277ddd7a56aa65c96f3f487"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/trace_events_filter.c\n\nWe use the tracing/core version.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f413cdb80ce00ec1a4d0ab949b5d96c81cae7f75",
      "tree": "08a9621cb1318f73a37faeed14c4e728408551ad",
      "parents": [
        "3a6593050fbd8bbcaed3a44d01c31d907315c86c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 07 01:25:54 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:53:48 2009 +0200"
      },
      "message": "perf_counter: Fix/complete ftrace event records sampling\n\nThis patch implements the kernel side support for ftrace event\nrecord sampling.\n\nA new counter sampling attribute is added:\n\n   PERF_SAMPLE_TP_RECORD\n\nwhich requests ftrace events record sampling. In this case\nif a PERF_TYPE_TRACEPOINT counter is active and a tracepoint\nfires, we emit the tracepoint binary record to the\nperfcounter event buffer, as a sample.\n\nResult, after setting PERF_SAMPLE_TP_RECORD attribute from perf\nrecord:\n\n perf record -f -F 1 -a -e workqueue:workqueue_execution\n perf report -D\n\n 0x21e18 [0x48]: event: 9\n .\n . ... raw event: size 72 bytes\n .  0000:  09 00 00 00 01 00 48 00 d0 c7 00 81 ff ff ff ff  ......H........\n .  0010:  0a 00 00 00 0a 00 00 00 21 00 00 00 00 00 00 00  ........!......\n .  0020:  2b 00 01 02 0a 00 00 00 0a 00 00 00 65 76 65 6e  +...........eve\n .  0030:  74 73 2f 31 00 00 00 00 00 00 00 00 0a 00 00 00  ts/1...........\n .  0040:  e0 b1 31 81 ff ff ff ff                          .......\n.\n0x21e18 [0x48]: PERF_EVENT_SAMPLE (IP, 1): 10: 0xffffffff8100c7d0 period: 33\n\nThe raw ftrace binary record starts at offset 0020.\n\nTranslation:\n\n struct trace_entry {\n\ttype\t\t\u003d 0x2b \u003d 43;\n\tflags\t\t\u003d 1;\n\tpreempt_count\t\u003d 2;\n\tpid\t\t\u003d 0xa \u003d 10;\n\ttgid\t\t\u003d 0xa \u003d 10;\n }\n\n thread_comm \u003d \"events/1\"\n thread_pid  \u003d 0xa \u003d 10;\n func\t    \u003d 0xffffffff8131b1e0 \u003d flush_to_ldisc()\n\nWhat will come next?\n\n - Userspace support (\u0027perf trace\u0027), \u0027flight data recorder\u0027 mode\n   for perf trace, etc.\n\n - The unconditional copy from the profiling callback brings\n   some costs however if someone wants no such sampling to\n   occur, and needs to be fixed in the future. For that we need\n   to have an instant access to the perf counter attribute.\n   This is a matter of a flag to add in the struct ftrace_event.\n\n - Take care of the events recursivity! Don\u0027t ever try to record\n   a lock event for example, it seems some locking is used in\n   the profiling fast path and lead to a tracing recursivity.\n   That will be fixed using raw spinlock or recursivity\n   protection.\n\n - [...]\n\n - Profit! :-)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3560336be655c6791316482fe288b119f34c427",
      "tree": "43ca9a6b489aaa3918b773f78a7eda37458ef0a8",
      "parents": [
        "26528e773ecc74fb1b61b7275f86f761cbb340ec",
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:46:45 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:46:49 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/urgent\n\nMerge reason: Merge up to almost-rc6 to pick up latest perfcounters\n              (on which we\u0027ll queue up a dependent fix)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb82ad719831db58e9baa4c67015aae3fe27e7e3",
      "tree": "61009acdbd934e75c8328d1af6314e10ade6ffaf",
      "parents": [
        "a2ca5e03b6a5a1d401062f0a7f78888cf9e5e3b0"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sat Aug 08 10:49:36 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 08 17:58:07 2009 +0200"
      },
      "message": "tracing/filters: Don\u0027t use pred on alloc failure\n\nDan Carpenter sent me a fix to prevent pred from being used if\nit couldn\u0027t be allocated.  This updates his patch for the same\nproblem in the tracing tree (which has changed this code quite\nsubstantially).\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1249746576.6453.30.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nThe original report:\n\ncreate_logical_pred() could sometimes return NULL.\n\nIt\u0027s a static checker complaining rather than problems at runtime...\n"
    },
    {
      "commit": "26528e773ecc74fb1b61b7275f86f761cbb340ec",
      "tree": "e3892e1c58783cc022517dab31b1e18179cb930b",
      "parents": [
        "96b2de313b1e0e02aea80ee47df6a2b5cbdf8e13"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sat Aug 08 10:49:53 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 08 17:56:13 2009 +0200"
      },
      "message": "tracing/filters: Always free pred on filter_add_subsystem_pred() failure\n\nIf filter_add_subsystem_pred() fails due to ENOSPC or ENOMEM,\nthe pred doesn\u0027t get freed, while as a side effect it does for\nother errors. Make it so the caller always frees the pred for\nany error.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1249746593.6453.32.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "96b2de313b1e0e02aea80ee47df6a2b5cbdf8e13",
      "tree": "f6d1a22d6ab587d346f642fe89db9d75401da57b",
      "parents": [
        "bd3f02212d6a457267e0c9c02c426151c436d9d4"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sat Aug 08 10:49:09 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 08 17:55:34 2009 +0200"
      },
      "message": "tracing/filters: Don\u0027t use pred on alloc failure\n\nDan Carpenter sent me a fix to prevent pred from being used if\nit couldn\u0027t be allocated.  I noticed the same problem also\nexisted for the create_pred() case and added a fix for that.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1249746549.6453.29.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd3f02212d6a457267e0c9c02c426151c436d9d4",
      "tree": "eb96e54b958c0d8202e2a3c65ada5399c387f9c0",
      "parents": [
        "7dbdee2e9a2ac42ea5135801bcc9d1a8e3f672aa"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Aug 07 12:49:29 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 07 12:46:39 2009 -0400"
      },
      "message": "ring-buffer: Fix memleak in ring_buffer_free()\n\nI noticed oprofile memleaked in linux-2.6 current tree,\nand tracked this ring-buffer leak.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nLKML-Reference: \u003c4A7C06B9.2090302@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "469535a598f28c13a2a42037e1b778f671af1d16",
      "tree": "907a3434e87bdab3f37f3c965a230af7af9bdb30",
      "parents": [
        "3f6e968ef4e1d8d93d8a8505461b0e50a9e97ad8"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Thu Jul 30 19:19:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 06 14:20:25 2009 +0200"
      },
      "message": "ring-buffer: Fix advance of reader in rb_buffer_peek()\n\nWhen calling rb_buffer_peek() from ring_buffer_consume() and a\npadding event is returned, the function rb_advance_reader() is\ncalled twice. This may lead to missing samples or under high\nworkloads to the warning below. This patch fixes this. If a padding\nevent is returned by rb_buffer_peek() it will be consumed by the\ncalling function now.\n\nAlso, I simplified some code in ring_buffer_consume().\n\n------------[ cut here ]------------\nWARNING: at /dev/shm/.source/linux/kernel/trace/ring_buffer.c:2289 rb_advance_reader+0x2e/0xc5()\nHardware name: Anaheim\nModules linked in:\nPid: 29, comm: events/2 Tainted: G        W  2.6.31-rc3-oprofile-x86_64-standard-00059-g5050dc2 #1\nCall Trace:\n[\u003cffffffff8106776f\u003e] ? rb_advance_reader+0x2e/0xc5\n[\u003cffffffff81039ffe\u003e] warn_slowpath_common+0x77/0x8f\n[\u003cffffffff8103a025\u003e] warn_slowpath_null+0xf/0x11\n[\u003cffffffff8106776f\u003e] rb_advance_reader+0x2e/0xc5\n[\u003cffffffff81068bda\u003e] ring_buffer_consume+0xa0/0xd2\n[\u003cffffffff81326933\u003e] op_cpu_buffer_read_entry+0x21/0x9e\n[\u003cffffffff810be3af\u003e] ? __find_get_block+0x4b/0x165\n[\u003cffffffff8132749b\u003e] sync_buffer+0xa5/0x401\n[\u003cffffffff810be3af\u003e] ? __find_get_block+0x4b/0x165\n[\u003cffffffff81326c1b\u003e] ? wq_sync_buffer+0x0/0x78\n[\u003cffffffff81326c76\u003e] wq_sync_buffer+0x5b/0x78\n[\u003cffffffff8104aa30\u003e] worker_thread+0x113/0x1ac\n[\u003cffffffff8104dd95\u003e] ? autoremove_wake_function+0x0/0x38\n[\u003cffffffff8104a91d\u003e] ? worker_thread+0x0/0x1ac\n[\u003cffffffff8104dc9a\u003e] kthread+0x88/0x92\n[\u003cffffffff8100bdba\u003e] child_rip+0xa/0x20\n[\u003cffffffff8104dc12\u003e] ? kthread+0x0/0x92\n[\u003cffffffff8100bdb0\u003e] ? child_rip+0x0/0x20\n---[ end trace f561c0a58fcc89bd ]---\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2ca5e03b6a5a1d401062f0a7f78888cf9e5e3b0",
      "tree": "b3c35ebab71bf1d944acfed671d2a02cf5304017",
      "parents": [
        "1a0799a8fef5acc6503f9c5e79b2cd003317826c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:32:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:32:21 2009 +0200"
      },
      "message": "tracing/events: Only define remove_subsystem_dir() if CONFIG_MODULES\n\nIf we disable modules, we get the following warning in ftrace events\nfile:\n\nkernel/trace/trace_events.c:912: attention : ‘remove_subsystem_dir’ defined but not used\n\nremove_subystem_dir() is useless if !CONFIG_MODULES, then move it to\nthe appropriate #ifdef section of trace_events.c\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1a0799a8fef5acc6503f9c5e79b2cd003317826c",
      "tree": "8aec6e623981cd8505de53752234d9f6b5d94843",
      "parents": [
        "82e04af498a85ba425efe77580b7ba08234411df"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 18:59:58 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:06 2009 +0200"
      },
      "message": "tracing/function-graph-tracer: Move graph event insertion helpers in the graph tracer file\n\nThe function graph events helpers which insert the function entry and\nreturn events into the ring buffer currently reside in trace.c\nBut this file is quite overloaded and the right place for these helpers\nis in the function graph tracer file.\n\nThen move them to trace_functions_graph.c\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "82e04af498a85ba425efe77580b7ba08234411df",
      "tree": "3683fb5e68cd96b518eb72d76b608205613feb24",
      "parents": [
        "c0a0d0d3f65284c71115a9bb1ed801ee33eeb552"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 18:00:29 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:06 2009 +0200"
      },
      "message": "tracing: Move sched event insertion helpers in the sched switch tracer file\n\nThe sched events helpers which insert the sched switch and wakeup\nevents into the ring buffer currently reside in trace.c\nBut this file is quite overloaded and the right place for these helpers\nis in the sched switch tracer file.\n\nThen move them to trace_functions.c\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c0a0d0d3f65284c71115a9bb1ed801ee33eeb552",
      "tree": "ac4c74e18c73f368abc8721f8f04c9101069fcaf",
      "parents": [
        "5e5bf483986ad86ad25f25eec5299c86eb2d1c57"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 17:51:13 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:05 2009 +0200"
      },
      "message": "tracing/core: Make the stack entry helpers global\n\nMake the stacktrace event insertion helpers globals.\nThis has two effects:\n\n- Prepare for moving the sched events insertion helpers to\n  the sched switch tracer file.\n- Move some ifdef outside function definitions\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e5bf483986ad86ad25f25eec5299c86eb2d1c57",
      "tree": "51ca52240afe82bab1366b1677d9f8a55bbee6fb",
      "parents": [
        "07868b086cca784f4b532fc2ab574ec3a73b468a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 17:11:12 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:05 2009 +0200"
      },
      "message": "tracing/core: Turn ftrace_cpu_disabled into a global var\n\nIn order to prepare the moving of the function graph tracer insertion\nhelpers from trace.c to trace_functions_graph.c, we need to export the\nftrace_cpu_disabled variable.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0c9e6f639aed490202bbc79214f4495cf4bfde58",
      "tree": "0df6f05086a033ec49995fe1cd3fde5474446cdb",
      "parents": [
        "1f9963cbb0280e0cd554161e00f1a0eeddbf1ae1"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Jul 28 20:26:06 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:04 2009 +0200"
      },
      "message": "tracing: Simplify print_graph_cpu()\n\nprint_graph_cpu() is little over-designed.\n\nAnd \"log10_all\" may be wrong when there are holes in cpu_online_mask:\nthe max online cpu id \u003e cpumask_weight(cpu_online_mask)\n\nSo change it by using a static column length for the cpu matching\nnr_cpu_ids number of decimal characters.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A6EEE5E.2000001@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "af6af30c0fcd77e621638e53ef8b176bca8bd3b4",
      "tree": "fde3faf7cc117e208dd033eee707dbd9de5f912e",
      "parents": [
        "386c0b702b1ea81c0f54f5c9832a3d4a52270f14"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Aug 05 20:41:04 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 06 06:26:09 2009 +0200"
      },
      "message": "ftrace: Fix perf-tracepoint OOPS\n\nNot all tracepoints are created equal, in specific the ftrace\ntracepoints are created with TRACE_EVENT_FORMAT() which does\nnot generate the needed bits to tie them into perf counters.\n\nFor those events, don\u0027t create the \u0027id\u0027 file and fail\n-\u003eprofile_enable when their ID is specified through other\nmeans.\n\nReported-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1249497664.5890.4.camel@laptop\u003e\n[ v2: fix build error in the !CONFIG_EVENT_PROFILE case ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "464e85eb0e63096bd52e4c3e2a6fb8357fb95828",
      "tree": "838010839e0b7b3e3a403d381f2b56dd065da3d0",
      "parents": [
        "0f2541d299d233eddddee4345795e0c46264fd56"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Aug 05 15:26:37 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 05 20:20:00 2009 -0400"
      },
      "message": "ring-buffer: do not disable ring buffer on oops_in_progress\n\nThe commit:\n\n  commit e0fdace10e75dac67d906213b780ff1b1a4cc360\n  Author: David Miller \u003cdavem@davemloft.net\u003e\n  Date:   Fri Aug 1 01:11:22 2008 -0700\n\n    debug_locks: set oops_in_progress if we will log messages.\n\n    Otherwise lock debugging messages on runqueue locks can deadlock the\n    system due to the wakeups performed by printk().\n\n    Signed-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n    Signed-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nWill permanently set oops_in_progress on any lockdep failure.\nWhen this triggers it will cause any read from the ring buffer to\npermanently disable the ring buffer (not to mention no locking of\nprintk).\n\nThis patch removes the check. It keeps the print in NMI which makes\nsense. This is probably OK, since the ring buffer should not cause\nsomething to set oops_in_progress anyway.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0f2541d299d233eddddee4345795e0c46264fd56",
      "tree": "19a1628703792d1e0ae8abe18c240d60a6e1705d",
      "parents": [
        "e16852cfc5580b88cb327413ab8c89375f380592"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Aug 05 12:02:48 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 05 20:19:59 2009 -0400"
      },
      "message": "ring-buffer: fix check of try_to_discard result\n\nThe function ring_buffer_discard_commit inversed the code path\nof the result of try_to_discard. It should skip incrementing the\nentry counter if try_to_discard succeeded. But instead, it increments\nthe entry conder if it succeeded to discard, and does not increment\nit if it fails.\n\nThe result of this bug is that filtering will make the stat counters\nincorrect.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e16852cfc5580b88cb327413ab8c89375f380592",
      "tree": "67e7d5b84e2602986f2da689625e5a25d7af7bb4",
      "parents": [
        "bdff78707f3ce47e891f3201c9666122a70556ce",
        "74e7ff8c50b6b022e6ffaa736b16a4dc161d3eaf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 04 13:58:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 04 13:58:28 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into tracing/urgent\n"
    },
    {
      "commit": "74e7ff8c50b6b022e6ffaa736b16a4dc161d3eaf",
      "tree": "5bbe7b9f239f1e7b0a688b521f5dca8b9ea99ef4",
      "parents": [
        "38ceb592fcac9110c6b3c87ea0a27bff68c43486"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Jul 28 20:17:22 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 28 23:17:23 2009 +0200"
      },
      "message": "tracing: Fix missing function_graph events when we splice_read from trace_pipe\n\nAbout a half events are missing when we splice_read\nfrom trace_pipe. They are unexpectedly consumed because we ignore\nthe TRACE_TYPE_NO_CONSUME return value used by the function graph\ntracer when it needs to consume the events by itself to walk on\nthe ring buffer.\n\nThe same problem appears with ftrace_dump()\n\nExample of an output before this patch:\n\n1)               |      ktime_get_real() {\n1)   2.846 us    |          read_hpet();\n1)   4.558 us    |        }\n1)   6.195 us    |      }\n\nAfter this patch:\n\n0)               |      ktime_get_real() {\n0)               |        getnstimeofday() {\n0)   1.960 us    |          read_hpet();\n0)   3.597 us    |        }\n0)   5.196 us    |      }\n\nThe fix also applies on 2.6.30\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4A6EEC52.90704@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "38ceb592fcac9110c6b3c87ea0a27bff68c43486",
      "tree": "6051e8914161679905245a77077ab8f61dbbf64b",
      "parents": [
        "4733fd328f14280900435d9dbae1487d110a4d56"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Jul 28 20:11:24 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 28 23:17:23 2009 +0200"
      },
      "message": "tracing: Fix invalid function_graph entry\n\nWhen print_graph_entry() computes a function call entry event, it needs\nto also check the next entry to guess if it matches the return event of\nthe current function entry.\nIn order to look at this next event, it needs to consume the current\nentry before going ahead in the ring buffer.\n\nHowever, if the current event that gets consumed is the last one in the\nring buffer head page, the ring_buffer may reuse the page for writers.\nThe consumed entry will then become invalid because of possible\nracy overwriting.\n\nMe must then handle this entry by making a copy of it.\n\nThe fix also applies on 2.6.30\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4A6EEAEC.3050508@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "8650ae32ef7045e763825dee6256dde7f331bb85",
      "tree": "546a07e4c5b6fc731b48604769392a671c1fb18e",
      "parents": [
        "4c739ff043e5787d97c9691d62cabf7a29e75a9d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 22 23:29:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 10:07:18 2009 -0400"
      },
      "message": "tracing: only truncate ftrace files when O_TRUNC is set\n\nThe current code will truncate the ftrace files contents if O_APPEND\nis not set and the file is opened in write mode. This is incorrect.\nIt should only truncate the file if O_TRUNC is set. Otherwise\nif one of these files is opened by a C program with fopen \"r+\",\nit will incorrectly truncate the file.\n\nReported-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4c739ff043e5787d97c9691d62cabf7a29e75a9d",
      "tree": "d2604b88d526a4ac4b216d5d46d2834ac8171782",
      "parents": [
        "636eacee3b0c76915151db37203cc624becb6d7b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 22 23:11:03 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 10:07:17 2009 -0400"
      },
      "message": "tracing: show proper address for trace-printk format\n\nSince the trace_printk may use pointers to the format fields\nin the buffer, they are exported via debugfs/tracing/printk_formats.\nThis is used by utilities that read the ring buffer in binary format.\nIt helps the utilities map the address of the format in the binary\nbuffer to what the printf format looks like.\n\nUnfortunately, the way the output code works, it exports the address\nof the pointer to the format address, and not the format address\nitself. This makes the file totally useless in trying to figure\nout what format string a binary address belongs to.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "636eacee3b0c76915151db37203cc624becb6d7b",
      "tree": "99251e7d38d22b3f5b3808d797757840a597349b",
      "parents": [
        "87827111a5538633b18e5c641ced673c4c2bb6ce"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 23 11:29:47 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 09:53:55 2009 -0400"
      },
      "message": "tracing/stat: Fix seqfile memory leak\n\nEvery time we cat a trace_stat file, we leak memory allocated by\nseq_open().\n\nAlso fix memory leak in a failure path in tracing_stat_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A67D92B.4060704@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "87827111a5538633b18e5c641ced673c4c2bb6ce",
      "tree": "46249db51a7f94e31948f48b07efbbbc5de3e7c3",
      "parents": [
        "d8cc1ab793993c886c62abf77c93287df33ffd8b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 23 11:29:11 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 09:53:23 2009 -0400"
      },
      "message": "function-graph: Fix seqfile memory leak\n\nEvery time we cat set_graph_function, we leak memory allocated\nby seq_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A67D907.2010500@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d8cc1ab793993c886c62abf77c93287df33ffd8b",
      "tree": "1e941a2832791b69ab9870c9ad9e9e844af50e1c",
      "parents": [
        "e5d490b252423605a77c54b2e35b10ea663763df"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 23 11:28:40 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 09:52:09 2009 -0400"
      },
      "message": "trace_stack: Fix seqfile memory leak\n\nEvery time we cat stack_trace, we leak memory allocated by seq_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A67D8E8.3020500@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1f9963cbb0280e0cd554161e00f1a0eeddbf1ae1",
      "tree": "80e27aa2cf5401fc04f7dbb806ad7e0ec04b6e8c",
      "parents": [
        "ff4e9da2330beb8d64498a513d3f9694e941b01a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jul 20 10:20:53 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 13:29:19 2009 -0400"
      },
      "message": "tracing/filters: improve subsystem filter\n\nCurrently a subsystem filter should be applicable to all events\nunder the subsystem, and if it failed, all the event filters\nwill be cleared. Those behaviors make subsys filter much less\nuseful:\n\n  # echo \u0027vec \u003d\u003d 1\u0027 \u003e irq/softirq_entry/filter\n  # echo \u0027irq \u003d\u003d 5\u0027 \u003e irq/filter\n  bash: echo: write error: Invalid argument\n  # cat irq/softirq_entry/filter\n  none\n\nI\u0027d expect it set the filter for irq_handler_entry/exit, and\nnot touch softirq_entry/exit.\n\nThe basic idea is, try to see if the filter can be applied\nto which events, and then just apply to the those events:\n\n  # echo \u0027vec \u003d\u003d 1\u0027 \u003e softirq_entry/filter\n  # echo \u0027irq \u003d\u003d 5\u0027 \u003e filter\n  # cat irq_handler_entry/filter\n  irq \u003d\u003d 5\n  # cat softirq_entry/filter\n  vec \u003d\u003d 1\n\nChangelog for v2:\n- do some cleanups to address Frederic\u0027s comments.\n\nInspired-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A63D485.7030703@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff4e9da2330beb8d64498a513d3f9694e941b01a",
      "tree": "c45a1d50d1f9a015af9497afe8f17b6025200efd",
      "parents": [
        "7d536cb3fb9993bdcd5a2fbaa6b0670ded4e101c"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Mon Jun 22 10:33:07 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 12:02:09 2009 -0400"
      },
      "message": "tracing: cleanup for tracing_trace_options_read()\n\n\u0027\\n\u0027 is already appended, and what we need is just an extra\nspace for the \u0027\\0\u0027.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A3EED63.3090908@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7d536cb3fb9993bdcd5a2fbaa6b0670ded4e101c",
      "tree": "63c4a6ec6de75d9a2db7d677c768a5f2953fa237",
      "parents": [
        "68fd60a8c8bca6af51805c45f286f0f2572ac977"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 16 10:54:02 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 11:38:44 2009 -0400"
      },
      "message": "tracing/events: record the size of dynamic arrays\n\nWhen a dynamic array is defined, we add __data_loc_foo in\ntrace_entry to record the offset of the array, but the\nsize of the array is not recorded, which causes 2 problems:\n\n- the event filter just compares the first 2 chars of the strings.\n\n- parsers can\u0027t parse dynamic arrays.\n\nSo we encode the size of each dynamic array in the higher 16 bits\nof __data_loc_foo, while the offset is in lower 16 bits.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A5E964A.9000403@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "566b0aaf798a0dddfc455d1a5b05c424c6686c65",
      "tree": "ce8e8bfb62986ba4e5ba1b1d7d729c83aeb74387",
      "parents": [
        "45bceffc3013bda7d2ebc7802e9b153b674e2d44"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Thu Jul 16 21:44:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:21:16 2009 +0200"
      },
      "message": "tracing: Remove unused fields/variables\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1247773468-11594-2-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45bceffc3013bda7d2ebc7802e9b153b674e2d44",
      "tree": "222d7dd8fd300925cbf12cdc0fba5bee2528997e",
      "parents": [
        "6f2f3cf00ee32f75ba007a46bab88a54d68a5deb",
        "78af08d90b8f745044b1274430bc4bc6b2b27aca"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:19:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:20:01 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on an older, pre-rc1 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f2f3cf00ee32f75ba007a46bab88a54d68a5deb",
      "tree": "89aaab40d502c84e135b7e9e72b20bb7d498bc8c",
      "parents": [
        "79173bf556417a737e9d2e096e0788452ec30a61"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 16 14:21:08 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 17 01:45:51 2009 -0400"
      },
      "message": "tracing/function: Cleanup for function tracer\n\nWe can directly use %pf input format instead of kallsyms_lookup()\nand %s input format\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "79173bf556417a737e9d2e096e0788452ec30a61",
      "tree": "c27a263ce2efae15ad7b045f60cd28a0b2390862",
      "parents": [
        "64fbcd162819bddaf0d99e78b16371b655aa5dee"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 16 14:17:11 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 17 01:44:10 2009 -0400"
      },
      "message": "tracing/trace_stack: Cleanup for trace_lookup_stack()\n\nWe can directly use %pF input format instead of sprint_symbol()\nand %s input format.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "64fbcd162819bddaf0d99e78b16371b655aa5dee",
      "tree": "abc34dd23386f13675502455d99d868b9b63173e",
      "parents": [
        "da706d8bc833e7153622435560422e653bdb2e94"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jul 15 12:32:15 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 17 00:37:53 2009 -0400"
      },
      "message": "tracing/function: Simplify __ftrace_replace_code()\n\nRewrite the __ftrace_replace_code() function, simplify it, but don\u0027t\nchange the code\u0027s logic.\n\nFirst, we get the state we want to set, if the record has the same\nstate, then do nothing, otherwise enable/disable it.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "04aef32d39cc4ef80087c0ce8ed113c6d64f1a6b",
      "tree": "fb6e1231d7ac8fb38cf514c0c6107291234228d9",
      "parents": [
        "4b0a84043e0c14088958fddb62f416d050368011"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jul 15 12:29:06 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 23:34:32 2009 -0400"
      },
      "message": "tracing/function: Fix the return value of ftrace_trace_onoff_callback()\n\nftrace_trace_onoff_callback() will return an error even if we do the\nright operation, for example:\n\n # echo _spin_*:traceon:10 \u003e set_ftrace_filter\n -bash: echo: write error: Invalid argument\n # cat set_ftrace_filter\n #### all functions enabled ####\n _spin_trylock_bh:traceon:count\u003d10\n _spin_unlock_irq:traceon:count\u003d10\n _spin_unlock_bh:traceon:count\u003d10\n _spin_lock_irq:traceon:count\u003d10\n _spin_unlock:traceon:count\u003d10\n _spin_trylock:traceon:count\u003d10\n _spin_unlock_irqrestore:traceon:count\u003d10\n _spin_lock_irqsave:traceon:count\u003d10\n _spin_lock_bh:traceon:count\u003d10\n _spin_lock:traceon:count\u003d10\n\nWe want to set _spin_*:traceon:10 to set_ftrace_filter, it complains\nwith \"Invalid argument\", but the operation is successful.\n\nThis is because ftrace_process_regex() returns the number of functions that\nmatched the pattern. If the number is not 0, this value is returned\nby ftrace_regex_write() whereas we want to return the number of bytes\nvirtually written.\nAlso the file offset pointer is not updated in this case.\n\nIf the number of matched functions is lower than the number of bytes written\nby the user, this results to a reprocessing of the string given by the user with\na lower size, leading to a malformed ftrace regex and then a -EINVAL returned.\n\nSo, this patch fixes it by returning 0 if no error occured.\nThe fix also applies on 2.6.30\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "da706d8bc833e7153622435560422e653bdb2e94",
      "tree": "0da824f6db67ce361976ef3b4d5a7212ea92619b",
      "parents": [
        "e202687927c132b1e1ff36b526b5e78ac33de840"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jul 15 16:27:30 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 18:46:47 2009 -0400"
      },
      "message": "ring_buffer: Fix warning while ignoring cmpxchg return value\n\nkernel/trace/ring_buffer.c: In function \u0027rb_tail_page_update\u0027:\nkernel/trace/ring_buffer.c:849: warning: value computed is not used\nkernel/trace/ring_buffer.c:850: warning: value computed is not used\n\nAdd \"(void)\"s to fix this warning, because we don\u0027t need here to handle\nthe fail case of cmpxchg, it\u0027s fine if an interrupt already did the\njob.\n\nChanged from V1:\n  Add a comment(which is written by Steven) for it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6ab5d668b131d3c5416f6df1d3ca95b82d4fe8a2",
      "tree": "dc5cd05361845a431c1388f83f913e4610a2dfca",
      "parents": [
        "d0b6e04a4cd8360e3c9c419f7c30a3081a0c142a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 04 00:55:45 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 13 11:01:10 2009 +0200"
      },
      "message": "tracing/function-profiler: do not free per cpu variable stat\n\nThe per cpu variable stat is freeded if we fail to allocate a name\non start up. This was due to stat at first being allocated in the\ninitial design. But since then, it has become a static per cpu variable\nbut the free on error was not removed.\n\nAlso added __init annotation to the function that this is in.\n\n[ Impact: prevent possible memory corruption on low mem at boot up ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e202687927c132b1e1ff36b526b5e78ac33de840",
      "tree": "8c1cadd560913e41237af48fc0058a9ed640dda7",
      "parents": [
        "a35780005eb256eb5ec83ffcc802967295887a45",
        "8b2c70d1e43074cc06afe99b0de12b686d9c9d02"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 13:30:06 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 13:30:06 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/ring-buffer-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/core\n"
    },
    {
      "commit": "a35780005eb256eb5ec83ffcc802967295887a45",
      "tree": "187244378069f3dd02b23e706d10a3054837f3ba",
      "parents": [
        "d8ea37d5de58d35a39d0b4e7d209751aaa1b8174"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Jul 06 16:10:23 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 12:14:07 2009 +0200"
      },
      "message": "tracing/workqueues: Add refcnt to struct cpu_workqueue_stats\n\nThe stat entries can be freed when the stat file is being read.\nThe worse is, the ptr can be freed immediately after it\u0027s returned\nfrom workqueue_stat_start/next().\n\nAdd a refcnt to struct cpu_workqueue_stats to avoid use-after-free.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A51B16F.6010608@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d8ea37d5de58d35a39d0b4e7d209751aaa1b8174",
      "tree": "a64ffb2c844ad0f0e99616a69e6f548370d31665",
      "parents": [
        "80098c200e2ee3b4c86a9d1e156dbcd05380e08f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Jul 06 16:10:18 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 12:14:05 2009 +0200"
      },
      "message": "tracing/stat: Add stat_release() callback\n\nAdd stat_release() callback to struct tracer_stat, so a stat tracer\ncan release it\u0027s entries after the stat file has been read out.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A51B16A.6020708@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80098c200e2ee3b4c86a9d1e156dbcd05380e08f",
      "tree": "25a216567c02e94a9f4203ddc452fb24bb200176",
      "parents": [
        "6a167c655858cbec4175532fd00417661c87f149"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jul 06 16:15:04 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 12:09:04 2009 +0200"
      },
      "message": "kmemtrace: Rename some functions\n\nSo we have:\n\n - kmemtrace_print_alloc/free() for kmemtrace default output\n\n - kmemtrace_print_alloc/free_user() for binary output used\n   by kmemtrace-user.\n\nSuggested-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A51B288.70505@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a167c655858cbec4175532fd00417661c87f149",
      "tree": "f177c7a7ea5a6c949bf7f4cc37cebb5665e38ed1",
      "parents": [
        "68baafcfc46074c4bb4e4c3115c2c76a8a85f37d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 09 04:46:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 12:07:20 2009 +0200"
      },
      "message": "tracing/kmemtrace: Use the %pf format\n\nRemove the obsolete seq_print_ip_sym() usage and replace it\nby the %pf format in order to print function symbols.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c1247107590-6428-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68baafcfc46074c4bb4e4c3115c2c76a8a85f37d",
      "tree": "b3790c3fcd871d981c09932fb8ce6af2d36c070c",
      "parents": [
        "dc82ec98a4727fd51b77e92d05fe7d2db3dcc11c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 09 04:46:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 12:07:19 2009 +0200"
      },
      "message": "tracing/function-graph-tracer: Use the %pf format\n\nRemove the obsolete seq_print_ip_sym() usage and replace it\nby the %pf format in order to print function symbols.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1247107590-6428-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc82ec98a4727fd51b77e92d05fe7d2db3dcc11c",
      "tree": "c66955e01458db480185c963304a60b6fd77c72c",
      "parents": [
        "c5cb183608167c744cb28bbd85884be5a4ce875d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 09 16:22:22 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 11:55:28 2009 +0200"
      },
      "message": "tracing/filter: Remove empty subsystem and its directory\n\nRemove empty subsystem and its directory when module unload.\n\nBefore patch:\n # rmmod trace-events-sample.ko\n # ls sample\n enable  filter\n\nAfter patch:\n # rmmod trace-events-sample.ko\n # ls sample\n ls: cannot access sample: No such file or directory\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A55A8BE.9010707@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5cb183608167c744cb28bbd85884be5a4ce875d",
      "tree": "cce5d915673768ba0f2190920dcd7ee644a5c477",
      "parents": [
        "ddc1637af217dbd8bc51f30e6d24e84476a869a6"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 09 16:20:12 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 11:55:27 2009 +0200"
      },
      "message": "tracing/filter: Remove preds from struct event_subsystem\n\nNo need to save preds to event_subsystem, because it\u0027s not used.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A55A83C.1030005@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77ae365eca895061c8bf2b2e3ae1d9ea62869739",
      "tree": "fc808698a4f2869b45ef4e8c958cbab183a7ad37",
      "parents": [
        "3adc54fa82a68be1cd1ac82ad786ee362796e50a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 27 11:00:29 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 07 18:36:12 2009 -0400"
      },
      "message": "ring-buffer: make lockless\n\nThis patch converts the ring buffers into a completely lockless\nbuffer recording system. The read side still takes locks since\nwe still serialize readers. But the writers are the ones that\nmust be lockless (those can happen in NMIs).\n\nThe main change is to the \"head_page\" pointer. We write to the\ntail, and read from the head. The \"head_page\" pointer in the cpu\nbuffer is now just a reference to where to look. The real head\npage is now kept in the head_page-\u003elist-\u003eprev-\u003enext pointer.\nThat is, in the list head of the previous page we set flags.\n\nThe list pages are allocated to be aligned such that the lowest\nsignificant bits are always zero pointing to the list. This gives\nus play to put in flags to their pointers.\n\nbit 0: set when the page is a head page\nbit 1: set when the writer is moving the page (for overwrite mode)\n\ncmpxchg is used to update the pointer.\n\nWhen the writer wraps the buffer and the tail meets the head,\nin overwrite mode, the writer must move the head page forward.\nIt first uses cmpxchg to change the pointer flag from 1 to 2.\nOnce this is done, the reader on another CPU will not take the\npage from the buffer.\n\nThe writers need to protect against interrupts (we don\u0027t bother with\ndisabling interrupts because NMIs are allowed to write too).\n\nAfter the writer sets the pointer flag to 2, it takes care to\nmanage interrupts coming in. This is discribed in detail within the\ncomments of the code.\n\n Changes in version 2:\n  - Let reader reset entries value of header page.\n  - Fix tail page passing commit page on reader page test.\n  - Always increment entries and write counter in rb_tail_page_update\n  - Add safety check in rb_set_commit_to_write to break out of infinite loop\n  - add mask in rb_is_reader_page\n\n[ Impact: lock free writing to the ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "3adc54fa82a68be1cd1ac82ad786ee362796e50a",
      "tree": "0538fac360f776354ec6b171e6adb0049cfa9f3b",
      "parents": [
        "ddc1637af217dbd8bc51f30e6d24e84476a869a6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 30 15:32:01 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 07 18:36:10 2009 -0400"
      },
      "message": "ring-buffer: make the buffer a true circular link list\n\nThis patch changes the ring buffer data pages from using a link list\nhead pointer, to making each buffer page point to another buffer page\nand never back to a \"head\".\n\nThis makes the handling of the ring buffer less complex, since the\ntraversing of the ring buffer pages no longer needs to account for the\nhead pointer.\n\nThis change also is needed to make the ring buffer lockless.\n\n[\n  Changes in version 2:\n\n  - Added change that Lai Jiangshan mentioned.\n\n  From: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n  Date: Thu, 11 Jun 2009 11:25:48 +0800\n  LKML-Reference: \u003c4A30793C.6090208@cn.fujitsu.com\u003e\n\n  I\u0027m not sure whether these 4 lines:\n\tbpage \u003d list_entry(pages.next, struct buffer_page, list);\n\tlist_del_init(\u0026bpage-\u003elist);\n\tcpu_buffer-\u003epages \u003d \u0026bpage-\u003elist;\n\n\tlist_splice(\u0026pages, cpu_buffer-\u003epages);\n  equal to these 2 lines:\n \tcpu_buffer-\u003epages \u003d pages.next;\n \tlist_del(\u0026pages);\n\n  If there are equivalent, I think the second one\n  are simpler. It may be not a really necessarily cleanup.\n\n  What I asked is: if there are equivalent, could you use these two line:\n \tcpu_buffer-\u003epages \u003d pages.next;\n\tlist_del(\u0026pages);\n]\n\n[ Impact: simplify the ring buffer to help make it lockless ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ddc1637af217dbd8bc51f30e6d24e84476a869a6",
      "tree": "2ff7a1330093ad524ab367f85f6cc6753ea293c3",
      "parents": [
        "020e5f85cb087a40572c8b8b2dd06292a14fa212"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 03 17:34:24 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 03 11:39:46 2009 +0200"
      },
      "message": "kmemtrace: Print binary output only if \u0027bin\u0027 option is set\n\nCurrently by default the output of kmemtrace is binary format instead\nof human-readable output.\n\nThis patch makes the following changes:\n\n  - We\u0027ll see human-readable output by default\n  - We\u0027ll see binary output if \u0027bin\u0027 option is set\n\nNote: you may probably need to explicitly disable context-info binary\n      output:\n\n\t# echo 0 \u003e options/context-info\n\t# echo 1 \u003e options/bin\n\t# cat trace_pipe\n\nv2:\n- use %pF to print call_site\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4DD0A0.5060500@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1af3aec3e2e7d21d4b3054323779d478c19d907",
      "tree": "338ef5a081fb66a6463ab4c1e882d7870ca154ac",
      "parents": [
        "4a2bb6fcc80e6330ca2f2393e98605052cc7780b"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jul 01 16:50:25 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 02 08:51:13 2009 +0200"
      },
      "message": "tracing: Fix trace_print_seq()\n\nWe will lose something if trace_seq-\u003ebuffer[0] is 0, because the copy length\nis calculated by strlen() in seq_puts(), so using seq_write() instead of\nseq_puts().\n\nThere have a example:\nafter reboot:\n\n # echo kmemtrace \u003e current_tracer\n # echo 0 \u003e options/kmem_minimalistic\n # cat trace\n # tracer: kmemtrace\n #\n #\n\nNothing is exported, because the first byte of trace_seq-\u003ebuffer[ ]\nis KMEMTRACE_USER_ALLOC.\n\n( the value of KMEMTRACE_USER_ALLOC is zero, seeing\n  kmemtrace_print_alloc_user() in kernel/trace/kmemtrace.c)\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A4B2351.5010300@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "020e5f85cb087a40572c8b8b2dd06292a14fa212",
      "tree": "d1bd09885693dd9d5e9db995cb0f7f58aa0e1bb8",
      "parents": [
        "c5cb5a2d8d7dc872cf1504091ad0e59fe5ff7cb5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jul 01 10:47:05 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 01 15:44:24 2009 +0200"
      },
      "message": "tracing/events: Add trace_event boot option\n\nWe already have ftrace\u003d boot option, and this adds a similar\nboot option for trace events, so allow trace events to be\nenabled at boot, for boot debugging purpose.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4ACE29.3010407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "238a24f626628cb16a3015f332d649f08246ca89",
      "tree": "f4454dd15f7b86c0ca0869230f6e389901147b70",
      "parents": [
        "82d5308127c3e3404ffbf41e503853c68660b18b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 29 15:55:10 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 29 10:22:10 2009 +0200"
      },
      "message": "tracing/fastboot: Document the need of initcall_debug\n\nTo use boot tracer, one should pass initcall_debug as well as\nftrace\u003dinitcall to the command line.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A48735E.9050002@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82d5308127c3e3404ffbf41e503853c68660b18b",
      "tree": "6c24d7e23a1fc6e4b26bcdeb718ea62a8a93cf45",
      "parents": [
        "a32c7765e2796395aec49f699bd25c407155e9c5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Jun 26 17:07:02 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 20:48:40 2009 +0200"
      },
      "message": "trace_export: Repair missed fields\n\nSome fields for struct ftrace_graph_ret are missed\nwhen they are exported to user.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A448FB6.5000302@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a32c7765e2796395aec49f699bd25c407155e9c5",
      "tree": "6d46f223a177ada92c6f47c36ba2e51cd6041037",
      "parents": [
        "0296e4254f3318e0dcad9706fa1daf8e5addc1e9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jun 26 16:55:51 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 20:48:39 2009 +0200"
      },
      "message": "tracing: Fix stack tracer sysctl handling\n\nThis made my machine completely frozen:\n\n  # echo 1 \u003e /proc/sys/kernel/stack_tracer_enabled\n  # echo 2 \u003e /proc/sys/kernel/stack_tracer_enabled\n\nThe cause is register_ftrace_function() was called twice.\n\nAlso fix ftrace_enabled sysctl, though seems nothing bad happened\nas I tested it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A448D17.9010305@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0296e4254f3318e0dcad9706fa1daf8e5addc1e9",
      "tree": "7568f2372564b45fa79bbcdd36273999cae0de8c",
      "parents": [
        "1155de47cd66d0c496d5a6fb2223e980ef1285b2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jun 26 11:15:37 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 09:25:42 2009 +0200"
      },
      "message": "ftrace: Fix the output of profile\n\nThe first entry of the ftrace profile was always skipped when\nreading trace_stat/functionX.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A443D59.4080307@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1155de47cd66d0c496d5a6fb2223e980ef1285b2",
      "tree": "0ee762d6b1215a37fe89acc174de8cbbf476d218",
      "parents": [
        "00e54d087afb3867b0b461aef6c1ff433d0df564"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 25 14:30:12 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 10:31:30 2009 +0200"
      },
      "message": "ring-buffer: Make it generally available\n\nIn hunting down the cause for the hwlat_detector ring buffer spew in\nmy failed -next builds it became obvious that folks are now treating\nring_buffer as something that is generic independent of tracing and thus,\nsuitable for public driver consumption.\n\nGiven that there are only a few minor areas in ring_buffer that have any\nreliance on CONFIG_TRACING or CONFIG_FUNCTION_TRACER, provide stubs for\nthose and make it generally available.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jon Masters \u003cjcm@jonmasters.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20090625053012.GB19944@linux-sh.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00e54d087afb3867b0b461aef6c1ff433d0df564",
      "tree": "e6158e5a11ec0979ef1fc0f58a591b91509cb7b7",
      "parents": [
        "9d612beff5089b89a295a2331883a8ce3fff08c1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jun 25 14:05:27 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 10:28:36 2009 +0200"
      },
      "message": "ftrace: Remove duplicate newline\n\nBefore:\n  # echo \u0027sys_open:traceon:\u0027 \u003e set_ftrace_filter\n  # echo \u0027sys_close:traceoff:5\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter\n  #### all functions enabled ####\n  sys_open:traceon:unlimited\n\n  sys_close:traceoff:count\u003d0\n\nAfter:\n  # cat set_ftrace_filter\n  #### all functions enabled ####\n  sys_open:traceon:unlimited\n  sys_close:traceoff:count\u003d0\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4313A7.7030105@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d612beff5089b89a295a2331883a8ce3fff08c1",
      "tree": "6f742b3997c5aa6096d4a844c08019fe4d669f55",
      "parents": [
        "d82d62444f87e5993af2fa82ed636b2206e052ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 17:33:15 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:41:12 2009 +0200"
      },
      "message": "tracing: Fix trace_buf_size boot option\n\nWe should be able to specify [KMG] when setting trace_buf_size\nboot option, as documented in kernel-parameters.txt\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41F2DB.4020102@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d82d62444f87e5993af2fa82ed636b2206e052ea",
      "tree": "701f28de7def6c58d80db72a462171cab013b514",
      "parents": [
        "694ce0a544fba37a60025a6803ee6265be8a2a22"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:54 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Fix t_hash_start()\n\nWhen the output of set_ftrace_filter is larger than PAGE_SIZE,\nt_hash_start() will be called the 2nd time, and then we start\nfrom the head of a hlist, which is wrong and causes some entries\nto be outputed twice.\n\nThe worse is, if the hlist is large enough, reading set_ftrace_filter\nwon\u0027t stop but in a dead loop.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41876E.2060407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "694ce0a544fba37a60025a6803ee6265be8a2a22",
      "tree": "a6debd92de0dcf7b42dc129402ca793c540091ae",
      "parents": [
        "85951842a1020669f0a9eb0f0d1853b41341f097"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:19 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Don\u0027t manipulate @pos in t_start()\n\nIt\u0027s rather confusing that in t_start(), in some cases @pos is\nincremented, and in some cases it\u0027s decremented and then incremented.\n\nThis patch rewrites t_start() in a much more general way.\n\nThus we fix a bug that if ftrace_filtered \u003d\u003d 1, functions have tracer\nhooks won\u0027t be printed, because the branch is always unreachable:\n\nstatic void *t_start(...)\n{\n\t...\n\tif (!p)\n\t\treturn t_hash_start(m, pos);\n\treturn p;\n}\n\nBefore:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n\nAfter:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n  sys_write:traceon:count\u003d4\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41874B.4090507@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85951842a1020669f0a9eb0f0d1853b41341f097",
      "tree": "799bba3e78b7424761901dacf3290ce05b9cb9ed",
      "parents": [
        "f129e965bef40c6153e4fe505f1e408286213424"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:00 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:52 2009 +0200"
      },
      "message": "ftrace: Don\u0027t increment @pos in g_start()\n\nIt\u0027s wrong to increment @pos in g_start(). It causes some entries\nlost when reading set_graph_function, if the output of the file\nis larger than PAGE_SIZE.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418738.7090401@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f129e965bef40c6153e4fe505f1e408286213424",
      "tree": "bd198daa61a79a52e1a6e06ff338c815b1516405",
      "parents": [
        "2961bf345fd1b736c3db46cad0f69855f67fbe9c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:53:44 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:51 2009 +0200"
      },
      "message": "tracing: Reset iterator in t_start()\n\nThe iterator is m-\u003eprivate, but it\u0027s not reset to trace_types in\nt_start(). If the output is larger than PAGE_SIZE and t_start()\nis called the 2nd time, things will go wrong.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418728.5020506@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2961bf345fd1b736c3db46cad0f69855f67fbe9c",
      "tree": "2032d3b59b4a93445209b5b1f0428159b61837d2",
      "parents": [
        "c8961ec6da22ea010bf4470a8e0fb3fdad0f11c4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:53:26 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:51 2009 +0200"
      },
      "message": "trace_stat: Don\u0027t increment @pos in seq start()\n\nIt\u0027s wrong to increment @pos in stat_seq_start(). It causes some\nstat entries lost when reading stat file, if the output of the file\nis larger than PAGE_SIZE.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418716.90209@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8961ec6da22ea010bf4470a8e0fb3fdad0f11c4",
      "tree": "799b41a5eae2268010ca2d5b883a6c4fe33a9297",
      "parents": [
        "e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:52:58 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:50 2009 +0200"
      },
      "message": "tracing_bprintk: Don\u0027t increment @pos in t_start()\n\nIt\u0027s wrong to increment @pos in t_start(), otherwise we\u0027ll lose\nsome entries when reading printk_formats, if the output is larger\nthan PAGE_SIZE.\n\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4186FA.1020106@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1",
      "tree": "0b6eb8cf5e699592fc868a44b24e603ad8f3d6af",
      "parents": [
        "4e8a2372f9255a1464ef488ed925455f53fbdaa1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:52:29 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:49 2009 +0200"
      },
      "message": "tracing/events: Don\u0027t increment @pos in s_start()\n\nWhile testing syscall tracepoints posted by Jason, I found 3 entries\nwere missing when reading available_events. The output size of\navailable_events is \u003c 4 pages, which means we lost 1 entry per page.\n\nThe cause is, it\u0027s wrong to increment @pos in s_start().\n\nActually there\u0027s another bug here -- reading avaiable_events/set_events\ncan race with module unload:\n\n  # cat available_events               |\n      s_start()                        |\n      s_stop()                         |\n                                       | # rmmod foo.ko\n      s_start()                        |\n        call \u003d list_entry(m-\u003eprivate)  |\n\n@call might be freed and accessing it will lead to crash.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4186DD.6090405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0b7065b64fe517b4a50915a1555e8ee98890d64",
      "tree": "950e7735585a83f5b4efe7a9473b5b42d5ca4f57",
      "parents": [
        "38df92b8cee936334f686c06df0e5fbb92e252df",
        "d4c4038343510d83727ea922de4435996c26c0c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:56:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:56:46 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)\n  tracing/urgent: warn in case of ftrace_start_up inbalance\n  tracing/urgent: fix unbalanced ftrace_start_up\n  function-graph: add stack frame test\n  function-graph: disable when both x86_32 and optimize for size are configured\n  ring-buffer: have benchmark test print to trace buffer\n  ring-buffer: do not grab locks in nmi\n  ring-buffer: add locks around rb_per_cpu_empty\n  ring-buffer: check for less than two in size allocation\n  ring-buffer: remove useless compile check for buffer_page size\n  ring-buffer: remove useless warn on check\n  ring-buffer: use BUF_PAGE_HDR_SIZE in calculating index\n  tracing: update sample event documentation\n  tracing/filters: fix race between filter setting and module unload\n  tracing/filters: free filter_string in destroy_preds()\n  ring-buffer: use commit counters for commit pointer accounting\n  ring-buffer: remove unused variable\n  ring-buffer: have benchmark test handle discarded events\n  ring-buffer: prevent adding write in discarded area\n  tracing/filters: strloc should be unsigned short\n  tracing/filters: operand can be negative\n  ...\n\nFix up kmemcheck-induced conflict in kernel/trace/ring_buffer.c manually\n"
    },
    {
      "commit": "d4c4038343510d83727ea922de4435996c26c0c8",
      "tree": "ec735b5133ddb0c46211c87a2a7ee66c71a6d433",
      "parents": [
        "3daeb4da9a0b056bdc4af003e5605c1da4c0b068",
        "71e308a239c098673570d0b417d42262bb535909"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 18:26:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 18:26:48 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/urgent-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "3daeb4da9a0b056bdc4af003e5605c1da4c0b068",
      "tree": "a17fda13d9be51c71880a8ce2c55eaf7337c722f",
      "parents": [
        "9ea1a153a4fb435c22e9988784bb476671286112",
        "4b221f0313f0f7f1f7aa0a1fd16ad400840def26"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 17:25:49 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 17:25:49 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "9ea1a153a4fb435c22e9988784bb476671286112",
      "tree": "0f13f65f1bb8edae5a2906d22a209ff013e283ec",
      "parents": [
        "c85a17e22695969aa24a7ffa40cf26d6e6fcfd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "message": "tracing/urgent: warn in case of ftrace_start_up inbalance\n\nPrevent from further ftrace_start_up inbalances so that we avoid\nfuture nop patching omissions with dynamic ftrace.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c85a17e22695969aa24a7ffa40cf26d6e6fcfd50",
      "tree": "2073f145261c6cdad39818993ddb8c099f1498ff",
      "parents": [
        "44ad18e0a65e296b2e68a1452509f6222cdce743"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 05:45:14 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:28:46 2009 +0200"
      },
      "message": "tracing/urgent: fix unbalanced ftrace_start_up\n\nPerfcounter reports the following stats for a wide system\nprofiling:\n\n #\n # (2364 samples)\n #\n # Overhead  Symbol\n # ........  ......\n #\n    15.40%  [k] mwait_idle_with_hints\n     8.29%  [k] read_hpet\n     5.75%  [k] ftrace_caller\n     3.60%  [k] ftrace_call\n     [...]\n\nThis snapshot has been taken while neither the function tracer nor\nthe function graph tracer was running.\nWith dynamic ftrace, such results show a wrong ftrace behaviour\nbecause all calls to ftrace_caller or ftrace_graph_caller (the patched\ncalls to mcount) are supposed to be patched into nop if none of those\ntracers are running.\n\nThe problem occurs after the first run of the function tracer. Once we\nlaunch it a second time, the callsites will never be nopped back,\nunless you set custom filters.\nFor example it happens during the self tests at boot time.\nThe function tracer selftest runs, and then the dynamic tracing is\ntested too. After that, the callsites are left un-nopped.\n\nThis is because the reset callback of the function tracer tries to\nunregister two ftrace callbacks in once: the common function tracer\nand the function tracer with stack backtrace, regardless of which\none is currently in use.\nIt then creates an unbalance on ftrace_start_up value which is expected\nto be zero when the last ftrace callback is unregistered. When it\nreaches zero, the FTRACE_DISABLE_CALLS is set on the next ftrace\ncommand, triggering the patching into nop. But since it becomes\nunbalanced, ie becomes lower than zero, if the kernel functions\nare patched again (as in every further function tracer runs), they\nwon\u0027t ever be nopped back.\n\nNote that ftrace_call and ftrace_graph_call are still patched back\nto ftrace_stub in the off case, but not the callers of ftrace_call\nand ftrace_graph_caller. It means that the tracing is well deactivated\nbut we waste a useless call into every kernel function.\n\nThis patch just unregisters the right ftrace_ops for the function\ntracer on its reset callback and ignores the other one which is\nnot registered, fixing the unbalance. The problem also happens\nis .30\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "71e308a239c098673570d0b417d42262bb535909",
      "tree": "a9e415d0ae6302e820a1f9d4ff55a724b3a12cf6",
      "parents": [
        "eb4a03780d4c4464ef2ad86d80cca3f3284fe81d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 18 12:45:08 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 18 18:40:18 2009 -0400"
      },
      "message": "function-graph: add stack frame test\n\nIn case gcc does something funny with the stack frames, or the return\nfrom function code, we would like to detect that.\n\nAn arch may implement passing of a variable that is unique to the\nfunction and can be saved on entering a function and can be tested\nwhen exiting the function. Usually the frame pointer can be used for\nthis purpose.\n\nThis patch also implements this for x86. Where it passes in the stack\nframe of the parent function, and will test that frame on exit.\n\nThere was a case in x86_32 with optimize for size (-Os) where, for a\nfew functions, gcc would align the stack frame and place a copy of the\nreturn address into it. The function graph tracer modified the copy and\nnot the actual return address. On return from the funtion, it did not go\nto the tracer hook, but returned to the parent. This broke the function\ngraph tracer, because the return of the parent (where gcc did not do\nthis funky manipulation) returned to the location that the child function\nwas suppose to. This caused strange kernel crashes.\n\nThis test detected the problem and pointed out where the issue was.\n\nThis modifies the parameters of one of the functions that the arch\nspecific code calls, so it includes changes to arch code to accommodate\nthe new prototype.\n\nNote, I notice that the parsic arch implements its own push_return_trace.\nThis is now a generic function and the ftrace_push_return_trace should be\nused instead. This patch does not touch that code.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "eb4a03780d4c4464ef2ad86d80cca3f3284fe81d",
      "tree": "5bf249073e7c5dec68ced1411b78b4bcf41660b7",
      "parents": [
        "4b221f0313f0f7f1f7aa0a1fd16ad400840def26"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 18 12:53:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 18 18:39:30 2009 -0400"
      },
      "message": "function-graph: disable when both x86_32 and optimize for size are configured\n\nOn x86_32, when optimize for size is set, gcc may align the frame pointer\nand make a copy of the the return address inside the stack frame.\nThe return address that is located in the stack frame may not be\nthe one used to return to the calling function. This will break the\nfunction graph tracer.\n\nThe function graph tracer replaces the return address with a jump to a hook\nfunction that can trace the exit of the function. If it only replaces\na copy, then the hook will not be called when the function returns.\nWorse yet, when the parent function returns, the function graph tracer\nwill return back to the location of the child function which will\neasily crash the kernel with weird results.\n\nTo see the problem, when i386 is compiled with -Os we get:\n\nc106be03:       57                      push   %edi\nc106be04:       8d 7c 24 08             lea    0x8(%esp),%edi\nc106be08:       83 e4 e0                and    $0xffffffe0,%esp\nc106be0b:       ff 77 fc                pushl  0xfffffffc(%edi)\nc106be0e:       55                      push   %ebp\nc106be0f:       89 e5                   mov    %esp,%ebp\nc106be11:       57                      push   %edi\nc106be12:       56                      push   %esi\nc106be13:       53                      push   %ebx\nc106be14:       81 ec 8c 00 00 00       sub    $0x8c,%esp\nc106be1a:       e8 f5 57 fb ff          call   c1021614 \u003cmcount\u003e\n\nWhen it is compiled with -O2 instead we get:\n\nc10896f0:       55                      push   %ebp\nc10896f1:       89 e5                   mov    %esp,%ebp\nc10896f3:       83 ec 28                sub    $0x28,%esp\nc10896f6:       89 5d f4                mov    %ebx,0xfffffff4(%ebp)\nc10896f9:       89 75 f8                mov    %esi,0xfffffff8(%ebp)\nc10896fc:       89 7d fc                mov    %edi,0xfffffffc(%ebp)\nc10896ff:       e8 d0 08 fa ff          call   c1029fd4 \u003cmcount\u003e\n\nThe compile with -Os will align the stack pointer then set up the\nframe pointer (%ebp), and it copies the return address back into\nthe stack frame. The change to the return address in mcount is done\nto the copy and not the real place holder of the return address.\n\nThen compile with -O2 sets up the frame pointer first, this makes\nthe change to the return address by mcount affect where the function\nwill jump on exit.\n\nReported-by: Jake Edge \u003cjake@lwn.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4b221f0313f0f7f1f7aa0a1fd16ad400840def26",
      "tree": "a294e6719eefb3c68562627f59a7c0a67ae9b760",
      "parents": [
        "8d707e8eb4de4b930573155ab4df4b3270ee25dd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 17:01:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 17:01:09 2009 -0400"
      },
      "message": "ring-buffer: have benchmark test print to trace buffer\n\nCurrently the output of the ring buffer benchmark/test prints to\nthe console. This test runs for ten seconds every ten seconds and\nouputs the result after every iteration. This needlessly fills up\nthe logs.\n\nThis patch makes the ring buffer benchmark/test print to the ftrace\nbuffer using trace_printk. To view the test results, you must examine\nthe debug/tracing/trace file.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d707e8eb4de4b930573155ab4df4b3270ee25dd",
      "tree": "2594b38c73fa1c944587f62a2f9ce70fe4f90ce4",
      "parents": [
        "d47882078f05c2cb46b85f1e12a58ed9315b9d63"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 16 21:22:48 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:27 2009 -0400"
      },
      "message": "ring-buffer: do not grab locks in nmi\n\nIf ftrace_dump_on_oops is set, and an NMI detects a lockup, then it\nwill need to read from the ring buffer. But the read side of the\nring buffer still takes locks. This patch adds a check on the read\nside that if it is in an NMI, then it will disable the ring buffer\nand not take any locks.\n\nReads can still happen on a disabled ring buffer.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d47882078f05c2cb46b85f1e12a58ed9315b9d63",
      "tree": "ad10f2172384d2112b6e8136b9981a0eb813539b",
      "parents": [
        "5f78abeebbf0a80975d719e11374535ca15396cb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 00:39:43 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:23 2009 -0400"
      },
      "message": "ring-buffer: add locks around rb_per_cpu_empty\n\nThe checking of whether the buffer is empty or not needs to be serialized\namong the readers. Add the reader spin lock around it.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5f78abeebbf0a80975d719e11374535ca15396cb",
      "tree": "8c5a5f11caadc1cb662152fb1ef84b5b1fa19bbb",
      "parents": [
        "0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 14:11:10 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:20 2009 -0400"
      },
      "message": "ring-buffer: check for less than two in size allocation\n\nThe ring buffer must have at least two pages allocated for the\nreader page swap to work.\n\nThe page count check will miss the case of a zero size passed in.\nEven though a zero size ring buffer would probably fail an allocation,\nmaking the min size check for less than two instead of equal to one makes\nthe code a bit more robust.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf",
      "tree": "4798b2172902f8ce4dc81856ee1d858909147824",
      "parents": [
        "c6a9d7b55e2df63de012a9a285bf2a0bee8e4d59"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 14:03:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:07 2009 -0400"
      },
      "message": "ring-buffer: remove useless compile check for buffer_page size\n\nThe original version of the ring buffer had a hack to map the\npage struct that held the pages of the buffer to also be the structure\nthat the ring buffer would keep the pages in a link list.\n\nThis overlap of the page struct was very dangerous and that hack was\nremoved a while ago.\n\nBut there was a check to make sure the buffer_page never became bigger\nthan the page struct, and would fail the compile if it did. The\ncheck was only meaningful when we had the hack. Now that we have separate\nallocated descriptors for the buffer pages, we can remove this check.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c6a9d7b55e2df63de012a9a285bf2a0bee8e4d59",
      "tree": "f4f275eeba79572e9660da6c0d865d7f2d51075c",
      "parents": [
        "22f470f8daea64bc03be1fe30c8c5df382295386"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 11 09:49:15 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 21:19:26 2009 -0400"
      },
      "message": "ring-buffer: remove useless warn on check\n\nA check if \"write \u003e BUF_PAGE_SIZE\" is done right after a\n\n\tif (write \u003e BUF_PAGE_SIZE)\n\t\treturn ...;\n\nThus the check is actually testing the compiler and not the\nkernel. This is useless, remove it.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "22f470f8daea64bc03be1fe30c8c5df382295386",
      "tree": "3186ae50783f1795307055d48a583e23e2e21ad2",
      "parents": [
        "44ad18e0a65e296b2e68a1452509f6222cdce743"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 11 09:29:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 21:19:23 2009 -0400"
      },
      "message": "ring-buffer: use BUF_PAGE_HDR_SIZE in calculating index\n\nThe index of the event is found by masking PAGE_MASK to it and\nsubtracting the header size. Currently the header size is calculate\nby PAGE_SIZE - BUF_PAGE_SIZE, when we already have a macro\nBUF_PAGE_HDR_SIZE to define it.\n\nIf we want to change BUF_PAGE_SIZE to something less than filling\nthe rest of the page (this is done for debugging), then we break\nthe algorithm to find the index.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "00e95830a4d6e49f764fdb19896a89199bc0aa3b",
      "tree": "972a3872cb48474777da0f9e3121fcc6924e197d",
      "parents": [
        "57be88878e7aa38750384704d811485a607bbda4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 16:39:41 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 16:25:37 2009 -0400"
      },
      "message": "tracing/filters: fix race between filter setting and module unload\n\nModule unload is protected by event_mutex, while setting filter is\nprotected by filter_mutex. This leads to the race:\n\necho \u0027bar \u003d\u003d 0 || bar \u003d\u003d 10\u0027 \\    |\n\t\t\u003e sample/filter   |\n                                  |  insmod sample.ko\n  add_pred(\"bar \u003d\u003d 0\")            |\n    -\u003e n_preds \u003d\u003d 1               |\n  add_pred(\"bar \u003d\u003d 100\")          |\n    -\u003e n_preds \u003d\u003d 2               |\n                                  |  rmmod sample.ko\n                                  |  insmod sample.ko\n  add_pred(\"\u0026\u0026\")                  |\n    -\u003e n_preds \u003d\u003d 1 (should be 3) |\n\nNow event-\u003efilter-\u003epreds is corrupted. An then when filter_match_preds()\nis called, the WARN_ON() in it will be triggered.\n\nTo avoid the race, we remove filter_mutex, and replace it with event_mutex.\n\n[ Impact: prevent corruption of filters by module removing and loading ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A375A4D.6000205@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "57be88878e7aa38750384704d811485a607bbda4",
      "tree": "e65873cc622b7477ec6cf7ef7be8f63f4aef481f",
      "parents": [
        "fa7439531dee58277748c819785a44d3203c4b51"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 16:39:12 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 16:25:35 2009 -0400"
      },
      "message": "tracing/filters: free filter_string in destroy_preds()\n\nfilter-\u003efilter_string is not freed when unloading a module:\n\n # insmod trace-events-sample.ko\n # echo \"bar \u003c 100\" \u003e /mnt/tracing/events/sample/foo_bar/filter\n # rmmod trace-events-sample.ko\n\n[ Impact: fix memory leak when unloading module ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A375A30.9060802@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "fa7439531dee58277748c819785a44d3203c4b51",
      "tree": "b867f2e8ff7702d107a2e6dc08c24e451d170a80",
      "parents": [
        "263294f3e1e883b9dcbf0c09a54b644918f7729d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 16 12:37:57 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 16:25:33 2009 -0400"
      },
      "message": "ring-buffer: use commit counters for commit pointer accounting\n\nThe ring buffer is made up of three sets of pointers.\n\nThe head page pointer, which points to the next page for the reader to\nget.\n\nThe commit pointer and commit index, which points to the page and index\nof the last committed write respectively.\n\nThe tail pointer and tail index, which points to the page and the index\nof the last reserved data respectively (non committed).\n\nThe commit pointer is only moved forward by the outer most writer.\nIf a nested writer comes in, it will not move the pointer forward.\n\nThe current implementation has a flaw. It assumes that the outer most\nwriter successfully reserved data. There\u0027s a small race window where\nthe outer most writer could find the tail pointer, but a nested\nwriter could come in (via interrupt) and move the tail forward, and\neven the commit forward.\n\nThe outer writer would not realized the commit moved forward and the\naccounting will break.\n\nThis patch changes the design to use counters in the per cpu buffers\nto keep track of commits. The counters are incremented at the start\nof the commit, and decremented at the end. If the end commit counter\nis 1, then it moves the commit pointers. A loop is made to check for\nraces between checking and moving the commit pointers. Only the outer\ncommit should move the pointers anyway.\n\nThe test of knowing if a reserve is equal to the last commit update\nis still needed to know for time keeping. The time code is much less\nracey than the commit updates.\n\nThis change not only solves the mentioned race, but also makes the\ncode simpler.\n\n[ Impact: fix commit race and simplify code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "263294f3e1e883b9dcbf0c09a54b644918f7729d",
      "tree": "f2faa7ecd0d81becf854a36bdd0150daf291634d",
      "parents": [
        "9086c7b90abbf4ec29543e8f2424e3ecd14e955d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 16 11:50:18 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 16:24:39 2009 -0400"
      },
      "message": "ring-buffer: remove unused variable\n\nFix the compiler error:\n\nkernel/trace/ring_buffer.c: In function \u0027rb_move_tail\u0027:\nkernel/trace/ring_buffer.c:1236: warning: unused variable \u0027event\u0027\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b3fec0fe35a4ff048484f1408385a27695d4273b",
      "tree": "088c23f098421ea681d9976a83aad73d15be1027",
      "parents": [
        "e1f5b94fd0c93c3e27ede88b7ab652d086dc960f",
        "722f2a6c87f34ee0fd0130a8cf45f81e0705594a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck: (39 commits)\n  signal: fix __send_signal() false positive kmemcheck warning\n  fs: fix do_mount_root() false positive kmemcheck warning\n  fs: introduce __getname_gfp()\n  trace: annotate bitfields in struct ring_buffer_event\n  net: annotate struct sock bitfield\n  c2port: annotate bitfield for kmemcheck\n  net: annotate inet_timewait_sock bitfields\n  ieee1394/csr1212: fix false positive kmemcheck report\n  ieee1394: annotate bitfield\n  net: annotate bitfields in struct inet_sock\n  net: use kmemcheck bitfields API for skbuff\n  kmemcheck: introduce bitfield API\n  kmemcheck: add opcode self-testing at boot\n  x86: unify pte_hidden\n  x86: make _PAGE_HIDDEN conditional\n  kmemcheck: make kconfig accessible for other architectures\n  kmemcheck: enable in the x86 Kconfig\n  kmemcheck: add hooks for the page allocator\n  kmemcheck: add hooks for page- and sg-dma-mappings\n  kmemcheck: don\u0027t track page tables\n  ...\n"
    },
    {
      "commit": "9086c7b90abbf4ec29543e8f2424e3ecd14e955d",
      "tree": "a65b9781b53b5eb2638dd65cf242547c33f0dd04",
      "parents": [
        "c7b0930857e2278f2e7714db6294e94c57f623b0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 16 11:46:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 16 13:48:52 2009 -0400"
      },
      "message": "ring-buffer: have benchmark test handle discarded events\n\nWith the addition of commit:\n\n  c7b0930857e2278f2e7714db6294e94c57f623b0\n  ring-buffer: prevent adding write in discarded area\n\nThe ring buffer may now add discarded events when a write passes\nthe end of a buffer page. Before, a discarded event was only added\nwhen the tracer deliberately created one. The ring buffer benchmark\ntest does not handle discarded events when it reads the buffer and\nfails when it encounters one.\n\nAlso fix the increment for large data entries (luckily, the test did\nnot add any yet).\n\n[ Impact: fix false failure of ring buffer self test ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "156f5a7801195fa2ce44aeeb62d6cf8468f3332a",
      "tree": "dd506816ca6f14bb650189aa364eb0a2f51ad5cc",
      "parents": [
        "1b713e00500c6f03317742981674e89a21629399"
      ],
      "author": {
        "name": "GeunSik Lim",
        "email": "leemgs1@gmail.com",
        "time": "Tue Jun 02 15:01:37 2009 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:28 2009 -0700"
      },
      "message": "debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem.\n\nMany developers use \"/debug/\" or \"/debugfs/\" or \"/sys/kernel/debug/\"\ndirectory name to mount debugfs filesystem for ftrace according to\n./Documentation/tracers/ftrace.txt file.\n\nAnd, three directory names(ex:/debug/, /debugfs/, /sys/kernel/debug/) is\nexisted in kernel source like ftrace, DRM, Wireless, Documentation,\nNetwork[sky2]files to mount debugfs filesystem.\n\ndebugfs means debug filesystem for debugging easy to use by greg kroah\nhartman. \"/sys/kernel/debug/\" name is suitable as directory name\nof debugfs filesystem.\n- debugfs related reference: http://lwn.net/Articles/334546/\n\nFix inconsistency of directory name to mount debugfs filesystem.\n\n* From Steven Rostedt\n  - find_debugfs() and tracing_files() in this patch.\n\nSigned-off-by: GeunSik Lim \u003cgeunsik.lim@samsung.com\u003e\nAcked-by     : Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nReviewed-by  : Steven Rostedt \u003crostedt@goodmis.org\u003e\nReviewed-by  : James Smart \u003cjames.smart@emulex.com\u003e\nCC: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCC: David Airlie \u003cairlied@linux.ie\u003e\nCC: Peter Osterlund \u003cpetero2@telia.com\u003e\nCC: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCC: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCC: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "19035e5b5d1e3127b4925d86f6a77964f91f2c3c",
      "tree": "c9e7e9073970176a5b0970da715cb6430c3c9069",
      "parents": [
        "f9db6e095115f9411b9647bdb9d81fe11f3d8b54",
        "eea08f32adb3f97553d49a4f79a119833036000a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: Logic to move non pinned timers\n  timers: /proc/sys sysctl hook to enable timer migration\n  timers: Identifying the existing pinned timers\n  timers: Framework for identifying pinned timers\n  timers: allow deferrable timers for intervals tv2-tv5 to be deferred\n\nFix up conflicts in kernel/sched.c and kernel/timer.c manually\n"
    },
    {
      "commit": "c7b0930857e2278f2e7714db6294e94c57f623b0",
      "tree": "b43f113aa02063362d2e0f984d29c78afae87a02",
      "parents": [
        "0ac2058f686a19fe8ab25c4f3104fc1580dce7cf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 11 11:12:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:37:19 2009 -0400"
      },
      "message": "ring-buffer: prevent adding write in discarded area\n\nThis a very tight race where an interrupt could come in and not\nhave enough data to put into the end of a buffer page, and that\nit would fail to write and need to go to the next page.\n\nBut if this happened when another writer was about to reserver\ntheir data, and that writer has smaller data to reserve, then\nit could succeed even though the interrupt moved the tail page.\n\nTo pervent that, if we fail to store data, and by subtracting the\namount we reserved we still have room for smaller data, we need\nto fill that space with \"discarded\" data.\n\n[ Impact: prevent race were buffer data may be lost ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0ac2058f686a19fe8ab25c4f3104fc1580dce7cf",
      "tree": "ecc0aa6f26b5479e833c96d2f6263a30ebd80045",
      "parents": [
        "5e4904cb633177046bee5d26946a7ac918e642fc"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 10:59:17 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:37:18 2009 -0400"
      },
      "message": "tracing/filters: strloc should be unsigned short\n\nI forgot to update filter code accordingly in\n\"tracing/events: change the type of __str_loc_item to unsigned short\"\n(commt b0aae68cc5508f3c2fbf728988c954db4c8b8a53)\n\nIt can cause system crash:\n\n # echo 1 \u003e tracing/events/irq/irq_handler_entry/enable\n # echo \u0027name \u003d\u003d eth0\u0027 \u003e tracing/events/irq/irq_handler_entry/filter\n\n[ Impact: fix crash while filtering on __string() field ]\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A35B905.3090500@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e4904cb633177046bee5d26946a7ac918e642fc",
      "tree": "9ae10b1c3d707c0c3faffa8a4b337c055222d899",
      "parents": [
        "e4f2d10f479d18198ebafcb5e124cc3dd8b8817a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 10:58:39 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:37:16 2009 -0400"
      },
      "message": "tracing/filters: operand can be negative\n\nThis should be a bug:\n\n # cat format\n name: foo_bar\n ID: 71\n format:\n\t ...\n         field:int bar;  offset:24;      size:4;\n # echo \u0027bar \u003c 0\u0027 \u003e filter\n # echo \u0027bar \u003c -1\u0027 \u003e filter\n bash: echo: write error: Invalid argument\n\n[ Impact: fix to allow negative operand in filer expr ]\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A35B8DF.60400@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e4f2d10f479d18198ebafcb5e124cc3dd8b8817a",
      "tree": "73d0797b9a4f285891284e0e39ceb328d254ed23",
      "parents": [
        "215368e8e59023d6a0abdda896923018d74fdf7f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 10:57:28 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:37:14 2009 -0400"
      },
      "message": "tracing: replace a GFP_ATOMIC with GFP_KERNEL allocation\n\nAtomic allocation is not needed here.\n\n[ Impact: clean up of memory alloction type ]\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A35B898.2050607@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "215368e8e59023d6a0abdda896923018d74fdf7f",
      "tree": "904bef6f1f3895843c5fbf288fd487713b78ed2c",
      "parents": [
        "78be6914cb5c6d648617c51bb99bf81f28471d89"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 10:56:42 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:37:12 2009 -0400"
      },
      "message": "tracing: fix a typo in tracing_cpumask_write()\n\nIt\u0027s tracing_cpumask_new that should be kfree()ed.\n\nThis causes tracing_cpumask to be freed due to the typo:\n\n # echo z \u003e tracing_cpumask\n bash: echo: write error: Invalid argument\n\nAnd subsequent reads/writes to tracing_cpuamsk will access this\nalready-freed tracing_cpumask, thus may lead to crash.\n\n[ Impact: fix leak and crash when writing invalid val to tracing_cpumask ]\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A35B86A.7070608@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3f237a79ddeea34dda67e9eedece3a22918df75e",
      "tree": "6a7e57e038edda3fd71d05424ec1c9d744ad0cc4",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:15:30 2009 +0930"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 15 11:36:42 2009 -0400"
      },
      "message": "cpumask: use new operators in kernel/trace\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c200906122115.30787.rusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1744a21d57d9c60136461adb6afa85e51b3e94d9",
      "tree": "62fdc4342e21835dc7fd8572b2ed1628324a0c12",
      "parents": [
        "a98b65a3ad71e702e760bc63f57684301628e837"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sat Feb 28 08:29:44 2009 +0100"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:49:37 2009 +0200"
      },
      "message": "trace: annotate bitfields in struct ring_buffer_event\n\nThis gets rid of a heap of false-positive warnings from the tracer\ncode due to the use of bitfields.\n\n[rebased for mainline inclusion]\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d",
      "tree": "50b5f4e2b9f138da57f76eca44fdcc80a2fcd428",
      "parents": [
        "862366118026a358882eefc70238dbcc3db37aac",
        "84047e360af0394ac5861d433f26bbcf30f77dd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:58:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:58:10 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  function-graph: always initialize task ret_stack\n  function-graph: move initialization of new tasks up in fork\n  function-graph: add memory barriers for accessing task\u0027s ret_stack\n  function-graph: enable the stack after initialization of other variables\n  function-graph: only allocate init tasks if it was not already done\n\nManually fix trivial conflict in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "110bf2b764eb6026b868d84499263cb24b1bcc8d",
      "tree": "66c869f6f96497051c4bda0797e234b3f7b39e8f",
      "parents": [
        "725c624a58a10ef90a2ff889e122158fabf36147"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 09 17:29:07 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 17:29:07 2009 -0400"
      },
      "message": "tracing: add protection around module events unload\n\nWhen reading the trace buffer, there is a race that when a module\nis unloaded it removes events that is stilled referenced in the buffers.\nThis patch adds the protection around the unloading of the events\nfrom modules and the reading of the trace buffers.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "725c624a58a10ef90a2ff889e122158fabf36147",
      "tree": "0a233afc51fa5bc0717ff99f3004219da54dcd6b",
      "parents": [
        "6556d1df88fe68f9836beeb43342a336691cb67c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 08 19:09:45 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 15:17:32 2009 -0400"
      },
      "message": "tracing: add trace_seq_vprint interface\n\nThe code to update the print formats for events requires a vprintf\nformat in the trace_seq. This patch adds that interface.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "55782138e47d9baf2f7d3a7af9e7cf42adf72c56",
      "tree": "c7ccabae20e27bbeb08b69a358e8b86c98d1d9f3",
      "parents": [
        "f57a8a1911342265e7acdc190333c4e9235a6632"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 09 13:43:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 12:34:23 2009 -0400"
      },
      "message": "tracing/events: convert block trace points to TRACE_EVENT()\n\nTRACE_EVENT is a more generic way to define tracepoints. Doing so adds\nthese new capabilities to this tracepoint:\n\n  - zero-copy and per-cpu splice() tracing\n  - binary tracing without printf overhead\n  - structured logging records exposed under /debug/tracing/events\n  - trace events embedded in function tracer output and other plugins\n  - user-defined, per tracepoint filter expressions\n  ...\n\nCons:\n\n  - no dev_t info for the output of plug, unplug_timer and unplug_io events.\n    no dev_t info for getrq and sleeprq events if bio \u003d\u003d NULL.\n    no dev_t info for rq_abort,...,rq_requeue events if rq-\u003erq_disk \u003d\u003d NULL.\n\n    This is mainly because we can\u0027t get the deivce from a request queue.\n    But this may change in the future.\n\n  - A packet command is converted to a string in TP_assign, not TP_print.\n    While blktrace do the convertion just before output.\n\n    Since pc requests should be rather rare, this is not a big issue.\n\n  - In blktrace, an event can have 2 different print formats, but a TRACE_EVENT\n    has a unique format, which means we have some unused data in a trace entry.\n\n    The overhead is minimized by using __dynamic_array() instead of __array().\n\nI\u0027ve benchmarked the ioctl blktrace vs the splice based TRACE_EVENT tracing:\n\n      dd                   dd + ioctl blktrace       dd + TRACE_EVENT (splice)\n1     7.36s, 42.7 MB/s     7.50s, 42.0 MB/s          7.41s, 42.5 MB/s\n2     7.43s, 42.3 MB/s     7.48s, 42.1 MB/s          7.43s, 42.4 MB/s\n3     7.38s, 42.6 MB/s     7.45s, 42.2 MB/s          7.41s, 42.5 MB/s\n\nSo the overhead of tracing is very small, and no regression when using\nthose trace events vs blktrace.\n\nAnd the binary output of TRACE_EVENT is much smaller than blktrace:\n\n # ls -l -h\n -rw-r--r-- 1 root root 8.8M 06-09 13:24 sda.blktrace.0\n -rw-r--r-- 1 root root 195K 06-09 13:24 sda.blktrace.1\n -rw-r--r-- 1 root root 2.7M 06-09 13:25 trace_splice.out\n\nFollowing are some comparisons between TRACE_EVENT and blktrace:\n\nplug:\n  kjournald-480   [000]   303.084981: block_plug: [kjournald]\n  kjournald-480   [000]   303.084981:   8,0    P   N [kjournald]\n\nunplug_io:\n  kblockd/0-118   [000]   300.052973: block_unplug_io: [kblockd/0] 1\n  kblockd/0-118   [000]   300.052974:   8,0    U   N [kblockd/0] 1\n\nremap:\n  kjournald-480   [000]   303.085042: block_remap: 8,0 W 102736992 + 8 \u003c- (8,8) 33384\n  kjournald-480   [000]   303.085043:   8,0    A   W 102736992 + 8 \u003c- (8,8) 33384\n\nbio_backmerge:\n  kjournald-480   [000]   303.085086: block_bio_backmerge: 8,0 W 102737032 + 8 [kjournald]\n  kjournald-480   [000]   303.085086:   8,0    M   W 102737032 + 8 [kjournald]\n\ngetrq:\n  kjournald-480   [000]   303.084974: block_getrq: 8,0 W 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084975:   8,0    G   W 102736984 + 8 [kjournald]\n\n  bash-2066  [001]  1072.953770:   8,0    G   N [bash]\n  bash-2066  [001]  1072.953773: block_getrq: 0,0 N 0 + 0 [bash]\n\nrq_complete:\n  konsole-2065  [001]   300.053184: block_rq_complete: 8,0 W () 103669040 + 16 [0]\n  konsole-2065  [001]   300.053191:   8,0    C   W 103669040 + 16 [0]\n\n  ksoftirqd/1-7   [001]  1072.953811:   8,0    C   N (5a 00 08 00 00 00 00 00 24 00) [0]\n  ksoftirqd/1-7   [001]  1072.953813: block_rq_complete: 0,0 N (5a 00 08 00 00 00 00 00 24 00) 0 + 0 [0]\n\nrq_insert:\n  kjournald-480   [000]   303.084985: block_rq_insert: 8,0 W 0 () 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084986:   8,0    I   W 102736984 + 8 [kjournald]\n\nChangelog from v2 -\u003e v3:\n\n- use the newly introduced __dynamic_array().\n\nChangelog from v1 -\u003e v2:\n\n- use __string() instead of __array() to minimize the memory required\n  to store hex dump of rq-\u003ecmd().\n\n- support large pc requests.\n\n- add missing blk_fill_rwbs_rq() in block_rq_requeue TRACE_EVENT.\n\n- some cleanups.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2DF669.5070905@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f57a8a1911342265e7acdc190333c4e9235a6632",
      "tree": "db7aecf9dc26311068a48da77022e0377bf5d3d6",
      "parents": [
        "1f8a6a10fb9437eac3f516ea4324a19087872f30"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jun 05 14:11:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 12:33:30 2009 -0400"
      },
      "message": "ring-buffer: fix ret in rb_add_time_stamp\n\nThe update of ret got mistakenly added to the if statement of\nrb_try_to_discard. The variable ret should be 1 on commit and zero\notherwise.\n\n[ Impact: fix compiler warning and real bug ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "1f8a6a10fb9437eac3f516ea4324a19087872f30"
}
