)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "1f8a6a10fb9437eac3f516ea4324a19087872f30",
      "tree": "944f73519ef205c3baccd130d93ed70f7e7bc790",
      "parents": [
        "918143e8b7d6153d7a83a3f854323407939f4a7e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Jun 08 18:18:39 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 08 18:50:20 2009 -0400"
      },
      "message": "ring-buffer: pass in lockdep class key for reader_lock\n\nOn Sun, 7 Jun 2009, Ingo Molnar wrote:\n\u003e Testing tracer sched_switch: \u003c6\u003eStarting ring buffer hammer\n\u003e PASSED\n\u003e Testing tracer sysprof: PASSED\n\u003e Testing tracer function: PASSED\n\u003e Testing tracer irqsoff:\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e PASSED\n\u003e Testing tracer preemptoff: PASSED\n\u003e Testing tracer preemptirqsoff: [ INFO: possible recursive locking detected ]\n\u003e PASSED\n\u003e Testing tracer branch: 2.6.30-rc8-tip-01972-ge5b9078-dirty #5760\n\u003e ---------------------------------------------\n\u003e rb_consumer/431 is trying to acquire lock:\n\u003e  (\u0026cpu_buffer-\u003ereader_lock){......}, at: [\u003cc109eef7\u003e] ring_buffer_reset_cpu+0x37/0x70\n\u003e\n\u003e but task is already holding lock:\n\u003e  (\u0026cpu_buffer-\u003ereader_lock){......}, at: [\u003cc10a019e\u003e] ring_buffer_consume+0x7e/0xc0\n\u003e\n\u003e other info that might help us debug this:\n\u003e 1 lock held by rb_consumer/431:\n\u003e  #0:  (\u0026cpu_buffer-\u003ereader_lock){......}, at: [\u003cc10a019e\u003e] ring_buffer_consume+0x7e/0xc0\n\nThe ring buffer is a generic structure, and can be used outside of\nftrace. If ftrace traces within the use of the ring buffer, it can produce\nfalse positives with lockdep.\n\nThis patch passes in a static lock key into the allocation of the ring\nbuffer, so that different ring buffers will have their own lock class.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1244477919.13761.9042.camel@twins\u003e\n\n[ store key in ring buffer descriptor ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "918143e8b7d6153d7a83a3f854323407939f4a7e",
      "tree": "34c0b1434516d146fc3811a6d071b052dd59342b",
      "parents": [
        "64edbc562034f2ec3fce382cb208fab40586d005",
        "563af16c30ede41eda2d614195d88e07f7c7103d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 16:50:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 16:50:29 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "64edbc562034f2ec3fce382cb208fab40586d005",
      "tree": "7fbfaaea9467d14a1a6ac5667ce01be5ccb9b635",
      "parents": [
        "43bd1236234cacbc18d1476a9b57e7a306efddf5",
        "0f6ce3de4ef6ff940308087c49760d068851c1a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 04 13:59:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 04 13:59:40 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 into tracing/core\n\nMerge reason: this mini-topic had outstanding problems that delayed\n              its merge, so it does not fast-forward.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "563af16c30ede41eda2d614195d88e07f7c7103d",
      "tree": "a56b4f3339b8850b8f1fd9064bb99d50cd99aa79",
      "parents": [
        "56d8bd3f0b98972312cad683947ec90b21011199"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 03 11:10:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 11:10:44 2009 -0400"
      },
      "message": "tracing: add annotation to what type of stack trace is recorded\n\nThe current method of printing out a stack trace is to add a new line\nand print out the trace:\n\n    yum-updatesd-3120  [002]   573.691303:\n \u003d\u003e do_softirq\n \u003d\u003e irq_exit\n \u003d\u003e smp_apic_timer_interrupt\n \u003d\u003e apic_timer_interrupt\n\nThis looks a bit awkward, and if we have both stack and user stack traces\nrunning, it would be nice to have a title to tell them apart, although\nit is easy to tell by the output.\n\nThis patch adds an annotation to the start of the stack traces:\n\n            init-1     [003]   929.304979: \u003cstack trace\u003e\n \u003d\u003e user_path_at\n \u003d\u003e vfs_fstatat\n \u003d\u003e vfs_stat\n \u003d\u003e sys_newstat\n \u003d\u003e system_call_fastpath\n\n             cat-3459  [002]  1016.824040: \u003cuser stack trace\u003e\n \u003d\u003e  \u003c0000003aae6c0250\u003e\n \u003d\u003e  \u003c00007ffff4b06ae4\u003e\n \u003d\u003e  \u003c69636172742f6775\u003e\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "56d8bd3f0b98972312cad683947ec90b21011199",
      "tree": "8ed2bb43d0f00923dd81b5b2c19c91b09e3977c6",
      "parents": [
        "048dc50c5e7eada19ebabbad70b7966d14283d41"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 03 14:52:03 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:29:48 2009 -0400"
      },
      "message": "tracing: fix multiple use of __print_flags and __print_symbolic\n\nHere is an updated patch to include the extra call to\ntrace_seq_init() as requested. This is vs. the latest\n-tip tree and fixes the use of multiple __print_flags\nand __print_symbolic in a single tracer. Also tested\nto ensure its working now:\n\nmount.gfs2-2534  [000]   235.850587: gfs2_glock_queue: 8.7 glock 1:2 dequeue PR\nmount.gfs2-2534  [000]   235.850591: gfs2_demote_rq: 8.7 glock 1:0 demote EX to NL flags:DI\nmount.gfs2-2534  [000]   235.850591: gfs2_glock_queue: 8.7 glock 1:0 dequeue EX\nglock_workqueue-2529  [000]   235.850666: gfs2_glock_state_change: 8.7 glock 1:0 state EX \u003d\u003e NL tgt:NL dmt:NL flags:lDpI\nglock_workqueue-2529  [000]   235.850672: gfs2_glock_put: 8.7 glock 1:0 state NL \u003d\u003e IV flags:I\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nLKML-Reference: \u003c1244037123.29604.603.camel@localhost.localdomain\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "048dc50c5e7eada19ebabbad70b7966d14283d41",
      "tree": "2d81fa88cfb5ebd5ee2622b4eb7632b1f369a567",
      "parents": [
        "f11b3f4e2932bfdcfc458ab8d1ece62724ceabfc"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Wed Jun 03 16:01:30 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:25:30 2009 -0400"
      },
      "message": "tracing/events: fix output format of user stack\n\nAccording to \"events/ftrace/user_stack/format\", fix the output of\nuser stack.\n\nbefore fix:\n\n  sh-1073  [000]    31.137561:  \u003cb7f274fe\u003e \u003c-  \u003c0804e33c\u003e \u003c-  \u003c080835c1\u003e\n\nafter fix:\n\n  sh-1072  [000]    37.039329:\n \u003d\u003e  \u003cb7f8a4fe\u003e\n \u003d\u003e  \u003c0804e33c\u003e\n \u003d\u003e  \u003c080835c1\u003e\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nLKML-Reference: \u003c1244016090-7814-3-git-send-email-walimisdev@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f11b3f4e2932bfdcfc458ab8d1ece62724ceabfc",
      "tree": "7cfd2a8b955b27eea4c0d5860e9a92fdc91b8024",
      "parents": [
        "083a63b48e4dd0a6a2d44216720076dc81ebb255"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Wed Jun 03 16:01:29 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:25:15 2009 -0400"
      },
      "message": "tracing/events: fix output format of kernel stack\n\nAccording to \"events/ftrace/kernel_stack/format\", output format of\nkernel stack should use \"\u003d\u003e\" instead of \"\u003c\u003d\".\n\nThe second problem is that we shouldn\u0027t skip the first entry in the stack,\nalthough it seems to be duplicated when used in the \"function\" tracer,\nbut events also use it. If we skip the first one, we will drop the topmost\nentry of the stack.\n\nThe last problem is that if the last entry is ULONG_MAX(0xffffffff), we should\ndrop it, otherwise it will print a NULL name line.\n\nbefore fix:\n\n      sh-1072  [000]   26.957239: sched_process_fork: parent sh:1072 child sh:1073\n      sh-1072  [000]   26.957262:\n \u003c\u003d syscall_call\n \u003c\u003d\n      sh-1072  [000]   26.957744: sched_switch: task sh:1072 [120] (R) \u003d\u003d\u003e sh:1073 [120]\n      sh-1072  [000]   26.957752:\n \u003c\u003d preempt_schedule\n \u003c\u003d wake_up_new_task\n \u003c\u003d do_fork\n \u003c\u003d sys_clone\n \u003c\u003d syscall_call\n \u003c\u003d\n\nAfter fix:\n\n      sh-1075  [000]    39.791848: sched_process_fork: parent sh:1075  child sh:1076\n      sh-1075  [000]    39.791871:\n \u003d\u003e sys_clone\n \u003d\u003e syscall_call\n      sh-1075  [000]    39.792713: sched_switch: task sh:1075 [120] (R) \u003d\u003d\u003e sh:1076 [120]\n      sh-1075  [000]    39.792722:\n \u003d\u003e schedule\n \u003d\u003e preempt_schedule\n \u003d\u003e wake_up_new_task\n \u003d\u003e do_fork\n \u003d\u003e sys_clone\n \u003d\u003e syscall_call\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nLKML-Reference: \u003c1244016090-7814-2-git-send-email-walimisdev@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "083a63b48e4dd0a6a2d44216720076dc81ebb255",
      "tree": "c63fe5fed8b44538ecb6870cbe99c45d32915f9e",
      "parents": [
        "ea05b57cc19234d8de9887c8a32c2e58e84b56ba"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Wed Jun 03 16:01:28 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:24:44 2009 -0400"
      },
      "message": "tracing/trace_stack: fix the number of entries in the header\n\nThe last entry in the stack_dump_trace is ULONG_MAX, which is not\na valid entry, but max_stack_trace.nr_entries has accounted for it.\nSo when printing the header, we should decrease it by one.\nBefore fix, print as following, for example:\n\n\tDepth    Size   Location    (53 entries)\t\u003c--- should be 52\n\t-----    ----   --------\n  0)     3264     108   update_wall_time+0x4d5/0x9a0\n  ...\n 51)       80      80   syscall_call+0x7/0xb\n ^^^\n   it\u0027s correct.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nLKML-Reference: \u003c1244016090-7814-1-git-send-email-walimisdev@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ea05b57cc19234d8de9887c8a32c2e58e84b56ba",
      "tree": "6153db3dab161d495207114359b8c09944567f0c",
      "parents": [
        "edd813bffc62a980bb4fb9b1243f31c1cce78da3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 03 09:30:10 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:15:25 2009 -0400"
      },
      "message": "ring-buffer: discard timestamps that are at the start of the buffer\n\nEvery buffer page in the ring buffer includes its own time stamp.\nWhen an event is recorded to the ring buffer with a delta time greater\nthan what can be held in the event header, a time stamp event is created.\n\nIf the the create timestamp falls over to the next buffer page, it is\nredundant because the buffer page holds a full time stamp. This patch\nwill try to discard the time stamp when it falls to the start of the\nnext page.\n\nThis change also fixes a issues with disarding events. If most events are\ndiscarded, timestamps will start to creep into the ring buffer. If we\ndo not discard the timestamps then they can fill up the ring buffer over\ntime and waste space.\n\nThis change will keep time stamps from filling up over another page. If\nsomething is recorded in the buffer page, and the rest is filtered, then\nthe time stamps can only fill up to the end of the page.\n\n[ Impact: prevent time stamps from filling ring buffer ]\n\nReported-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "edd813bffc62a980bb4fb9b1243f31c1cce78da3",
      "tree": "45dd8b0ca7b74f05bd545a1c3c7c4d2137f1b1d0",
      "parents": [
        "a2023556409cf7fec5d67a26f7fcfa57c5a4086d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 23:00:53 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:15:22 2009 -0400"
      },
      "message": "ring-buffer: try to discard unneeded timestamps\n\nThere are times that a race may happen that we add a timestamp in a\nnested write. This timestamp would just contain a zero delta and serves\nno purpose.\n\nNow that we have a way to discard events, this patch will try to discard\nthe timestamp instead of just wasting the space in the ring buffer.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a2023556409cf7fec5d67a26f7fcfa57c5a4086d",
      "tree": "85d8824dd8989c62dc8f28feb2ee79f570f6872f",
      "parents": [
        "0f6ce3de4ef6ff940308087c49760d068851c1a7"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Tue Jun 02 17:06:54 2009 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:15:06 2009 -0400"
      },
      "message": "ring-buffer: fix bug in ring_buffer_discard_commit\n\nThere\u0027s a bug in ring_buffer_discard_commit.  The wrong\npointer is being compared in order to check if the event\ncan be freed from the buffer rather than discarded\n(i.e. marked as PAD).\n\nI noticed this when I was working on duration filtering.\nThe bug is not deadly - it just results in lots of wasted\nspace in the buffer.  All filtered events are left in\nthe buffer and marked as discarded, rather than being\nremoved from the buffer to make space for other events.\n\nUnfortunately, when I fixed this bug, I got errors doing a\nfiltered function trace.  Multiple TIME_EXTEND\nevents pile up in the buffer, and trigger the\nfollowing loop overage warning in rb_iter_peek():\n\nagain:\n\t...\n\tif (RB_WARN_ON(cpu_buffer, ++nr_loops \u003e 10))\n\t\treturn NULL;\n\nI\u0027m not sure what the best way is to fix this. I don\u0027t\nknow if I should extend the loop threshhold, or if I should\nmake the test more complex (ignore TIME_EXTEND\nevents), or just get rid of this loop check completely.\n\nNote that if I implement a workaround for this, then I\nsee another problem from rb_advance_iter().  I haven\u0027t\ntracked that one down yet.\n\nIn general, it seems like the case of removing filtered\nevents has not been working properly, and so some assumptions\nabout buffer invariant conditions need to be revisited.\n\nHere\u0027s the patch for the simple fix:\n\nCompare correct pointer for checking if an event can be\nfreed rather than left as discarded in the buffer.\n\nSigned-off-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nLKML-Reference: \u003c4A25BE9E.5090909@am.sony.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "84047e360af0394ac5861d433f26bbcf30f77dd1",
      "tree": "55848e2ca4856a64b348a57ecca495c2f065aa0f",
      "parents": [
        "f7e8b616ed1cc6f790b82324bce8a2a60295e5c2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 16:51:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 16:51:55 2009 -0400"
      },
      "message": "function-graph: always initialize task ret_stack\n\nOn creating a new task while running the function graph tracer, if\nwe fail to allocate the ret_stack, and then fail the fork, the\ncode will free the parent ret_stack. This is because the child\nduplicated the parent and currently points to the parent\u0027s ret_stack.\n\nThis patch always initializes the task\u0027s ret_stack to NULL.\n\n[ Impact: prevent crash of parent on low memory during fork ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c01624a2a40f8a4ddf6449b65c9b1c418d0e72",
      "tree": "eeff81aa0fa56ba1f2c180d4ec6e64cb31af898e",
      "parents": [
        "82310a3272d5a2a7652f5649ad8a55f58c8f74d9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 14:01:19 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 14:42:17 2009 -0400"
      },
      "message": "function-graph: add memory barriers for accessing task\u0027s ret_stack\n\nThe code that handles the tasks ret_stack allocation for every task\nassumes that only an interrupt can cause issues (even though interrupts\nare disabled).\n\nIn reality, the code is allocating the ret_stack for tasks that may be\nrunning on other CPUs and there are not efficient memory barriers to\nhandle this case.\n\n[ Impact: prevent crash due to using of uninitialized ret_stack variables ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "82310a3272d5a2a7652f5649ad8a55f58c8f74d9",
      "tree": "c909c7a3f1fd3430f64be1d4aa8aff84fdf45b04",
      "parents": [
        "179c498ae2998461fe436437a74dc29036fc7dcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 12:26:07 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 14:41:50 2009 -0400"
      },
      "message": "function-graph: enable the stack after initialization of other variables\n\nThe function graph tracer checks if the task_struct has ret_stack defined\nto know if it is OK or not to use it. The initialization is done for\nall tasks by one process, but the idle tasks use the same initialization\nused by new tasks.\n\nIf an interrupt happens on an idle task that just had the ret_stack\ncreated, but before the rest of the initialization took place, then\nwe can corrupt the return address of the functions.\n\nThis patch moves the setting of the task_struct\u0027s ret_stack to after\nthe other variables have been initialized.\n\n[ Impact: prevent kernel panic on idle task when starting function graph ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "179c498ae2998461fe436437a74dc29036fc7dcc",
      "tree": "7794227a9cc45c2ec22d3e3b3062a96d34e8b0b9",
      "parents": [
        "88fc86c283d9c3854e67e4155808027bc2519eb6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 12:03:19 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 12:03:19 2009 -0400"
      },
      "message": "function-graph: only allocate init tasks if it was not already done\n\nWhen the function graph tracer is enabled, it calls the initialization\nneeded for the init tasks that would be called on all created tasks.\n\nThe problem is that this is called every time the function graph tracer\nis enabled, and the ret_stack is allocated for the idle tasks each time.\nThus, the old ret_stack is lost and a memory leak is created.\n\nThis is also dangerous because if an interrupt happened on another CPU\nwith the init task and the ret_stack is replaced, we then lose all the\nreturn pointers for the interrupt, and a crash would take place.\n\n[ Impact: fix memory leak and possible crash due to race ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0f6ce3de4ef6ff940308087c49760d068851c1a7",
      "tree": "26a732ee4dd5b0f5612f0385893ec483c6ba4ab3",
      "parents": [
        "112f38a7e36e9d688b389507136bf3af3e6d159b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 01 21:51:28 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:26:23 2009 -0400"
      },
      "message": "ftrace: do not profile functions when disabled\n\nA race was found that if one were to enable and disable the function\nprofiler repeatedly, then the system can panic. This was because a profiled\nfunction may be preempted just before disabling interrupts. While\nthe profiler is disabled and then reenabled, the preempted function\ncould start again, and access the hash as it is being initialized.\n\nThis just adds a check in the irq disabled part to check if the profiler\nis enabled, and if it is not then it will just exit.\n\nWhen the system is disabled, the profile_enabled variable is cleared\nbefore calling the unregistering of the function profiler. This\nunregistering calls stop machine which also acts as a synchronize schedule.\n\n[ Impact: fix panic in enabling/disabling function profiler ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "112f38a7e36e9d688b389507136bf3af3e6d159b",
      "tree": "e63fd02a143c57b5a786351e4f2643f2104e2346",
      "parents": [
        "1d080d6c3141623c92caaebe20e847cb99ccbb60"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 01 15:16:05 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:26:02 2009 -0400"
      },
      "message": "tracing: make trace pipe recognize latency format flag\n\nThe trace_pipe did not recognize the latency format flag and would produce\ndifferent output than the trace file. The problem was partly due that\nthe trace flags in the iterator was not set as well as the trace_pipe\nzeros out part of the iterator (including the flags) to be able to use\nthe same routines as the trace file. trace_flags of the iterator should\nnot cause any problems when not zeroed out by for trace_pipe.\n\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ec081ddc3d90aab35bc0de19a358b964978837cf",
      "tree": "a8c4128a3eb8e5917cc67cd0a3aee8f1e93c9205",
      "parents": [
        "7fcb7c472f455d1711eb5a7633204dba8800a6d6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 01 15:53:35 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:25:29 2009 -0400"
      },
      "message": "tracing: add exports to use __print_symbolic and __print_flags from a module\n\nA patch to allow the use of __print_symbolic and __print_flags\nfrom a module. This allows the current GFS2 tracing patch to\nbuild.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nLKML-Reference: \u003c1243868015.29604.542.camel@localhost.localdomain\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7fcb7c472f455d1711eb5a7633204dba8800a6d6",
      "tree": "ba64de513bdbe5550c6fc08078a356359830ec99",
      "parents": [
        "a9c1c3abe1160a5632e48c929b02b740556bf423"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 01 15:35:46 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:25:15 2009 -0400"
      },
      "message": "tracing/events: introduce __dynamic_array()\n\n__string() is limited:\n\n  - it\u0027s a char array, but we may want to define array with other types\n  - a source string should be available, but we may just know the string size\n\nWe introduce __dynamic_array() to break those limitations, and __string()\nbecomes a wrapper of it. As a side effect, now __get_str() can be used\nin TP_fast_assign but not only TP_print.\n\nTake XFS for example, we have the string length in the dirent, but the\nstring itself is not NULL-terminated, so __dynamic_array() can be used:\n\nTRACE_EVENT(xfs_dir2,\n\tTP_PROTO(struct xfs_da_args *args),\n\tTP_ARGS(args),\n\n\tTP_STRUCT__entry(\n\t\t__field(int, namelen)\n\t\t__dynamic_array(char, name, args-\u003enamelen + 1)\n\t\t...\n\t),\n\n\tTP_fast_assign(\n\t\tchar *name \u003d __get_str(name);\n\n\t\tif (args-\u003enamelen)\n\t\t\tmemcpy(name, args-\u003ename, args-\u003enamelen);\n\t\tname[args-\u003enamelen] \u003d \u0027\\0\u0027;\n\n\t\t__entry-\u003enamelen \u003d args-\u003enamelen;\n\t),\n\n\tTP_printk(\"name %.*s namelen %d\",\n\t\t  __entry-\u003enamelen ? __get_str(name) : NULL\n\t\t  __entry-\u003enamelen)\n);\n\n[ Impact: allow defining dynamic size arrays ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2384D2.3080403@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "897f17a65389a26509bd0c79a9812d1c9ea8ea6f",
      "tree": "ec23bdc97840581c6f4881f6e427c66d72a1269c",
      "parents": [
        "5e0a093910876882f91f1d4b8a1635a099e6c7ba"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 16:31:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:55 2009 -0400"
      },
      "message": "tracing: combine the default tracers into one config\n\nBoth event tracer and sched switch plugin are selected by default\nby all generic tracers. But if no generic tracer is enabled, their options\nappear. But ether one of them will select the other, thus it only\nmakes sense to have the default tracers be selected by one option.\n\n[ Impact: clean up kconfig menu ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e0a093910876882f91f1d4b8a1635a099e6c7ba",
      "tree": "2e9fb5caa629c2f1f77f82a78863366b82ad05f6",
      "parents": [
        "2af15d6a44b871ad4c2a651302374cde8f335480"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 15:50:13 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:30 2009 -0400"
      },
      "message": "tracing: fix config options to not show when automatically selected\n\nThere are two options that are selected by all tracers, but we want\nto have those options available when no tracer is selected. These are\n\n The event tracer and sched switch tracer.\n\nThe are enabled by all tracers, but if a tracer is not selected we want\nthe options to appear. All tracers including them select TRACING.\nThus what we would like to do is:\n\n  config EVENT_TRACER\n\tbool \"prompt\"\n\tdepends on TRACING\n\tselect TRACING\n\nBut that gives us a bug in the kbuild system since we just created a\ncircular dependency. We only want the prompt to show when TRACING is off.\n\nThis patch adds GENERIC_TRACER that all tracers will select instead of\nTRACING. The two options (sched switch and event tracer) will select\nTRACING directly and depend on !GENERIC_TRACER. This solves the cicular\ndependency.\n\n[ Impact: hide options that are selected by default ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2af15d6a44b871ad4c2a651302374cde8f335480",
      "tree": "39f06d511e3e1d1970fe4571128549c1c26230c1",
      "parents": [
        "f2aebaee653a35b01c3665de2cbb1e31456b8ea8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 13:37:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:10 2009 -0400"
      },
      "message": "ftrace: add kernel command line function filtering\n\nWhen using ftrace\u003dfunction on the command line to trace functions\non boot up, one can not filter out functions that are commonly called.\n\nThis patch adds two new ftrace command line commands.\n\n  ftrace_notrace\u003dfunction-list\n  ftrace_filter\u003dfunction-list\n\nWhere function-list is a comma separated list of functions to filter.\nThe ftrace_notrace will make the functions listed not be included\nin the function tracing, and ftrace_filter will only trace the functions\nlisted.\n\nThese two act the same as the debugfs/tracing/set_ftrace_notrace and\ndebugfs/tracing/set_ftrace_filter respectively.\n\nThe simple glob expressions that are allowed by the filter files can also\nbe used by the command line interface.\n\n\tftrace_notrace\u003drcu*,*lock,*spin*\n\nWill not trace any function that starts with rcu, ends with lock, or has\nthe word spin in it.\n\nNote, if the self tests are enabled, they may interfere with the filtering\nset by the command lines.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "43bd1236234cacbc18d1476a9b57e7a306efddf5",
      "tree": "087fd59a2f98e85fdf017267998a7364a47536c3",
      "parents": [
        "dbd3fbdfeecfad4e71139db05d72560c3583e2a9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 30 04:25:30 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:18:33 2009 +0200"
      },
      "message": "tracing/stat: remove unappropriate safe walk on list\n\nregister_stat_tracer() uses list_for_each_entry_safe\nto check whether a tracer is already present in the list.\nBut we don\u0027t delete anything from the list here, so\nwe don\u0027t need the safe version\n\n[ Impact: cleanup list use is stat tracing ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "dbd3fbdfeecfad4e71139db05d72560c3583e2a9",
      "tree": "51cf7d906bd73d91398dcc1142812f244fb0c9f6",
      "parents": [
        "e16228069083a2f6b94383ac5739aea7a0f38ce4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 27 11:42:46 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:18:18 2009 +0200"
      },
      "message": "tracing/stat: do some cleanups\n\n- remove duplicate code in stat_seq_init()\n- update comments to reflect the change from stat list to stat rbtree\n\n[ Impact: clean up ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e16228069083a2f6b94383ac5739aea7a0f38ce4",
      "tree": "97bf6074fff3ea29daa732f92d29472cf803165a",
      "parents": [
        "b3dd7ba7d862707800c7ac45068f14ade2b65155"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 27 11:04:48 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:18:03 2009 +0200"
      },
      "message": "tracing/stat: remember to free root node\n\nWhen closing a trace_stat file, we destroy the rbtree constructed during\nfile open, but there is memory leak that the root node is not freed.\n\n[ Impact: fix memory leak when closing a trace_stat file ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b3dd7ba7d862707800c7ac45068f14ade2b65155",
      "tree": "2b39cf635ea0c8acb52bea38edd6a8db843644d4",
      "parents": [
        "8f184f27300f66f6dcc8296c2dae7a1fbe8429c9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 27 11:04:26 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:17:49 2009 +0200"
      },
      "message": "tracing/stat: change dummpy_cmp() to return -1\n\nCurrently the output of trace_stat/workqueues is totally reversed:\n\n # cat /debug/tracing/trace_stat/workqueues\n    ...\n    1       17       17      210       37   `-blk_unplug_work+0x0/0x57\n    1     3779     3779      181       11   |-cfq_kick_queue+0x0/0x2f\n    1     3796     3796                     kblockd/1:120\n    ...\n\nThe correct output should be:\n\n    1     3796     3796                     kblockd/1:120\n    1     3779     3779      181       11   |-cfq_kick_queue+0x0/0x2f\n    1       17       17      210       37   `-blk_unplug_work+0x0/0x57\n\nIt\u0027s caused by \"tracing/stat: replace linked list by an rbtree for\nsorting\"\n(53059c9b67a62a3dc8c80204d3da42b9267ea5a0).\n\ndummpy_cmp() should return -1, so rb_node will always be inserted as\nright-most node in the rbtree, thus we sort the output in ascending\norder.\n\n[ Impact: fix the output of trace_stat/workqueues ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "8f184f27300f66f6dcc8296c2dae7a1fbe8429c9",
      "tree": "a21aa4d88a11217bdd9eaaf31b2189d8b6b45b5b",
      "parents": [
        "0d64f8342de26d02451900b1aad94716fe92c4ab"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 16 06:24:36 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:17:35 2009 +0200"
      },
      "message": "tracing/stat: replace linked list by an rbtree for sorting\n\nWhen the stat tracing framework prepares the entries from a tracer\nto output them to the user, it starts by computing a linear sort\nthrough a linked list to give the entries ordered by relevance\nto the user.\n\nThis is quite ugly and causes a small latency when we begin to\nread the file.\n\nThis patch changes that by turning the linked list into a red-black\ntree. Athough the whole iteration using the start and next tracer\ncallbacks while opening the file remain the same, it is now much\nmore fast and scalable.\n\nThe rbtree guarantees O(log(n)) insertions whereas a linked\nlist with linear sorting brought us a O(n) despair. Now the\n(visible) latency has disapeared.\n\n[ Impact: kill the latency while starting to read a stat tracer file ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "0d64f8342de26d02451900b1aad94716fe92c4ab",
      "tree": "b74741815a673be584141dcd3691daaeea0fc053",
      "parents": [
        "f3c4ae26e93d354152196b62797ba86ad86dd0cc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 16 05:58:49 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:17:17 2009 +0200"
      },
      "message": "tracing/stat: replace trace_stat_session by stat_session\n\nThe \"trace\" prefix in struct trace_stat_session type is annoying while\nreading the trace_stat.c file. It makes the lines longer, and\nis not that much useful to explain the sense of this type.\n\nJust keep \"struct stat_session\" for this type.\n\n[ Impact: make the code a bit more readable ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "f3c4ae26e93d354152196b62797ba86ad86dd0cc",
      "tree": "62a6ea34e64bffaaa192d05c42409f4ef1d361d5",
      "parents": [
        "b8867164f05791a6b5363bd51c1274e03600886e"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon Apr 20 15:02:17 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:14:26 2009 +0200"
      },
      "message": "trace_workqueue: remove blank line between each cpu\n\nThe blankline between each cpu\u0027s workqueue stat is not necessary, because\nthe cpu number is enough to part them by eye.\nOld style also caused a blankline below headline, and made code complex\nby using lock, disableirq and get cpu var.\n\nOld style:\n # CPU  INSERTED  EXECUTED   NAME\n # |      |         |          |\n\n   0   8644       8644       events/0\n   0      0          0       cpuset\n   ...\n   0      1          1       kdmflush\n\n   1  35365      35365       events/1\n   ...\n\nNew style:\n # CPU  INSERTED  EXECUTED   NAME\n # |      |         |          |\n\n   0   8644       8644       events/0\n   0      0          0       cpuset\n   ...\n   0      1          1       kdmflush\n   1  35365      35365       events/1\n   ...\n\n[ Impact: provide more readable code ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b8867164f05791a6b5363bd51c1274e03600886e",
      "tree": "781be4716c204703143db86606372b64db6dc835",
      "parents": [
        "1fdfca9c577aac96a559c1ea68f5c9156f17d636"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon Apr 20 14:59:36 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:13:46 2009 +0200"
      },
      "message": "trace_workqueue: remove cpu_workqueue_stats-\u003efirst_entry\n\ncpu_workqueue_stats-\u003efirst_entry is useless because we can retrieve the\nheader of a cpu workqueue using:\nif (\u0026cpu_workqueue_stats-\u003elist \u003d\u003d workqueue_cpu_stat(cpu)-\u003elist.next)\n\n[ Impact: cleanup ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "1fdfca9c577aac96a559c1ea68f5c9156f17d636",
      "tree": "fbbeeba504037440e42cce056781d56ecebfc4b1",
      "parents": [
        "fb39125fd79a25c5002f3b45cf4c80e3fa6b961b"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon Apr 20 14:58:26 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:13:05 2009 +0200"
      },
      "message": "trace_workqueue: use list_for_each_entry() instead of list_for_each_entry_safe()\n\nNo need to use list_for_each_entry_safe() in iteration without deleting\nany node, we can use list_for_each_entry() instead.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "fb39125fd79a25c5002f3b45cf4c80e3fa6b961b",
      "tree": "96a9d274896f94306bc4d4972eca2153934f4814",
      "parents": [
        "f2aebaee653a35b01c3665de2cbb1e31456b8ea8"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Apr 17 15:15:51 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 01:10:40 2009 +0200"
      },
      "message": "ftrace, workqueuetrace: make workqueue tracepoints use TRACE_EVENT macro\n\nv3: zhaolei@cn.fujitsu.com: Change TRACE_EVENT definition to new format\n    introduced by Steven Rostedt: consolidate trace and trace_event headers\nv2: kosaki@jp.fujitsu.com: print the function names instead of addr, and zap\n    the work addr\nv1: zhaolei@cn.fujitsu.com: Make workqueue tracepoints use TRACE_EVENT macro\n\nTRACE_EVENT is a more generic way to define tracepoints.\nDoing so adds these new capabilities to the tracepoints:\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\nThen, this patch converts DEFINE_TRACE to TRACE_EVENT in workqueue related\ntracepoints.\n\n[ Impact: expand workqueue tracer to events tracing ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "5b6045a906f48d37591365c5dcdd6d1d146bfd4a",
      "tree": "33a7b9513c84e442eda0159ee294a02f33589f55",
      "parents": [
        "c2adae0970ca1db8adb92fb56ae3bcabd916e8bd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue May 26 17:28:02 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 28 01:21:03 2009 +0200"
      },
      "message": "trace: disable preemption before taking raw spinlocks\n\ns390 code uses smp_processor_id() in __raw_spin_lock() code which\nreveals that a (raw) spinlock is taken without preemption disabled.\nThis can potentially deadlock.\n\nTo fix this explicitly disable and enable preemption.\n\nBUG: using smp_processor_id() in preemptible [00000000] code: cat/2278\ncaller is trace_find_cmdline+0x40/0xfc\nCPU: 0 Not tainted 2.6.30-rc7-dirty #39\nProcess cat (pid: 2278, task: 000000003faedb68, ksp: 000000003b33b988)\n000000003b33b988 000000003b33bae0 0000000000000002 0000000000000000\n       000000003b33bb80 000000003b33baf8 000000003b33baf8 00000000000175d6\n       0000000000000001 000000003b33b988 000000003f9b0000 000000000000000b\n       000000000000000c 000000003b33bb40 000000003b33bae0 0000000000000000\n       0000000000000000 00000000000175d6 000000003b33bae0 000000003b33bb28\nCall Trace:\n([\u003c00000000000174b2\u003e] show_trace+0x112/0x170)\n [\u003c0000000000017582\u003e] show_stack+0x72/0x100\n [\u003c0000000000441538\u003e] dump_stack+0xc8/0xd8\n [\u003c000000000025c350\u003e] debug_smp_processor_id+0x114/0x130\n [\u003c00000000000bf0e4\u003e] trace_find_cmdline+0x40/0xfc\n [\u003c00000000000c35d4\u003e] trace_print_context+0x58/0xac\n [\u003c00000000000bb676\u003e] print_trace_line+0x416/0x470\n [\u003c00000000000bc8fe\u003e] s_show+0x4e/0x428\n [\u003c000000000013834e\u003e] seq_read+0x36a/0x5d4\n [\u003c0000000000112a78\u003e] vfs_read+0xc8/0x174\n [\u003c0000000000112c58\u003e] SyS_read+0x74/0xc4\n [\u003c000000000002c7ae\u003e] sysc_noemu+0x10/0x16\n [\u003c000002000012436c\u003e] 0x2000012436c\n1 lock held by cat/2278:\n #0:  (\u0026p-\u003elock){+.+.+.}, at: [\u003c0000000000138056\u003e] seq_read+0x72/0x5d4\n\n[ Impact: fix preempt-unsafe raw spinlock ]\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "0f4fc29dd68dfab9c6ddd5d087d34a5b6818cb00",
      "tree": "af3d210c8db9adcf117580c949fb708badcb520b",
      "parents": [
        "62ba180e80f4194a498585ac0e4c07daa8ca08d1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 20 19:21:47 2009 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 20:31:50 2009 +0200"
      },
      "message": "tracing: add __print_symbolic to trace events\n\nThis patch adds __print_symbolic which is similar to __print_flags but\nworks for an enumeration type instead. That is, there is only a one to one\nmapping between the values and the symbols. When a match is made, then\nit is printed, otherwise the hex value is outputed.\n\n[ Impact: add interface for showing symbol names in events ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "be74b73a57645cc253d881ab0c1014eb64b9cf22",
      "tree": "83f14ae9a43fe98a1363d30d20d60245e1115382",
      "parents": [
        "0e907c99391362385c8e3af2c43b904dd1fd5d73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 26 20:25:22 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 20:25:22 2009 +0200"
      },
      "message": "tracing: add __print_flags for events\n\nDevelopers have been asking for the ability in the ftrace event tracer\nto display names of bits in a flags variable.\n\nInstead of printing out c2, it would be easier to read FOO|BAR|GOO,\nassuming that FOO is bit 1, BAR is bit 6 and GOO is bit 7.\n\nSome examples where this would be useful are the state flags in a context\nswitch, kmalloc flags, and even permision flags in accessing files.\n\n[\n  v2 changes include:\n\n  Frederic Weisbecker\u0027s idea of using a mask instead of bits,\n  thus we can output GFP_KERNEL instead of GPF_WAIT|GFP_IO|GFP_FS.\n\n  Li Zefan\u0027s idea of allowing the caller of __print_flags to add their\n  own delimiter (or no delimiter) where we can get for file permissions\n  rwx instead of r|w|x.\n]\n\n[\n  v3 changes:\n\n   Christoph Hellwig\u0027s idea of using an array instead of va_args.\n]\n\n[ Impact: better displaying of flags in trace output ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "0e907c99391362385c8e3af2c43b904dd1fd5d73",
      "tree": "86f1fc73644d4a7db5e1cbc96434aa89d02879cc",
      "parents": [
        "b11c53e12f94a46b50bccc7a1a953d7ca1d54a31"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon May 25 18:13:59 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 03:30:31 2009 +0200"
      },
      "message": "ftrace: clean up of using ftrace_event_enable_disable()\n\nAlways use ftrace_event_enable_disable() to enable/disable an event\nso that we can factorize out the event toggling code.\n\n[ Impact: factorize and cleanup event tracing code ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c4A14FDFE.2080402@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b11c53e12f94a46b50bccc7a1a953d7ca1d54a31",
      "tree": "a0d658e31ffd7f05834c6026874cd4120a35dd29",
      "parents": [
        "29fcefba8a2f0fea11e2b721fe174a1832801284"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon May 25 18:11:59 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 03:03:21 2009 +0200"
      },
      "message": "ftrace: Add task_comm support for trace_event\n\nIf we enable a trace event alone without any tracer running (such as\nfunction tracer, sched switch tracer, etc...) it can\u0027t output enough\ntask command information.\n\nWe need to use the tracing_{start/stop}_cmdline_record() helpers\nwhich are designed to keep track of cmdlines for any tasks that\nwere scheduled during the tracing.\n\nBefore this patch:\n # echo 1 \u003e debugfs/tracing/events/sched/sched_switch/enable\n # cat debugfs/tracing/trace\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n            \u003c...\u003e-2289  [000] 526276.724790: sched_switch: task bash:2289 [120] \u003d\u003d\u003e sshd:2287 [120]\n            \u003c...\u003e-2287  [000] 526276.725231: sched_switch: task sshd:2287 [120] \u003d\u003d\u003e bash:2289 [120]\n            \u003c...\u003e-2289  [000] 526276.725452: sched_switch: task bash:2289 [120] \u003d\u003d\u003e sshd:2287 [120]\n            \u003c...\u003e-2287  [000] 526276.727181: sched_switch: task sshd:2287 [120] \u003d\u003d\u003e swapper:0 [140]\n           \u003cidle\u003e-0     [000] 526277.032734: sched_switch: task swapper:0 [140] \u003d\u003d\u003e events/0:5 [115]\n            \u003c...\u003e-5     [000] 526277.032782: sched_switch: task events/0:5 [115] \u003d\u003d\u003e swapper:0 [140]\n ...\n\nAfter this patch:\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n             bash-2269  [000] 527347.989229: sched_switch: task bash:2269 [120] \u003d\u003d\u003e sshd:2267 [120]\n             sshd-2267  [000] 527347.990960: sched_switch: task sshd:2267 [120] \u003d\u003d\u003e bash:2269 [120]\n             bash-2269  [000] 527347.991143: sched_switch: task bash:2269 [120] \u003d\u003d\u003e sshd:2267 [120]\n             sshd-2267  [000] 527347.992959: sched_switch: task sshd:2267 [120] \u003d\u003d\u003e swapper:0 [140]\n           \u003cidle\u003e-0     [000] 527348.531989: sched_switch: task swapper:0 [140] \u003d\u003d\u003e events/0:5 [115]\n         events/0-5     [000] 527348.532115: sched_switch: task events/0:5 [115] \u003d\u003d\u003e swapper:0 [140]\n ...\n\nChangelog:\nv1-\u003ev2: Update Kconfig to select CONTEXT_SWITCH_TRACER in\n        ENABLE_EVENT_TRACING\nv2-\u003ev3: v2 can solve problem that was caused by config EVENT_TRACING\n        alone, but when CONFIG_FTRACE is off and CONFIG_TRACING is\n        selected by other config, compile fail happened again.\n        This version solves it.\n\n[ Impact: fix incomplete output of event tracing ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A14FDFE.2080402@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "4f5359685af6de7dca101393dc606620adbe963f",
      "tree": "1f9dc3fb9299008daa6a5fb6f03945008ea4a4f9",
      "parents": [
        "5537937696c55530447c20aa27daccb8d0d29b33"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon May 18 19:35:34 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 25 23:53:41 2009 +0200"
      },
      "message": "tracing: add trace_event_read_lock()\n\nI found that there is nothing to protect event_hash in\nftrace_find_event(). Rcu protects the event hashlist\nbut not the event itself while we use it after its extraction\nthrough ftrace_find_event().\n\nThis lack of a proper locking in this spot opens a race\nwindow between any event dereferencing and module removal.\n\nEg:\n\n--Task A--\n\nprint_trace_line(trace) {\n  event \u003d find_ftrace_event(trace)\n\n--Task B--\n\ntrace_module_remove_events(mod) {\n  list_trace_events_module(ev, mod) {\n    unregister_ftrace_event(ev-\u003eevent) {\n      hlist_del(ev-\u003eevent-\u003enode)\n        list_del(....)\n    }\n  }\n}\n|--\u003e module removed, the event has been dropped\n\n--Task A--\n\n  event-\u003eprint(trace); // Dereferencing freed memory\n\nIf the event retrieved belongs to a module and this module\nis concurrently removed, we may end up dereferencing a data\nfrom a freed module.\n\nRCU could solve this, but it would add latency to the kernel and\nforbid tracers output callbacks to call any sleepable code.\nSo this fix converts \u0027trace_event_mutex\u0027 to a read/write semaphore,\nand adds trace_event_read_lock() to protect ftrace_find_event().\n\n[ Impact: fix possible freed memory dereference in ftrace ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A114806.7090302@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e4b636366c00738b9609cda307014d71b1225b7f",
      "tree": "760b67b3624eda62e943e48ce93635c30a5b47bf",
      "parents": [
        "b9ed7252d219c1c663944bf03846eabb515dbe75",
        "279e677faa775ad16e75c32e1bf4a37f8158bc61"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.31\n\nConflicts:\n\tdrivers/block/hd.c\n\tdrivers/block/mg_disk.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5537937696c55530447c20aa27daccb8d0d29b33",
      "tree": "e3207e5a491822238ed299a5e7d96dfc72b1c43a",
      "parents": [
        "fd51d251e4cdb21f68e9dbc4336514d64a105a79"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Mon May 18 23:04:46 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed May 20 19:23:11 2009 +0200"
      },
      "message": "ftrace: fix check for return value of register_module_notifier in event_trace_init\n\nregister_module_notifier() returns zero in the success case.\nSo fix the inverted fail case check in trace events modules\nhandler.\n\n[ Impact: fix spurious warning on ftrace initialization]\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "fd51d251e4cdb21f68e9dbc4336514d64a105a79",
      "tree": "478fb26aea6b7e79532f33cc5949b4fece18cdfc",
      "parents": [
        "143c145e3a475065a4be661468d0df1bd0b25f74"
      ],
      "author": {
        "name": "Stefan Raspl",
        "email": "raspl@linux.vnet.ibm.com",
        "time": "Tue May 19 09:59:08 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 19 10:29:21 2009 +0200"
      },
      "message": "blktrace: remove debugfs entries on bad path\n\ndebugfs directory entries for devices are not removed on some\nof the failure pathes in do_blk_trace_setup().\nOne way to reproduce is to start blktrace on multiple devices\nwith insufficient Vmalloc space: Devices will fail with\na message like this:\n\n\tBLKTRACESETUP(2) /dev/sdu failed: 5/Input/output error\n\nIf so, the respective entries in debugfs\n(e.g. /sys/kernel/debug/block/sdu) will remain and subsequent\nattempts to start blktrace on the respective devices will not\nsucceed due to existing directories.\n\n[ Impact: fix /debug/tracing file cleanup corner case ]\n\nSigned-off-by: Stefan Raspl \u003cstefan.raspl@linux.vnet.ibm.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: schwidefsky@de.ibm.com\nCc: heiko.carstens@de.ibm.com\nLKML-Reference: \u003c4A1266CC.5040801@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24ed0c4bfc7d2d7507bb9d50f7f3bbdcd85d76dd",
      "tree": "954ff0ff7f4249ec7a2e9e9233bb4d8e0670f9ce",
      "parents": [
        "1079cac0f4eb7d968395378b1625979d4c818dd6"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sun May 17 15:31:38 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 10:24:13 2009 +0200"
      },
      "message": "tracing: fix check for return value of register_module_notifier\n\nreturn zero should be correct, so fix it.\n\n[ Impact: eliminate incorrect syslog message ]\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1242545498-7285-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "88fc86c283d9c3854e67e4155808027bc2519eb6",
      "tree": "2652b1a9d0299e1cc4d71573b2ac5e18ecae01c8",
      "parents": [
        "aa512a27e9e8ed32f31b15eec67ab1ceca33839b"
      ],
      "author": {
        "name": "GeunSik Lim",
        "email": "leemgs1@gmail.com",
        "time": "Thu May 14 17:23:38 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 19:43:22 2009 +0200"
      },
      "message": "tracing: Append prompt in /debug/tracing/README file\n\nappend prompt in /debug/tracing/README file.\n\nThis is trivial issue. Fix typo Mini Howto file(README) for ftrace.\n\n[ Impact: cleanup ]\n\nSigned-off-by: GeunSik Lim \u003cgeunsik.lim@samsung.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: williams \u003cwilliams@redhat.com\u003e\nLKML-Reference: \u003c1242289418.31161.45.camel@centos51\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5872144f64b34a5942f6b4acedc90b02de72c58b",
      "tree": "65ab10576155c05d7ac319197896a31721f61499",
      "parents": [
        "8cd995b6deedf98b7694ed32a786ee7f793d1eec"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 15 11:07:56 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:55:12 2009 -0400"
      },
      "message": "tracing/filters: fix off-by-one bug\n\nWe should leave the last slot for the ending \u0027\\0\u0027.\n\n[ Impact: fix possible crash when the length of an operand is 128 ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A0CDC8C.30602@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8cd995b6deedf98b7694ed32a786ee7f793d1eec",
      "tree": "6c423c242027eacf07018ae9e0488ef035337c68",
      "parents": [
        "1ec7c4849c214fc78b023230264399836ea3b245"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 15 11:07:27 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:55:10 2009 -0400"
      },
      "message": "tracing/filters: add missing unlock in a failure path\n\n[ Impact: fix deadlock in a rare case we fail to allocate memory ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A0CDC6F.7070200@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1ec7c4849c214fc78b023230264399836ea3b245",
      "tree": "52a53fcd4d7ea0cd94b65bd8c6bf20402e3356af",
      "parents": [
        "29a679754b1a2581ee456eada6c2de7ce95068bb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 14 23:40:06 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:40:06 2009 -0400"
      },
      "message": "tracing: stop stack trace on first empty entry\n\nThe stack tracer stores eight entries in the ring buffer when an event\ntraces the stack. The output outputs all eight entries regardless of\nhow many entries were recorded.\n\nThis patch breaks out of the loop when a null entry is discovered.\n\n[ Impact: only print the stack that is recorded ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5c333864a6ba811052d52ef14fbed056b9ac3512",
      "tree": "b0efe8d72c1cd5c555d528c0155251026425e695",
      "parents": [
        "597d0275736dad9c3bda6f0a00a1c477dc0f37b1"
      ],
      "author": {
        "name": "Arun R Bharadwaj",
        "email": "arun@linux.vnet.ibm.com",
        "time": "Thu Apr 16 12:14:37 2009 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 13 16:52:42 2009 +0200"
      },
      "message": "timers: Identifying the existing pinned timers\n\n* Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e [2009-04-16 12:11:36]:\n\nThe following pinned hrtimers have been identified and marked:\n1)sched_rt_period_timer\n2)tick_sched_timer\n3)stack_trace_timer_fn\n\n[ tglx: fixup the hrtimer pinned mode ]\n\nSigned-off-by: Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "168b6b1d0594c7866caa73b12f3b8d91075695f2",
      "tree": "2dd8d0e8b6ffc87360180c878a87b3632625b3f0",
      "parents": [
        "88eb0125362f2ab272cbaf84252cf101ddc2dec9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 22:11:05 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:33:06 2009 -0400"
      },
      "message": "ring-buffer: move code around to remove some branches\n\nThis is a bit of micro-optimizations. But since the ring buffer is used\nin tracing every function call, it is an extreme hot path. Every nanosecond\ncounts.\n\nThis change shows over 5% improvement in the ring-buffer-benchmark.\n\n[ Impact: more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "88eb0125362f2ab272cbaf84252cf101ddc2dec9",
      "tree": "acf8bac454d61874f35bf5e20cd30b448811608a",
      "parents": [
        "0f0c85fc80adbbd2265d89867d743f929d516805"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 16:28:23 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:14:03 2009 -0400"
      },
      "message": "ring-buffer: use internal time stamp function\n\nThe ring_buffer_time_stamp that is exported adds a little more overhead\nthan is needed for using it internally. This patch adds an internal\ntimestamp function that can be inlined (a single line function)\nand used internally for the ring buffer.\n\n[ Impact: a little less overhead to the ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0f0c85fc80adbbd2265d89867d743f929d516805",
      "tree": "0095c5a83727863eb38027c41b9a0cd74c1d283d",
      "parents": [
        "be957c447f7233a67904a1b11eb3ab61e702bf4d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 16:08:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:12:34 2009 -0400"
      },
      "message": "ring-buffer: small optimizations\n\nDoing some small changes in the fast path of the ring buffer recording\nsaves over 3% in the ring-buffer-benchmark test.\n\n[ Impact: a little faster ring buffer recording ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "be957c447f7233a67904a1b11eb3ab61e702bf4d",
      "tree": "fa92f4d46678c9a200ce9f92c1445da3bd71c74f",
      "parents": [
        "1cd8d7358948909ab80b254eb14bcebc555ad417"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 14:42:53 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 14:42:53 2009 -0400"
      },
      "message": "ring-buffer: move calculation of event length\n\nThe event length is calculated and passed in to rb_reserve_next_event\nin two different locations. Having rb_reserve_next_event do the\ncalculations directly makes only one location to do the change and\ncauses the calculation to be inlined by gcc.\n\nBefore:\n   text    data     bss     dec     hex filename\n  16538      24      12   16574    40be kernel/trace/ring_buffer.o\n\nAfter:\n   text    data     bss     dec     hex filename\n  16490      24      12   16526    408e kernel/trace/ring_buffer.o\n\n[ Impact: smaller more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1cd8d7358948909ab80b254eb14bcebc555ad417",
      "tree": "ff7d2bcd4f7b4ea12af66771d6a204b786c134c5",
      "parents": [
        "d988ff94c1074c4c914235c8591bcceafb585ecf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 14:08:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 14:19:00 2009 -0400"
      },
      "message": "ring-buffer: remove type parameter from rb_reserve_next_event\n\nThe rb_reserve_next_event is only called for the data type (type \u003d 0).\nThere is no reason to pass in the type to the function.\n\nBefore:\n   text    data     bss     dec     hex filename\n  16554      24      12   16590    40ce kernel/trace/ring_buffer.o\n\nAfter:\n   text    data     bss     dec     hex filename\n  16538      24      12   16574    40be kernel/trace/ring_buffer.o\n\n[ Impact: cleaner, smaller and slightly more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d988ff94c1074c4c914235c8591bcceafb585ecf",
      "tree": "46dc84aa84e04ae92cd66ed5cbf7a55452dcdb1c",
      "parents": [
        "5a772b2b3c68e7e0b503c5a48469113bb0634314"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 11:03:57 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 13:22:26 2009 -0400"
      },
      "message": "ring-buffer: check for divide by zero in ring-buffer-benchmark\n\nAlthough we check if \"missed\" is not zero, we divide by hit + missed,\nand the addition can possible overflow and become a divide by zero.\n\nThis patch checks for this case, and will report it when it happens\nthen modify \"hit\" to make the calculation be non zero.\n\n[ Impact: prevent possible divide by zero in ring-buffer-benchmark ]\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a772b2b3c68e7e0b503c5a48469113bb0634314",
      "tree": "f6c1a0c28cd9225778a4348aded45bae8b634126",
      "parents": [
        "79c5d3ce614d8fe706545c7bca2158b63db6bb5e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 10:56:33 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 13:22:26 2009 -0400"
      },
      "message": "ring-buffer: replace constants with time macros in ring-buffer-benchmark\n\nThe use of numeric constants is discouraged. It is cleaner and more\ndescriptive to use macros for constant time conversions.\n\nThis patch also removes an extra new line.\n\n[ Impact: more descriptive time conversions ]\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "049862579333cc6cd9e6edfd6987cd0addfd8c59",
      "tree": "171ce56995657c0dd92825b733afbd88242a3887",
      "parents": [
        "4671c79408a3f8a5a6a45e39c4c164dada3a5678"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon May 11 14:33:23 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 12:25:50 2009 +0200"
      },
      "message": "blktrace: pdu_buf of pc events should be unsigned\n\nI got this:\n  8,0    1   305.417782332  2037  I   R 32 (ffffff9e 10 00 ...) [bash]\n\nIt should be:\n  8,0    1   305.417782332  2037  I   R 32 (9e 10 00 ...) [bash]\n\n[ Impact: fix output of pc events ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A07C6B3.9080802@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e46e8b27aa57c6bd34b3102b40ee4d0144b4fab",
      "tree": "134f560f66c2af277f0f25e5b85f6c1acaddfc06",
      "parents": [
        "9780e2dd8254351f6cbe11304849126b51dbd561"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "block: drop request-\u003ehard_* and *nr_sectors\n\nstruct request has had a few different ways to represent some\nproperties of a request.  -\u003ehard_* represent block layer\u0027s view of the\nrequest progress (completion cursor) and the ones without the prefix\nare supposed to represent the issue cursor and allowed to be updated\nas necessary by the low level drivers.  The thing is that as block\nlayer supports partial completion, the two cursors really aren\u0027t\nnecessary and only cause confusion.  In addition, manual management of\nrequest detail from low level drivers is cumbersome and error-prone at\nthe very least.\n\nAnother interesting duplicate fields are rq-\u003e[hard_]nr_sectors and\nrq-\u003e{hard_cur|current}_nr_sectors against rq-\u003edata_len and\nrq-\u003ebio-\u003ebi_size.  This is more convoluted than the hard_ case.\n\nrq-\u003e[hard_]nr_sectors are initialized for requests with bio but\nblk_rq_bytes() uses it only for !pc requests.  rq-\u003edata_len is\ninitialized for all request but blk_rq_bytes() uses it only for pc\nrequests.  This causes good amount of confusion throughout block layer\nand its drivers and determining the request length has been a bit of\nblack magic which may or may not work depending on circumstances and\nwhat the specific LLD is actually doing.\n\nrq-\u003e{hard_cur|current}_nr_sectors represent the number of sectors in\nthe contiguous data area at the front.  This is mainly used by drivers\nwhich transfers data by walking request segment-by-segment.  This\nvalue always equals rq-\u003ebio-\u003ebi_size \u003e\u003e 9.  However, data length for\npc requests may not be multiple of 512 bytes and using this field\nbecomes a bit confusing.\n\nIn general, having multiple fields to represent the same property\nleads only to confusion and subtle bugs.  With recent block low level\ndriver cleanups, no driver is accessing or manipulating these\nduplicate fields directly.  Drop all the duplicates.  Now rq-\u003esector\nmeans the current sector, rq-\u003edata_len the current total length and\nrq-\u003ebio-\u003ebi_size the current segment length.  Everything else is\ndefined in terms of these three and available only through accessors.\n\n* blk_recalc_rq_sectors() is collapsed into blk_update_request() and\n  now handles pc and fs requests equally other than rq-\u003esector update.\n  This means that now pc requests can use partial completion too (no\n  in-kernel user yet tho).\n\n* bio_cur_sectors() is replaced with bio_cur_bytes() as block layer\n  now uses byte count as the primary data length.\n\n* blk_rq_pos() is now guranteed to be always correct.  In-block users\n  converted.\n\n* blk_rq_bytes() is now guaranteed to be always valid as is\n  blk_rq_sectors().  In-block users converted.\n\n* blk_rq_sectors() is now guaranteed to equal blk_rq_bytes() \u003e\u003e 9.\n  More convenient one is used.\n\n* blk_rq_bytes() and blk_rq_cur_bytes() are now inlined and take const\n  pointer to request.\n\n[ Impact: API cleanup, single way to represent one property of a request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b93629b4509c03ffa87a9316412fedf6f58cb37",
      "tree": "ad5ceda3f718361b8df3057b4f9edcc79aa4cd9d",
      "parents": [
        "c3a4d78c580de4edc9ef0f7c59812fb02ceb037f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:38 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "block: implement blk_rq_pos/[cur_]sectors() and convert obvious ones\n\nImplement accessors - blk_rq_pos(), blk_rq_sectors() and\nblk_rq_cur_sectors() which return rq-\u003ehard_sector, rq-\u003ehard_nr_sectors\nand rq-\u003ehard_cur_sectors respectively and convert direct references of\nthe said fields to the accessors.\n\nThis is in preparation of request data length handling cleanup.\n\nGeert\t: suggested adding const to struct request * parameter to accessors\nSergei\t: spotted error in patch description\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nTested-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAckec-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4671c79408a3f8a5a6a45e39c4c164dada3a5678",
      "tree": "c8cc041841afe9d2c1be14a2410c1f468b7477be",
      "parents": [
        "29f93943d1916d1a3faa3f10f4a06994347ac990"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 16:27:41 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 08 16:30:26 2009 -0400"
      },
      "message": "tracing: add trace_set_clr_event to export event enabling function\n\nOther parts of the kernel may need to be able to enable or disable\nspecific events. Especially parts that create trace events.\n\n[ Impact: allow enabling of trace events by those that create the event ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "29f93943d1916d1a3faa3f10f4a06994347ac990",
      "tree": "128c64e3e8305fb1c6785ef150b22b2412f856f2",
      "parents": [
        "c142b15dc56ee6d55cb97a062e3c8e9c61e384c0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 16:06:47 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 08 16:06:47 2009 -0400"
      },
      "message": "tracing: initialize return value for __ftrace_set_clr_event\n\nCommit 8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2\ntracing/events: clean up for ftrace_set_clr_event()\n\nMoved out the code for ftrace_set_clr_event into a helper funciton but\ndid not initialize the return value. As a result, we do not warn about\na typo in the echoing of events in set_event.\n\nThis patch restores the old warning:\n\n # echo foobar \u003e set_event\n-bash: echo: write error: Invalid argument\n\n[ Impact: restore warning of invalid entries to set_event ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c142b15dc56ee6d55cb97a062e3c8e9c61e384c0",
      "tree": "d273ba8c5ce28bea224e4f48b9704e47ed68a2b4",
      "parents": [
        "8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 08 10:32:05 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 14:00:36 2009 +0200"
      },
      "message": "tracing/events: simplify system_enable_read()\n\nA smarter way to figure out the output of an enable file.\n\n[ Impact: clean up ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A0399A5.2080603@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2",
      "tree": "660b7340cadca779314e04b960618d7ac1c7d425",
      "parents": [
        "74f4fd21664148b8c454cc07bfe74e4dd51cf07b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 08 10:31:42 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 14:00:35 2009 +0200"
      },
      "message": "tracing/events: clean up for ftrace_set_clr_event()\n\nAdd a helper function __ftrace_set_clr_event(), and replace some\nftrace_set_clr_event() calls with this helper, thus we don\u0027t need any\nkstrdup() or kmalloc().\n\nAs a side effect, this patch fixes an issue in self tests code, which is\nsimilar to the one fixed in commit d6bf81ef0f7474434c2a049e8bf3c9146a14dd96\n(\"tracing: append \":*\" to internal setting of system events\")\n\nIt\u0027s a small issue and won\u0027t cause any bug in fact, but we should do things\nright anyway.\n\n[ Impact: prevent spurious event-enabling in tracing self-tests ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A03998E.3020503@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74f4fd21664148b8c454cc07bfe74e4dd51cf07b",
      "tree": "fa4074dff8913c25a9192c65c112de25cf07fbf4",
      "parents": [
        "7da3046d6ce6ea97494020081c509b642b7016af"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 19:58:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 20:01:11 2009 -0400"
      },
      "message": "ring-buffer: change WARN_ON from checking preempt_count to preemptible\n\nThere\u0027s a WARN_ON in the ring buffer code that makes sure preemption\nis disabled. It checks \"!preempt_count()\". But when CONFIG_PREEMPT is not\nenabled, preempt_count() is always zero, and this will trigger the warning.\n\n[ Impact: prevent false warning on non preemptible kernels ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7da3046d6ce6ea97494020081c509b642b7016af",
      "tree": "8bd27902977bc821980331054a6b2c5876bf2918",
      "parents": [
        "0574ea421b90e0e45a72c447dd3c2c79ffd8c153"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 19:52:20 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 19:52:20 2009 -0400"
      },
      "message": "ring-buffer: add total count in ring-buffer-benchmark\n\nIt is nice to see the overhead of the benchmark test when tracing is\ndisabled. That is, we turn off the ring buffer just to see what the\ncost of running the loop that calls into the ring buffer is.\n\nCurrently, if no entries wer made, we get 0. This is not informative.\nThis patch changes it to check if we had any \"missed\" (non recorded)\nevents. If so, a total count is also reported.\n\n[ Impact: evaluate the over head of the ring buffer benchmark test ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0574ea421b90e0e45a72c447dd3c2c79ffd8c153",
      "tree": "ec19f007794a8593f1c75f3f2d05c2471346298e",
      "parents": [
        "65b77242043f74bca6a0d733c0e48ef03a8c9893"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 14:20:28 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 14:20:28 2009 -0400"
      },
      "message": "ring-buffer: only periodically call cond_resched to ring-buffer-benchmark\n\nCalling cond_resched at every iteration of the loop adds a bit of\noverhead to the benchmark.\n\nThis patch does two things.\n\n1) only calls cond-resched when CONFIG_PREEMPT is not enabled\n2) only calls cond-resched after so many traces has been performed.\n\n[ Impact: less overhead to the ring-buffer-benchmark ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "65b77242043f74bca6a0d733c0e48ef03a8c9893"
}
