)]}'
{
  "log": [
    {
      "commit": "7eb69529cbaf4229baf5559a400a7a46352c6e52",
      "tree": "e8d16dd5a5f5db83ed6f84439c1416e3a65f74ac",
      "parents": [
        "300893b08f3bc7057a7a5f84074090ba66c8b5ca",
        "a0a5a0561f63905fe94c49bc567615829f42ce1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 09 14:42:15 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 09 14:42:15 2013 -0700"
      },
      "message": "Merge tag \u0027trace-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing updates from Steven Rostedt:\n \"Not much changes for the 3.12 merge window.  The major tracing changes\n  are still in flux, and will have to wait for 3.13.\n\n  The changes for 3.12 are mostly clean ups and minor fixes.\n\n  H Peter Anvin added a check to x86_32 static function tracing that\n  helps a small segment of the kernel community.\n\n  Oleg Nesterov had a few changes from 3.11, but were mostly clean ups\n  and not worth pushing in the -rc time frame.\n\n  Li Zefan had small clean up with annotating a raw_init with __init.\n\n  I fixed a slight race in updating function callbacks, but the race is\n  so small and the bug that happens when it occurs is so minor it\u0027s not\n  even worth pushing to stable.\n\n  The only real enhancement is from Alexander Z Lam that made the\n  tracing_cpumask work for trace buffer instances, instead of them all\n  sharing a global cpumask\"\n\n* tag \u0027trace-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  ftrace/rcu: Do not trace debug_lockdep_rcu_enabled()\n  x86-32, ftrace: Fix static ftrace when early microcode is enabled\n  ftrace: Fix a slight race in modifying what function callback gets traced\n  tracing: Make tracing_cpumask available for all instances\n  tracing: Kill the !CONFIG_MODULES code in trace_events.c\n  tracing: Don\u0027t pass file_operations array to event_create_dir()\n  tracing: Kill trace_create_file_ops() and friends\n  tracing/syscalls: Annotate raw_init function with __init\n"
    },
    {
      "commit": "59338f754a55f07857342dbcd81652a4f091d72f",
      "tree": "d060266252fcf0dd8fbb399d6c3f26aab6be756e",
      "parents": [
        "ccfe9e42e451232dd17a230d1b4e979c3d15311e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Aug 31 01:04:07 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 03 19:36:26 2013 -0400"
      },
      "message": "ftrace: Fix a slight race in modifying what function callback gets traced\n\nThere\u0027s a slight race when going from a list function to a non list\nfunction. That is, when only one callback is registered to the function\ntracer, it gets called directly by the mcount trampoline. But if this\nfunction has filters, it may be called by the wrong functions.\n\nAs the list ops callback that handles multiple callbacks that are\nregistered to ftrace, it also handles what functions they call. While\nthe transaction is taking place, use the list function always, and\nafter all the updates are finished (only the functions that should be\ntraced are being traced), then we can update the trampoline to call\nthe function directly.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7d992feb7694a21ee81f22894b455dadd5d1c110",
      "tree": "d0f0961186b1c31c536a26a7f986ad7ca677453b",
      "parents": [
        "6e4664525b1db28f8c4e1130957f70a94c19213e",
        "25f27ce4a6a4995c8bdd69b4b2180465ed5ad2b8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 03 07:41:11 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 03 07:41:11 2013 +0200"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nPull RCU updates from Paul E. McKenney:\n\n\"\n * Update RCU documentation.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/611.\n\n * Miscellaneous fixes.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/619.\n\n * Full-system idle detection.  This is for use by Frederic\n   Weisbecker\u0027s adaptive-ticks mechanism.  Its purpose is\n   to allow the timekeeping CPU to shut off its tick when\n   all other CPUs are idle.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/648.\n\n * Improve rcutorture test coverage.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/675.\n\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ccfe9e42e451232dd17a230d1b4e979c3d15311e",
      "tree": "44e4f7fab140208e1826c3415bb9229fc847dda5",
      "parents": [
        "836d481ed7c91152c6144ea3a3363cad3940b3e0"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Thu Aug 08 09:47:45 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 22 12:45:24 2013 -0400"
      },
      "message": "tracing: Make tracing_cpumask available for all instances\n\nAllow tracer instances to disable tracing by cpu by moving\nthe static global tracing_cpumask into trace_array.\n\nLink: http://lkml.kernel.org/r/921622317f239bfc2283cac2242647801ef584f2.1375980149.git.azl@google.com\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "836d481ed7c91152c6144ea3a3363cad3940b3e0",
      "tree": "b33beed354fc924b65afd4593ded55cef9f5c488",
      "parents": [
        "620a30e97febc8332590376c94ed0e9dba522bc8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 31 19:31:37 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 21 23:28:03 2013 -0400"
      },
      "message": "tracing: Kill the !CONFIG_MODULES code in trace_events.c\n\nMove trace_module_nb under CONFIG_MODULES and kill the dummy\ntrace_module_notify(). Imho it doesn\u0027t make sense to define\n\"struct notifier_block\" and its .notifier_call just to avoid\n\"ifdef\" in event_trace_init(), and all other !CONFIG_MODULES\ncode has already gone away.\n\nLink: http://lkml.kernel.org/r/20130731173137.GA31043@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "620a30e97febc8332590376c94ed0e9dba522bc8",
      "tree": "38bde59c3f7f03117d9bf87532ced86074cd7c39",
      "parents": [
        "779c5e379158de3e96112630c543d3c7b37efab9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 31 19:31:35 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 21 23:25:06 2013 -0400"
      },
      "message": "tracing: Don\u0027t pass file_operations array to event_create_dir()\n\nNow that event_create_dir() and __trace_add_new_event() always\nuse the same file_operations we can kill these arguments and\nsimplify the code.\n\nLink: http://lkml.kernel.org/r/20130731173135.GA31040@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "779c5e379158de3e96112630c543d3c7b37efab9",
      "tree": "372c80fb9521ef4ac5d614d481a1a819cf57ba6c",
      "parents": [
        "3ddc77f6f4a58ee2e49e0e8c0216105c7f8ddd8c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 31 19:31:32 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 21 22:31:23 2013 -0400"
      },
      "message": "tracing: Kill trace_create_file_ops() and friends\n\ntrace_create_file_ops() allocates the copy of id/filter/format/enable\nfile_operations to set \"f_op-\u003eowner \u003d mod\" for fops_get().\n\nHowever after the recent changes there is no reason to prevent rmmod\neven if one of these files is opened. A file operation can do nothing\nbut fail after remove_event_file_dir() clears -\u003ei_private for every\nfile removed by trace_module_remove_events().\n\nKill \"struct ftrace_module_file_ops\" and fix the compilation errors.\n\nLink: http://lkml.kernel.org/r/20130731173132.GA31033@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3ddc77f6f4a58ee2e49e0e8c0216105c7f8ddd8c",
      "tree": "13ff7a152977cfa81386fe0169f84fbd22eba732",
      "parents": [
        "9457158bbc0ee04ecef76862d73eecd8076e9c7b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Wed Mar 27 14:15:37 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 21 22:24:52 2013 -0400"
      },
      "message": "tracing/syscalls: Annotate raw_init function with __init\n\ninit_syscall_trace() can only be called during kernel bootup only, so we can\nmark it and the functions it calls as __init.\n\nLink: http://lkml.kernel.org/r/51528E89.6080508@huawei.com\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9457158bbc0ee04ecef76862d73eecd8076e9c7b",
      "tree": "c2469bc10aefdfff49a4ffc588ce4aa1912e214d",
      "parents": [
        "711e124379e0f889e40e2f01d7f5d61936d3cd23"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Fri Aug 02 18:36:16 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 02 22:40:09 2013 -0400"
      },
      "message": "tracing: Fix reset of time stamps during trace_clock changes\n\nFixed two issues with changing the timestamp clock with trace_clock:\n\n - The global buffer was reset on instance clock changes. Change this to pass\n   the correct per-instance buffer\n - ftrace_now() is used to set buf-\u003etime_start in tracing_reset_online_cpus().\n   This was incorrect because ftrace_now() used the global buffer\u0027s clock to\n   return the current time. Change this to use buffer_ftrace_now() which\n   returns the current time for the correct per-instance buffer.\n\nAlso removed tracing_reset_current() because it is not used anywhere\n\nLink: http://lkml.kernel.org/r/1375493777-17261-2-git-send-email-azl@google.com\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "711e124379e0f889e40e2f01d7f5d61936d3cd23",
      "tree": "5264b7da9d3a01be06880c35ddcb6ccbc63b2f37",
      "parents": [
        "e67bc51e574ffe3c4bc1e09cab7658b1e780b4ce"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Fri Aug 02 18:36:15 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 02 22:39:29 2013 -0400"
      },
      "message": "tracing: Make TRACE_ITER_STOP_ON_FREE stop the correct buffer\n\nReleasing the free_buffer file in an instance causes the global buffer\nto be stopped when TRACE_ITER_STOP_ON_FREE is enabled. Operate on the\ncorrect buffer.\n\nLink: http://lkml.kernel.org/r/1375493777-17261-1-git-send-email-azl@google.com\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ed5467da0e369e65b247b99eb6403cb79172bcda",
      "tree": "a7a281193d68cc8e24660657e4f127dfb4acd555",
      "parents": [
        "c6c2401d8bbaf9edc189b4c35a8cb2780b8b988e"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Fri Aug 02 21:16:43 2013 +0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 02 22:28:41 2013 -0400"
      },
      "message": "tracing: Fix fields of struct trace_iterator that are zeroed by mistake\n\ntracing_read_pipe zeros all fields bellow \"seq\". The declaration contains\na comment about that, but it doesn\u0027t help.\n\nThe first field is \"snapshot\", it\u0027s true when current open file is\nsnapshot. Looks obvious, that it should not be zeroed.\n\nThe second field is \"started\". It was converted from cpumask_t to\ncpumask_var_t (v2.6.28-4983-g4462344), in other words it was\nconverted from cpumask to pointer on cpumask.\n\nCurrently the reference on \"started\" memory is lost after the first read\nfrom tracing_read_pipe and a proper object will never be freed.\n\nThe \"started\" is never dereferenced for trace_pipe, because trace_pipe\ncan\u0027t have the TRACE_FILE_ANNOTATE options.\n\nLink: http://lkml.kernel.org/r/1375463803-3085183-1-git-send-email-avagin@openvz.org\n\nCc: stable@vger.kernel.org # 2.6.30\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c6c2401d8bbaf9edc189b4c35a8cb2780b8b988e",
      "tree": "5589795f4b86670b2d4f4851a4de8f1401c6c7ff",
      "parents": [
        "40c32592668b727cbfcf7b1c0567f581bd62a5e4"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 03 23:33:51 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 01 18:25:50 2013 -0400"
      },
      "message": "tracing/uprobes: Fail to unregister if probe event files are in use\n\nUprobes suffer the same problem that kprobes have. There\u0027s a race between\nwriting to the \"enable\" file and removing the probe. The probe checks for\nit being in use and if it is not, goes about deleting the probe and the\nevent that represents it. But the problem with that is, after it checks\nif it is in use it can be enabled, and the deletion of the event (access\nto the probe) will fail, as it is in use. But the uprobe will still be\ndeleted. This is a problem as the event can reference the uprobe that\nwas deleted.\n\nThe fix is to remove the event first, and check to make sure the event\nremoval succeeds. Then it is safe to remove the probe.\n\nWhen the event exists, either ftrace or perf can enable the probe and\nprevent the event from being removed.\n\nLink: http://lkml.kernel.org/r/20130704034038.991525256@goodmis.org\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "40c32592668b727cbfcf7b1c0567f581bd62a5e4",
      "tree": "b6b96761ad2086e9635c16527a7d56ce89041802",
      "parents": [
        "2ba64035d0ca966fd189bc3e0826343fc81bf482"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 03 23:33:50 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 31 22:25:46 2013 -0400"
      },
      "message": "tracing/kprobes: Fail to unregister if probe event files are in use\n\nWhen a probe is being removed, it cleans up the event files that correspond\nto the probe. But there is a race between writing to one of these files\nand deleting the probe. This is especially true for the \"enable\" file.\n\n\tCPU 0\t\t\t\tCPU 1\n\t-----\t\t\t\t-----\n\n\t\t\t\t  fd \u003d open(\"enable\",O_WRONLY);\n\n  probes_open()\n  release_all_trace_probes()\n  unregister_trace_probe()\n  if (trace_probe_is_enabled(tp))\n\treturn -EBUSY\n\n\t\t\t\t   write(fd, \"1\", 1)\n\t\t\t\t   __ftrace_set_clr_event()\n\t\t\t\t   call-\u003eclass-\u003ereg()\n\t\t\t\t    (kprobe_register)\n\t\t\t\t     enable_trace_probe(tp)\n\n  __unregister_trace_probe(tp);\n  list_del(\u0026tp-\u003elist)\n  unregister_probe_event(tp) \u003c-- fails!\n  free_trace_probe(tp)\n\n\t\t\t\t   write(fd, \"0\", 1)\n\t\t\t\t   __ftrace_set_clr_event()\n\t\t\t\t   call-\u003eclass-\u003eunreg\n\t\t\t\t    (kprobe_register)\n\t\t\t\t    disable_trace_probe(tp) \u003c-- BOOM!\n\nA test program was written that used two threads to simulate the\nabove scenario adding a nanosleep() interval to change the timings\nand after several thousand runs, it was able to trigger this bug\nand crash:\n\nBUG: unable to handle kernel paging request at 00000005000000f9\nIP: [\u003cffffffff810dee70\u003e] probes_open+0x3b/0xa7\nPGD 7808a067 PUD 0\nOops: 0000 [#1] PREEMPT SMP\nDumping ftrace buffer:\n---------------------------------\nModules linked in: ipt_MASQUERADE sunrpc ip6t_REJECT nf_conntrack_ipv6\nCPU: 1 PID: 2070 Comm: test-kprobe-rem Not tainted 3.11.0-rc3-test+ #47\nHardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007\ntask: ffff880077756440 ti: ffff880076e52000 task.ti: ffff880076e52000\nRIP: 0010:[\u003cffffffff810dee70\u003e]  [\u003cffffffff810dee70\u003e] probes_open+0x3b/0xa7\nRSP: 0018:ffff880076e53c38  EFLAGS: 00010203\nRAX: 0000000500000001 RBX: ffff88007844f440 RCX: 0000000000000003\nRDX: 0000000000000003 RSI: 0000000000000003 RDI: ffff880076e52000\nRBP: ffff880076e53c58 R08: ffff880076e53bd8 R09: 0000000000000000\nR10: ffff880077756440 R11: 0000000000000006 R12: ffffffff810dee35\nR13: ffff880079250418 R14: 0000000000000000 R15: ffff88007844f450\nFS:  00007f87a276f700(0000) GS:ffff88007d480000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 00000005000000f9 CR3: 0000000077262000 CR4: 00000000000007e0\nStack:\n ffff880076e53c58 ffffffff81219ea0 ffff88007844f440 ffffffff810dee35\n ffff880076e53ca8 ffffffff81130f78 ffff8800772986c0 ffff8800796f93a0\n ffffffff81d1b5d8 ffff880076e53e04 0000000000000000 ffff88007844f440\nCall Trace:\n [\u003cffffffff81219ea0\u003e] ? security_file_open+0x2c/0x30\n [\u003cffffffff810dee35\u003e] ? unregister_trace_probe+0x4b/0x4b\n [\u003cffffffff81130f78\u003e] do_dentry_open+0x162/0x226\n [\u003cffffffff81131186\u003e] finish_open+0x46/0x54\n [\u003cffffffff8113f30b\u003e] do_last+0x7f6/0x996\n [\u003cffffffff8113cc6f\u003e] ? inode_permission+0x42/0x44\n [\u003cffffffff8113f6dd\u003e] path_openat+0x232/0x496\n [\u003cffffffff8113fc30\u003e] do_filp_open+0x3a/0x8a\n [\u003cffffffff8114ab32\u003e] ? __alloc_fd+0x168/0x17a\n [\u003cffffffff81131f4e\u003e] do_sys_open+0x70/0x102\n [\u003cffffffff8108f06e\u003e] ? trace_hardirqs_on_caller+0x160/0x197\n [\u003cffffffff81131ffe\u003e] SyS_open+0x1e/0x20\n [\u003cffffffff81522742\u003e] system_call_fastpath+0x16/0x1b\nCode: e5 41 54 53 48 89 f3 48 83 ec 10 48 23 56 78 48 39 c2 75 6c 31 f6 48 c7\nRIP  [\u003cffffffff810dee70\u003e] probes_open+0x3b/0xa7\n RSP \u003cffff880076e53c38\u003e\nCR2: 00000005000000f9\n---[ end trace 35f17d68fc569897 ]---\n\nThe unregister_trace_probe() must be done first, and if it fails it must\nfail the removal of the kprobe.\n\nSeveral changes have already been made by Oleg Nesterov and Masami Hiramatsu\nto allow moving the unregister_probe_event() before the removal of\nthe probe and exit the function if it fails. This prevents the tp\nstructure from being used after it is freed.\n\nLink: http://lkml.kernel.org/r/20130704034038.819592356@goodmis.org\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2ba64035d0ca966fd189bc3e0826343fc81bf482",
      "tree": "ca96642c76e96d13d7ace443a26e26f622c3337f",
      "parents": [
        "2816c551c796ec14620325b2c9ed75b9979d3125"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 31 13:16:22 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 31 13:16:22 2013 -0400"
      },
      "message": "tracing: Add comment to describe special break case in probe_remove_event_call()\n\nThe \"break\" used in the do_for_each_event_file() is used as an optimization\nas the loop is really a double loop. The loop searches all event files\nfor each trace_array. There\u0027s only one matching event file per trace_array\nand after we find the event file for the trace_array, the break is used\nto jump to the next trace_array and start the search there.\n\nAs this is not a standard way of using \"break\" in C code, it requires\na comment right before the break to let people know what is going on.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2816c551c796ec14620325b2c9ed75b9979d3125",
      "tree": "c4bc262514de5ef265001411bcdf7ad65916eae9",
      "parents": [
        "776164c1faac4966ab14418bb0922e1820da1d19"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jul 29 19:50:33 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 31 13:12:48 2013 -0400"
      },
      "message": "tracing: trace_remove_event_call() should fail if call/file is in use\n\nChange trace_remove_event_call(call) to return the error if this\ncall is active. This is what the callers assume but can\u0027t verify\noutside of the tracing locks. Both trace_kprobe.c/trace_uprobe.c\nneed the additional changes, unregister_trace_probe() should abort\nif trace_remove_event_call() fails.\n\nThe caller is going to free this call/file so we must ensure that\nnobody can use them after trace_remove_event_call() succeeds.\ndebugfs should be fine after the previous changes and event_remove()\ndoes TRACE_REG_UNREGISTER, but still there are 2 reasons why we need\nthe additional checks:\n\n- There could be a perf_event(s) attached to this tp_event, so the\n  patch checks -\u003eperf_refcount.\n\n- TRACE_REG_UNREGISTER can be suppressed by FTRACE_EVENT_FL_SOFT_MODE,\n  so we simply check FTRACE_EVENT_FL_ENABLED protected by event_mutex.\n\nLink: http://lkml.kernel.org/r/20130729175033.GB26284@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8c4f3c3fa9681dc549cd35419b259496082fef8b",
      "tree": "bcec6232d02770494503abed317a778808fa0aab",
      "parents": [
        "1c80c43290ee576afe8d39ecc905fa3958a5858c"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 30 00:04:32 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 30 20:52:51 2013 -0400"
      },
      "message": "ftrace: Check module functions being traced on reload\n\nThere\u0027s been a nasty bug that would show up and not give much info.\nThe bug displayed the following warning:\n\n WARNING: at kernel/trace/ftrace.c:1529 __ftrace_hash_rec_update+0x1e3/0x230()\n Pid: 20903, comm: bash Tainted: G           O 3.6.11+ #38405.trunk\n Call Trace:\n  [\u003cffffffff8103e5ff\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff8103e65a\u003e] warn_slowpath_null+0x1a/0x20\n  [\u003cffffffff810c2ee3\u003e] __ftrace_hash_rec_update+0x1e3/0x230\n  [\u003cffffffff810c4f28\u003e] ftrace_hash_move+0x28/0x1d0\n  [\u003cffffffff811401cc\u003e] ? kfree+0x2c/0x110\n  [\u003cffffffff810c68ee\u003e] ftrace_regex_release+0x8e/0x150\n  [\u003cffffffff81149f1e\u003e] __fput+0xae/0x220\n  [\u003cffffffff8114a09e\u003e] ____fput+0xe/0x10\n  [\u003cffffffff8105fa22\u003e] task_work_run+0x72/0x90\n  [\u003cffffffff810028ec\u003e] do_notify_resume+0x6c/0xc0\n  [\u003cffffffff8126596e\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3c\n  [\u003cffffffff815c0f88\u003e] int_signal+0x12/0x17\n ---[ end trace 793179526ee09b2c ]---\n\nIt was finally narrowed down to unloading a module that was being traced.\n\nIt was actually more than that. When functions are being traced, there\u0027s\na table of all functions that have a ref count of the number of active\ntracers attached to that function. When a function trace callback is\nregistered to a function, the function\u0027s record ref count is incremented.\nWhen it is unregistered, the function\u0027s record ref count is decremented.\nIf an inconsistency is detected (ref count goes below zero) the above\nwarning is shown and the function tracing is permanently disabled until\nreboot.\n\nThe ftrace callback ops holds a hash of functions that it filters on\n(and/or filters off). If the hash is empty, the default means to filter\nall functions (for the filter_hash) or to disable no functions (for the\nnotrace_hash).\n\nWhen a module is unloaded, it frees the function records that represent\nthe module functions. These records exist on their own pages, that is\nfunction records for one module will not exist on the same page as\nfunction records for other modules or even the core kernel.\n\nNow when a module unloads, the records that represents its functions are\nfreed. When the module is loaded again, the records are recreated with\na default ref count of zero (unless there\u0027s a callback that traces all\nfunctions, then they will also be traced, and the ref count will be\nincremented).\n\nThe problem is that if an ftrace callback hash includes functions of the\nmodule being unloaded, those hash entries will not be removed. If the\nmodule is reloaded in the same location, the hash entries still point\nto the functions of the module but the module\u0027s ref counts do not reflect\nthat.\n\nWith the help of Steve and Joern, we found a reproducer:\n\n Using uinput module and uinput_release function.\n\n cd /sys/kernel/debug/tracing\n modprobe uinput\n echo uinput_release \u003e set_ftrace_filter\n echo function \u003e current_tracer\n rmmod uinput\n modprobe uinput\n # check /proc/modules to see if loaded in same addr, otherwise try again\n echo nop \u003e current_tracer\n\n [BOOM]\n\nThe above loads the uinput module, which creates a table of functions that\ncan be traced within the module.\n\nWe add uinput_release to the filter_hash to trace just that function.\n\nEnable function tracincg, which increments the ref count of the record\nassociated to uinput_release.\n\nRemove uinput, which frees the records including the one that represents\nuinput_release.\n\nLoad the uinput module again (and make sure it\u0027s at the same address).\nThis recreates the function records all with a ref count of zero,\nincluding uinput_release.\n\nDisable function tracing, which will decrement the ref count for uinput_release\nwhich is now zero because of the module removal and reload, and we have\na mismatch (below zero ref count).\n\nThe solution is to check all currently tracing ftrace callbacks to see if any\nare tracing any of the module\u0027s functions when a module is loaded (it already does\nthat with callbacks that trace all functions). If a callback happens to have\na module function being traced, it increments that records ref count and starts\ntracing that function.\n\nThere may be a strange side effect with this, where tracing module functions\non unload and then reloading a new module may have that new module\u0027s functions\nbeing traced. This may be something that confuses the user, but it\u0027s not\na big deal. Another approach is to disable all callback hashes on module unload,\nbut this leaves some ftrace callbacks that may not be registered, but can\nstill have hashes tracing the module\u0027s function where ftrace doesn\u0027t know about\nit. That situation can cause the same bug. This solution solves that case too.\nAnother benefit of this solution, is it is possible to trace a module\u0027s\nfunction on unload and load.\n\nLink: http://lkml.kernel.org/r/20130705142629.GA325@redhat.com\n\nReported-by: Jörn Engel \u003cjoern@logfs.org\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nTested-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1c80c43290ee576afe8d39ecc905fa3958a5858c",
      "tree": "11fd3427c3fe63d2f6bafdcc0150bff970093c41",
      "parents": [
        "bf682c3159c4d298d1126a56793ed3f5e80395f7"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 25 20:22:00 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 23:56:00 2013 -0400"
      },
      "message": "ftrace: Consolidate some duplicate code for updating ftrace ops\n\nWhen ftrace ops modifies the functions that it will trace, the update\nto the function mcount callers may need to be modified. Consolidate\nthe two places that do the checks to see if an update is required\nwith a wrapper function for those checks.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bf682c3159c4d298d1126a56793ed3f5e80395f7",
      "tree": "119fe382412dbb356ded3bd708f93e8fae86550c",
      "parents": [
        "f6a84bdc75b5c11621dec58db73fe102cbaf40cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 28 20:35:27 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:57:11 2013 -0400"
      },
      "message": "tracing: Change remove_event_file_dir() to clear \"d_subdirs\"-\u003ei_private\n\nChange remove_event_file_dir() to clear -\u003ei_private for every\nfile we are going to remove.\n\nWe need to check file-\u003edir !\u003d NULL because event_create_dir()\ncan fail. debugfs_remove_recursive(NULL) is fine but the patch\nmoves it under the same check anyway for readability.\n\nspin_lock(d_lock) and \"d_inode !\u003d NULL\" check are not needed\nafaics, but I do not understand this code enough.\n\ntracing_open_generic_file() and tracing_release_generic_file()\ncan go away, ftrace_enable_fops and ftrace_event_filter_fops()\nuse tracing_open_generic() but only to check tracing_disabled.\n\nThis fixes all races with event_remove() or instance_delete().\nf_op-\u003eread/write/whatever can never use the freed file/call,\nall event/* files were changed to check and use -\u003ei_private\nunder event_mutex.\n\nNote: this doesn\u0027t not fix other problems, event_remove() can\ndestroy the active ftrace_event_call, we need more changes but\nthose changes are completely orthogonal.\n\nLink: http://lkml.kernel.org/r/20130728183527.GB16723@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f6a84bdc75b5c11621dec58db73fe102cbaf40cc",
      "tree": "9200a7b2eae75c9ce783f82ad396fe09aab6feae",
      "parents": [
        "c5a44a1200c6eda2202434f25325e8ad19533fca"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 26 19:25:47 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:57:10 2013 -0400"
      },
      "message": "tracing: Introduce remove_event_file_dir()\n\nPreparation for the next patch. Extract the common code from\nremove_event_from_tracers() and __trace_remove_event_dirs()\ninto the new helper, remove_event_file_dir().\n\nThe patch looks more complicated than it actually is, it also\nmoves remove_subsystem() up to avoid the forward declaration.\n\nLink: http://lkml.kernel.org/r/20130726172547.GA3629@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c5a44a1200c6eda2202434f25325e8ad19533fca",
      "tree": "4ac8699d7e7ce648d888a2f2fb4889380d9b02a6",
      "parents": [
        "e2912b091c26b8ea95e5e00a43a7ac620f6c94a6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 26 19:25:43 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:57:10 2013 -0400"
      },
      "message": "tracing: Change f_start() to take event_mutex and verify i_private !\u003d NULL\n\ntrace_format_open() and trace_format_seq_ops are racy, nothing\nprotects ftrace_event_call from trace_remove_event_call().\n\nChange f_start() to take event_mutex and verify i_private !\u003d NULL,\nchange f_stop() to drop this lock.\n\nThis fixes nothing, but now we can change debugfs_remove(\"format\")\ncallers to nullify -\u003ei_private and fix the the problem.\n\nNote: the usage of event_mutex is sub-optimal but simple, we can\nchange this later.\n\nLink: http://lkml.kernel.org/r/20130726172543.GA3622@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e2912b091c26b8ea95e5e00a43a7ac620f6c94a6",
      "tree": "841eb09f7732ba1d1eb58405743bb61c8a88b2fe",
      "parents": [
        "bc6f6b08dee5645770efb4b76186ded313f23752"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 26 19:25:40 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:56:59 2013 -0400"
      },
      "message": "tracing: Change event_filter_read/write to verify i_private !\u003d NULL\n\nevent_filter_read/write() are racy, ftrace_event_call can be already\nfreed by trace_remove_event_call() callers.\n\n1. Shift mutex_lock(event_mutex) from print/apply_event_filter to\n   the callers.\n\n2. Change the callers, event_filter_read() and event_filter_write()\n   to read i_private under this mutex and abort if it is NULL.\n\nThis fixes nothing, but now we can change debugfs_remove(\"filter\")\ncallers to nullify -\u003ei_private and fix the the problem.\n\nLink: http://lkml.kernel.org/r/20130726172540.GA3619@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc6f6b08dee5645770efb4b76186ded313f23752",
      "tree": "4f2a94646a39b8454e21bed38f093f73c8752345",
      "parents": [
        "1a11126bcb7c93c289bf3218fa546fd3b0c0df8b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 26 19:25:36 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:05:40 2013 -0400"
      },
      "message": "tracing: Change event_enable/disable_read() to verify i_private !\u003d NULL\n\ntracing_open_generic_file() is racy, ftrace_event_file can be\nalready freed by rmdir or trace_remove_event_call().\n\nChange event_enable_read() and event_disable_read() to read and\nverify \"file \u003d i_private\" under event_mutex.\n\nThis fixes nothing, but now we can change debugfs_remove(\"enable\")\ncallers to nullify -\u003ei_private and fix the the problem.\n\nLink: http://lkml.kernel.org/r/20130726172536.GA3612@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1a11126bcb7c93c289bf3218fa546fd3b0c0df8b",
      "tree": "ffbfb4e73894c00bf674ece92c2531505a877a1b",
      "parents": [
        "5ae90d8e467e625e447000cb4335c4db973b1095"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 26 19:25:32 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 29 22:04:30 2013 -0400"
      },
      "message": "tracing: Turn event/id-\u003ei_private into call-\u003eevent.type\n\nevent_id_read() is racy, ftrace_event_call can be already freed\nby trace_remove_event_call() callers.\n\nChange event_create_dir() to pass \"data \u003d call-\u003eevent.type\", this\nis all event_id_read() needs. ftrace_event_id_fops no longer needs\ntracing_open_generic().\n\nWe add the new helper, event_file_data(), to read -\u003ei_private, it\nwill have more users.\n\nNote: currently ACCESS_ONCE() and \"id !\u003d 0\" check are not needed,\nbut we are going to change event_remove/rmdir to clear -\u003ei_private.\n\nLink: http://lkml.kernel.org/r/20130726172532.GA3605@redhat.com\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "102c9323c35a83789ad5ebd3c45fa8fb389add88",
      "tree": "1774b9144e5a00a49358475c1aca9ad33713e417",
      "parents": [
        "3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 12 17:07:27 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 26 13:39:44 2013 -0400"
      },
      "message": "tracing: Add __tracepoint_string() to export string pointers\n\nThere are several tracepoints (mostly in RCU), that reference a string\npointer and uses the print format of \"%s\" to display the string that\nexists in the kernel, instead of copying the actual string to the\nring buffer (saves time and ring buffer space).\n\nBut this has an issue with userspace tools that read the binary buffers\nthat has the address of the string but has no access to what the string\nitself is. The end result is just output that looks like:\n\n rcu_dyntick:          ffffffff818adeaa 1 0\n rcu_dyntick:          ffffffff818adeb5 0 140000000000000\n rcu_dyntick:          ffffffff818adeb5 0 140000000000000\n rcu_utilization:      ffffffff8184333b\n rcu_utilization:      ffffffff8184333b\n\nThe above is pretty useless when read by the userspace tools. Ideally\nwe would want something that looks like this:\n\n rcu_dyntick:          Start 1 0\n rcu_dyntick:          End 0 140000000000000\n rcu_dyntick:          Start 140000000000000 0\n rcu_callback:         rcu_preempt rhp\u003d0xffff880037aff710 func\u003dput_cred_rcu 0/4\n rcu_callback:         rcu_preempt rhp\u003d0xffff880078961980 func\u003dfile_free_rcu 0/5\n rcu_dyntick:          End 0 1\n\nThe trace_printk() which also only stores the address of the string\nformat instead of recording the string into the buffer itself, exports\nthe mapping of kernel addresses to format strings via the printk_format\nfile in the debugfs tracing directory.\n\nThe tracepoint strings can use this same method and output the format\nto the same file and the userspace tools will be able to decipher\nthe address without any modification.\n\nThe tracepoint strings need its own section to save the strings because\nthe trace_printk section will cause the trace_printk() buffers to be\nallocated if anything exists within the section. trace_printk() is only\nused for debugging and should never exist in the kernel, we can not use\nthe trace_printk sections.\n\nAdd a new tracepoint_str section that will also be examined by the output\nof the printk_format file.\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "09d8091c024ec88d1541d93eb8ddb2bd5cf10c39",
      "tree": "170740cc6580d2d397744006f4c3ec545aea497f",
      "parents": [
        "195a8afc7ac962f8da795549fe38e825f1372b0d"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 23 22:21:59 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 26 08:57:32 2013 -0400"
      },
      "message": "tracing: Remove locking trace_types_lock from tracing_reset_all_online_cpus()\n\nCommit a82274151af \"tracing: Protect ftrace_trace_arrays list in trace_events.c\"\nadded taking the trace_types_lock mutex in trace_events.c as there were\nseveral locations that needed it for protection. Unfortunately, it also\nencapsulated a call to tracing_reset_all_online_cpus() which also takes\nthe trace_types_lock, causing a deadlock.\n\nThis happens when a module has tracepoints and has been traced. When the\nmodule is removed, the trace events module notifier will grab the\ntrace_types_lock, do a bunch of clean ups, and also clears the buffer\nby calling tracing_reset_all_online_cpus. This doesn\u0027t happen often\nwhich explains why it wasn\u0027t caught right away.\n\nCommit a82274151af was marked for stable, which means this must be\nsent to stable too.\n\nLink: http://lkml.kernel.org/r/51EEC646.7070306@broadcom.com\n\nReported-by: Arend van Spril \u003carend@broadcom.com\u003e\nTested-by: Arend van Spriel \u003carend@broadcom.com\u003e\nCc: Alexander Z Lam \u003cazl@google.com\u003e\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "195a8afc7ac962f8da795549fe38e825f1372b0d",
      "tree": "5997b7318d7e41cf07bc27c3a828481f745d5fab",
      "parents": [
        "9c01fe4593db123c5a72dc36f0400f776e92c954"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 23 22:06:15 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:54 2013 -0400"
      },
      "message": "ftrace: Add check for NULL regs if ops has SAVE_REGS set\n\nIf a ftrace ops is registered with the SAVE_REGS flag set, and there\u0027s\nalready a ops registered to one of its functions but without the\nSAVE_REGS flag, there\u0027s a small race window where the SAVE_REGS ops gets\nadded to the list of callbacks to call for that function before the\ncallback trampoline gets set to save the regs.\n\nThe problem is, the function is not currently saving regs, which opens\na small race window where the ops that is expecting regs to be passed\nto it, wont. This can cause a crash if the callback were to reference\nthe regs, as the SAVE_REGS guarantees that regs will be set.\n\nTo fix this, we add a check in the loop case where it checks if the ops\nhas the SAVE_REGS flag set, and if so, it will ignore it if regs is\nnot set.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9c01fe4593db123c5a72dc36f0400f776e92c954",
      "tree": "717207fb5fbd5b12c2aa7bba5457f79af18219a5",
      "parents": [
        "6484c71cbc170634fa131b6d022d86d61686b88b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:26:13 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:53 2013 -0400"
      },
      "message": "tracing: Kill trace_cpu struct/members\n\nAfter the previous changes trace_array_cpu-\u003etrace_cpu and\ntrace_array-\u003etrace_cpu becomes write-only. Remove these members\nand kill \"struct trace_cpu\" as well.\n\nAs a side effect this also removes memset(per_cpu_memory, 0).\nIt was not needed, alloc_percpu() returns zero-filled memory.\n\nLink: http://lkml.kernel.org/r/20130723152613.GA23741@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6484c71cbc170634fa131b6d022d86d61686b88b",
      "tree": "68f696f4985f368a2fa7f93a2d474fea2c7585db",
      "parents": [
        "0bc392ee46d0fd8e6b678457ef71f074f19a03c5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:26:10 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:53 2013 -0400"
      },
      "message": "tracing: Change tracing_fops/snapshot_fops to rely on tracing_get_cpu()\n\ntracing_open() and tracing_snapshot_open() are racy, the memory\ninode-\u003ei_private points to can be already freed.\n\nConvert these last users of \"inode-\u003ei_private \u003d\u003d trace_cpu\" to\nuse \"i_private \u003d trace_array\" and rely on tracing_get_cpu().\n\nv2: incorporate the fix from Steven, tracing_release() must not\n    blindly dereference file-\u003eprivate_data unless we know that\n    the file was opened for reading.\n\nLink: http://lkml.kernel.org/r/20130723152610.GA23737@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0bc392ee46d0fd8e6b678457ef71f074f19a03c5",
      "tree": "e0f516c200ab6f1eea2f31323c6e4d24000d7e93",
      "parents": [
        "4d3435b8a4c3357695e09c5e7a3bf73a19fca5b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:26:06 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:52 2013 -0400"
      },
      "message": "tracing: Change tracing_entries_fops to rely on tracing_get_cpu()\n\ntracing_open_generic_tc() is racy, the memory inode-\u003ei_private\npoints to can be already freed.\n\n1. Change its last user, tracing_entries_fops, to use\n   tracing_*_generic_tr() instead.\n\n2. Change debugfs_create_file(\"buffer_size_kb\", data) callers\n   to pass \"data \u003d tr\".\n\n3. Change tracing_entries_read() and tracing_entries_write() to\n   use tracing_get_cpu().\n\n4. Kill the no longer used tracing_open_generic_tc() and\n   tracing_release_generic_tc().\n\nLink: http://lkml.kernel.org/r/20130723152606.GA23730@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4d3435b8a4c3357695e09c5e7a3bf73a19fca5b0",
      "tree": "6f9032ea0dd88228e864fbfdfd29bba08f80f9e8",
      "parents": [
        "46ef2be0d1d5ccea0c41bb606143586daadd537c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:26:03 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:52 2013 -0400"
      },
      "message": "tracing: Change tracing_stats_fops to rely on tracing_get_cpu()\n\ntracing_open_generic_tc() is racy, the memory inode-\u003ei_private\npoints to can be already freed.\n\n1. Change one of its users, tracing_stats_fops, to use\n   tracing_*_generic_tr() instead.\n\n2. Change trace_create_cpu_file(\"stats\", data) to pass \"data \u003d tr\".\n\n3. Change tracing_stats_read() to use tracing_get_cpu().\n\nLink: http://lkml.kernel.org/r/20130723152603.GA23727@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "46ef2be0d1d5ccea0c41bb606143586daadd537c",
      "tree": "e924cd0e92231bdf0fa5a37fa8372fe42b319b90",
      "parents": [
        "15544209cb0b5312e5220a9337a1fe61d1a1f2d9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:26:00 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:51 2013 -0400"
      },
      "message": "tracing: Change tracing_buffers_fops to rely on tracing_get_cpu()\n\ntracing_buffers_open() is racy, the memory inode-\u003ei_private points\nto can be already freed.\n\nChange debugfs_create_file(\"trace_pipe_raw\", data) caller to pass\n\"data \u003d tr\", tracing_buffers_open() can use tracing_get_cpu().\n\nChange debugfs_create_file(\"snapshot_raw_fops\", data) caller too,\nthis file uses tracing_buffers_open/release.\n\nLink: http://lkml.kernel.org/r/20130723152600.GA23720@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "15544209cb0b5312e5220a9337a1fe61d1a1f2d9",
      "tree": "ec12c5587cd71821b5edff4f67dc0439438cb538",
      "parents": [
        "649e9c70da6bfbeb563193a35d3424a5aa7c0d38"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:25:57 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:51 2013 -0400"
      },
      "message": "tracing: Change tracing_pipe_fops() to rely on tracing_get_cpu()\n\ntracing_open_pipe() is racy, the memory inode-\u003ei_private points to\ncan be already freed.\n\nChange debugfs_create_file(\"trace_pipe\", data) callers to to pass\n\"data \u003d tr\", tracing_open_pipe() can use tracing_get_cpu().\n\nLink: http://lkml.kernel.org/r/20130723152557.GA23717@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "649e9c70da6bfbeb563193a35d3424a5aa7c0d38",
      "tree": "3a9a5ab0fae2b98483ff55f0a8727987a4a8b780",
      "parents": [
        "e70e78e3c83b536730e31231dd9b979768d8df3c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 23 17:25:54 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Wed Jul 24 11:22:13 2013 -0400"
      },
      "message": "tracing: Introduce trace_create_cpu_file() and tracing_get_cpu()\n\nEvery \"file_operations\" used by tracing_init_debugfs_percpu is buggy.\nf_op-\u003eopen/etc does:\n\n\t1. struct trace_cpu *tc \u003d inode-\u003ei_private;\n\t   struct trace_array *tr \u003d tc-\u003etr;\n\n\t2. trace_array_get(tr) or fail;\n\n\t3. do_something(tc);\n\nBut tc (and tr) can be already freed before trace_array_get() is called.\nAnd it doesn\u0027t matter whether this file is per-cpu or it was created by\ninit_tracer_debugfs(), free_percpu() or kfree() are equally bad.\n\nNote that even 1. is not safe, the freed memory can be unmapped. But even\nif it was safe trace_array_get() can wrongly succeed if we also race with\nthe next new_instance_create() which can re-allocate the same tr, or tc\nwas overwritten and -\u003etr points to the valid tr. In this case 3. uses the\nfreed/reused memory.\n\nAdd the new trivial helper, trace_create_cpu_file() which simply calls\ntrace_create_file() and encodes \"cpu\" in \"struct inode\". Another helper,\ntracing_get_cpu() will be used to read cpu_nr-or-RING_BUFFER_ALL_CPUS.\n\nThe patch abuses -\u003ei_cdev to encode the number, it is never used unless\nthe file is S_ISCHR(). But we could use something else, say, i_bytes or\neven -\u003ed_fsdata. In any case this hack is hidden inside these 2 helpers,\nit would be trivial to change them if needed.\n\nThis patch only changes tracing_init_debugfs_percpu() to use the new\ntrace_create_cpu_file(), the next patches will change file_operations.\n\nNote: tracing_get_cpu(inode) is always safe but you can\u0027t trust the\nresult unless trace_array_get() was called, without trace_types_lock\nwhich acts as a barrier it can wrongly return RING_BUFFER_ALL_CPUS.\n\nLink: http://lkml.kernel.org/r/20130723152554.GA23710@redhat.com\n\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e70e78e3c83b536730e31231dd9b979768d8df3c",
      "tree": "d7aedcba5c94bdcaaf0e08b945e7a7639e2c283c",
      "parents": [
        "a644a7e9587802eabb2e229177606f6a74a60fc1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 19 17:36:44 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 19 14:32:22 2013 -0400"
      },
      "message": "tracing: Kill the unbalanced tr-\u003eref++ in tracing_buffers_open()\n\ntracing_buffers_open() does trace_array_get() and then it wrongly\ninrcements tr-\u003eref again under trace_types_lock. This means that\nevery caller leaks trace_array:\n\n\t# cd /sys/kernel/debug/tracing/\n\t# mkdir instances/X\n\t# true \u003c instances/X/per_cpu/cpu0/trace_pipe_raw\n\t# rmdir instances/X\n\trmdir: failed to remove `instances/X\u0027: Device or resource busy\n\nLink: http://lkml.kernel.org/r/20130719153644.GA18899@redhat.com\n\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a644a7e9587802eabb2e229177606f6a74a60fc1",
      "tree": "1d32e7fa1fc1aa57ccca8492a5268845ac4c2a09",
      "parents": [
        "cd458ba9d5a5592d37b5145e560071e91ea762ac"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 19 16:20:36 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 19 10:56:02 2013 -0400"
      },
      "message": "tracing: Kill trace_array-\u003ewaiter\n\nTrivial. trace_array-\u003ewaiter has no users since 6eaaa5d5\n\"tracing/core: use appropriate waiting on trace_pipe\".\n\nLink: http://lkml.kernel.org/r/20130719142036.GA1594@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cd458ba9d5a5592d37b5145e560071e91ea762ac",
      "tree": "d6a560b077696e68584995ba23e10556fcebcd8d",
      "parents": [
        "7710b639953b791610f0022a7d52d9801c93b969"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jul 18 20:47:12 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:33 2013 -0400"
      },
      "message": "tracing: Do not (ab)use trace_seq in event_id_read()\n\nevent_id_read() has no reason to kmalloc \"struct trace_seq\"\n(more than PAGE_SIZE!), it can use a small buffer instead.\n\nNote: \"if (*ppos) return 0\" looks strange and even wrong,\nsimple_read_from_buffer() handles ppos !\u003d 0 case corrrectly.\n\nAnd it seems that almost every user of trace_seq in this file\nshould be converted too. Unless you use seq_open(), trace_seq\nbuys nothing compared to the raw buffer, but it needs a bit\nmore memory and code.\n\nLink: http://lkml.kernel.org/r/20130718184712.GA4786@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7710b639953b791610f0022a7d52d9801c93b969",
      "tree": "ad1e4822ad3b1b067ee2806142613caec0ed1e60",
      "parents": [
        "8f768993394a8c0d3801033c11fd86ce8c88dcac"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jul 18 20:47:10 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:32 2013 -0400"
      },
      "message": "tracing: Simplify the iteration logic in f_start/f_next\n\nf_next() looks overcomplicated, and it is not strictly correct\neven if this doesn\u0027t matter.\n\nSay, FORMAT_FIELD_SEPERATOR should not return NULL (means EOF)\nif trace_get_fields() returns an empty list, we should simply\nadvance to FORMAT_PRINTFMT as we do when we find the end of list.\n\n1. Change f_next() to return \"struct list_head *\" rather than\n   \"ftrace_event_field *\", and change f_show() to do list_entry().\n\n   This simplifies the code a bit, only f_show() needs to know\n   about ftrace_event_field, and f_next() can play with -\u003eprev\n   directly\n\n2. Change f_next() to not play with -\u003eprev / return inside the\n   switch() statement. It can simply set node \u003d head/common_head,\n   the prev-or-advance-to-the-next-magic below does all work.\n\nWhile at it. f_start() looks overcomplicated too. I don\u0027t think\n*pos \u003d\u003d 0 makes sense as a separate case, just change this code\nto do \"while\" instead of \"do/while\".\n\nThe patch also moves f_start() down, close to f_stop(). This is\npurely cosmetic, just to make the locking added by the next patch\nmore clear/visible.\n\nLink: http://lkml.kernel.org/r/20130718184710.GA4783@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8f768993394a8c0d3801033c11fd86ce8c88dcac",
      "tree": "67321d3042a7561729c55763190ffde07336904a",
      "parents": [
        "f77d09a384676bde6445413949d9d2c508ff3e62"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 14:41:51 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:31 2013 -0400"
      },
      "message": "tracing: Add ref_data to function and fgraph tracer structs\n\nThe selftest for function and function graph tracers are defined as\n__init, as they are only executed at boot up. The \"tracer\" structs\nthat are associated to those tracers are not setup as __init as they\nare used after boot. To stop mismatch warnings, those structures\nneed to be annotated with __ref_data.\n\nCurrently, the tracer structures are defined to __read_mostly, as they\ndo not really change. But in the future they should be converted to\nconsts, but that will take a little work because they have a \"next\"\npointer that gets updated when they are registered. That will have to\nwait till the next major release.\n\nLink: http://lkml.kernel.org/r/1373596735.17876.84.camel@gandalf.local.home\n\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nReported-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f77d09a384676bde6445413949d9d2c508ff3e62",
      "tree": "2b3bf03ac95453bdff4d03f20db79f46a647dea6",
      "parents": [
        "609e85a70bcd0eedf4ec60639dbcfb1ab011e054"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Thu Jul 18 11:18:44 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:30 2013 -0400"
      },
      "message": "tracing: Miscellaneous fixes for trace_array ref counting\n\nSome error paths did not handle ref counting properly, and some trace files need\nref counting.\n\nLink: http://lkml.kernel.org/r/1374171524-11948-1-git-send-email-azl@google.com\n\nCc: stable@vger.kernel.org # 3.10\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "609e85a70bcd0eedf4ec60639dbcfb1ab011e054",
      "tree": "2d977d898d4c781198935482659dd0174e0b9218",
      "parents": [
        "a232e270dcb55a70ad3241bc6fc160fd9b5c9e6c"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Wed Jul 10 17:34:34 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:30 2013 -0400"
      },
      "message": "tracing: Fix error handling to ensure instances can always be removed\n\nRemove debugfs directories for tracing instances during creation if an error\noccurs causing the trace_array for that instance to not be added to\nftrace_trace_arrays. If the directory continues to exist after the error, it\ncannot be removed because the respective trace_array is not in\nftrace_trace_arrays.\n\nLink: http://lkml.kernel.org/r/1373502874-1706-2-git-send-email-azl@google.com\n\nCc: stable@vger.kernel.org # 3.10\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a232e270dcb55a70ad3241bc6fc160fd9b5c9e6c",
      "tree": "f2eba68c4e863ab55584abfd91cce3389c6c9433",
      "parents": [
        "cd92bf61d6d70bd3eb33b46d600e3f3eb9c5778a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Tue Jul 09 18:35:26 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:29 2013 -0400"
      },
      "message": "tracing/kprobe: Wait for disabling all running kprobe handlers\n\nWait for disabling all running kprobe handlers when a kprobe\nevent is disabled, since the caller, trace_remove_event_call()\nsupposes that a removing event is disabled completely by\ndisabling the event.\nWith this change, ftrace can ensure that there is no running\nevent handlers after disabling it.\n\nLink: http://lkml.kernel.org/r/20130709093526.20138.93100.stgit@mhiramat-M0-7522\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cd92bf61d6d70bd3eb33b46d600e3f3eb9c5778a",
      "tree": "7f02ec47e54b3fa2a139a21bbcfed90318de79d3",
      "parents": [
        "421c7860c6e1989da3962fafdd6699316c9f8e20"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 17 19:02:11 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:28 2013 -0400"
      },
      "message": "tracing/perf: Move the PERF_MAX_TRACE_SIZE check into perf_trace_buf_prepare()\n\nEvery perf_trace_buf_prepare() caller does\nWARN_ONCE(size \u003e PERF_MAX_TRACE_SIZE, message) and \"message\" is\nalmost the same.\n\nShift this WARN_ONCE() into perf_trace_buf_prepare(). This changes\nthe meaning of _ONCE, but I think this is fine.\n\n\t- 4947014 2932448 10104832  17984294  1126b26 vmlinux\n\t+ 4948422 2932448 10104832  17985702  11270a6 vmlinux\n\non my build.\n\nLink: http://lkml.kernel.org/r/20130617170211.GA19813@redhat.com\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "421c7860c6e1989da3962fafdd6699316c9f8e20",
      "tree": "a3247de06867de070ae709bcdca412e0a7900d62",
      "parents": [
        "b8ebfd3f7113b63dda93d76bfec638c00e6bd514"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 17 19:02:07 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:28 2013 -0400"
      },
      "message": "tracing/syscall: Avoid perf_trace_buf_*() if sys_data-\u003eperf_events is empty\n\nperf_trace_buf_prepare() + perf_trace_buf_submit(head, task \u003d\u003e NULL)\nmake no sense if hlist_empty(head). Change perf_syscall_enter/exit()\nto check sys_data-\u003e{enter,exit}_event-\u003eperf_events beforehand.\n\nLink: http://lkml.kernel.org/r/20130617170207.GA19806@redhat.com\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b8ebfd3f7113b63dda93d76bfec638c00e6bd514",
      "tree": "5a72a20c5fa86fe1c284308111132345f249c671",
      "parents": [
        "d611851b421731e2afd9cb956daae001af57a423"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 17 19:02:04 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:27 2013 -0400"
      },
      "message": "tracing/function: Avoid perf_trace_buf_*() if event_function.perf_events is empty\n\nperf_trace_buf_prepare() + perf_trace_buf_submit(head, task \u003d\u003e NULL)\nmake no sense if hlist_empty(head). Change perf_ftrace_function_call()\nto check event_function.perf_events beforehand.\n\nLink: http://lkml.kernel.org/r/20130617170204.GA19803@redhat.com\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d611851b421731e2afd9cb956daae001af57a423",
      "tree": "6f19d53ba666b299d54c96622d3f4f06652b1448",
      "parents": [
        "146c3442f2dd0f50d9431aea5d0d10dfd97c9999"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Mon Jul 15 16:32:50 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:31:26 2013 -0400"
      },
      "message": "tracing: Typo fix on ring buffer comments\n\nThere have some mismatch between comments with\nreal function name, update it.\n\nThis patch also add some missed function arguments\ndescription.\n\nLink: http://lkml.kernel.org/r/51E3B3B2.4080307@huawei.com\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "146c3442f2dd0f50d9431aea5d0d10dfd97c9999",
      "tree": "7ec08bbf5659c854fe46c6c9cc920a31c2354214",
      "parents": [
        "991821c86c2fb6cc4104ce679247864dbc070a83"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Mon Jul 15 16:32:44 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 18 21:30:36 2013 -0400"
      },
      "message": "tracing: Use trace_seq_puts()/trace_seq_putc() where possible\n\nFor string without format specifiers, use trace_seq_puts()\nor trace_seq_putc().\n\nLink: http://lkml.kernel.org/r/51E3B3AC.1000605@huawei.com\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\n[ fixed a trace_seq_putc(s, \" \") to trace_seq_putc(s, \u0027 \u0027) ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "991821c86c2fb6cc4104ce679247864dbc070a83",
      "tree": "1a3461bb5c843d939b5f176a53262206056cedf1",
      "parents": [
        "ad81f0545ef01ea651886dddac4bef6cec930092"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Mon Jul 15 16:32:34 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 15 12:38:10 2013 -0400"
      },
      "message": "tracing: Use correct config guard CONFIG_STACK_TRACER\n\nWe should use CONFIG_STACK_TRACER to guard readme text\nof stack tracer related file, not CONFIG_STACKTRACE.\n\nLink: http://lkml.kernel.org/r/51E3B3A2.8080609@huawei.com\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c72bb316916b1a6cf35e1d5238566ef27b0b7f80",
      "tree": "1bd7bb147302abf907bba9fb83cf74b4a5b6ef0d",
      "parents": [
        "6d128e1e72bf082542e85f72e6b7ddd704193588",
        "dcc302232c1f9b3ca16f6b8ee190eb0b1a8a0da3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 11 09:02:09 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 11 09:02:09 2013 -0700"
      },
      "message": "Merge tag \u0027trace-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing changes from Steven Rostedt:\n \"The majority of the changes here are cleanups for the large changes\n  that were added to 3.10, which includes several bug fixes that have\n  been marked for stable.\n\n  As for new features, there were a few, but nothing to write to LWN\n  about.  These include:\n\n  New function trigger called \"dump\" and \"cpudump\" that will cause\n  ftrace to dump its buffer to the console when the function is called.\n  The difference between \"dump\" and \"cpudump\" is that \"dump\" will dump\n  the entire contents of the ftrace buffer, where as \"cpudump\" will only\n  dump the contents of the ftrace buffer for the CPU that called the\n  function.\n\n  Another small enhancement is a new sysctl switch called\n  \"traceoff_on_warning\" which, when enabled, will disable tracing if any\n  WARN_ON() is triggered.  This is useful if you want to debug what\n  caused a warning and do not want to risk losing your trace data by the\n  ring buffer overwriting the data before you can disable it.  There\u0027s\n  also a kernel command line option that will make this enabled at boot\n  up called the same thing\"\n\n* tag \u0027trace-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (34 commits)\n  tracing: Make tracing_open_generic_{tr,tc}() static\n  tracing: Remove ftrace() function\n  tracing: Remove TRACE_EVENT_TYPE enum definition\n  tracing: Make tracer_tracing_{off,on,is_on}() static\n  tracing: Fix irqs-off tag display in syscall tracing\n  uprobes: Fix return value in error handling path\n  tracing: Fix race between deleting buffer and setting events\n  tracing: Add trace_array_get/put() to event handling\n  tracing: Get trace_array ref counts when accessing trace files\n  tracing: Add trace_array_get/put() to handle instance refs better\n  tracing: Protect ftrace_trace_arrays list in trace_events.c\n  tracing: Make trace_marker use the correct per-instance buffer\n  ftrace: Do not run selftest if command line parameter is set\n  tracing/kprobes: Don\u0027t pass addr\u003dip to perf_trace_buf_submit()\n  tracing: Use flag buffer_disabled for irqsoff tracer\n  tracing/kprobes: Turn trace_probe-\u003efiles into list_head\n  tracing: Fix disabling of soft disable\n  tracing: Add missing syscall_metadata comment\n  tracing: Simplify code for showing of soft disabled flag\n  tracing/kprobes: Kill probe_enable_lock\n  ...\n"
    },
    {
      "commit": "dcc302232c1f9b3ca16f6b8ee190eb0b1a8a0da3",
      "tree": "2887fc37188eb4ab9d7d4d17e090aeafb66c0e52",
      "parents": [
        "8de1eb02778b64f8b292db531cf39a429f84315f"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:30:52 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:33 2013 -0400"
      },
      "message": "tracing: Make tracing_open_generic_{tr,tc}() static\n\nI have patches that will use tracing_open_generic_tr/tc() in other\nfiles, but as they are not ready to be merged yet, and Fengguang Wu\u0027s\nsparse scripts pointed out that these functions were not declared\nanywhere, I\u0027ll make them static for now.\n\nWhen these functions are required to be used elsewhere, I\u0027ll remove\nthe static then.\n\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8de1eb02778b64f8b292db531cf39a429f84315f",
      "tree": "4e83db2c61e36e6a04d29435a57c694fe9452d0a",
      "parents": [
        "4480361c3c592fcbce3ef74e030719f0715e3a7e"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Wed Apr 10 11:26:30 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:32 2013 -0400"
      },
      "message": "tracing: Remove ftrace() function\n\nThe only caller of function ftrace(...) was removed a long time ago,\nso remove the function body as well.\n\nLink: http://lkml.kernel.org/r/1365564393-10972-10-git-send-email-jovi.zhangwei@huawei.com\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4480361c3c592fcbce3ef74e030719f0715e3a7e",
      "tree": "b2055f8de67207acf02d7b931ca581050e30c979",
      "parents": [
        "5280bcef91e706770cc1706eb97353e3513322b9"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Wed Apr 10 11:26:28 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:31 2013 -0400"
      },
      "message": "tracing: Remove TRACE_EVENT_TYPE enum definition\n\nTRACE_EVENT_TYPE enum is not used at present, remove it.\n\nLink: http://lkml.kernel.org/r/1365564393-10972-8-git-send-email-jovi.zhangwei@huawei.com\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5280bcef91e706770cc1706eb97353e3513322b9",
      "tree": "9330be13eb4eb593fda56dd519228ffc015978ea",
      "parents": [
        "11034ae9c20f4057a6127fc965906417978e69b2"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 19:59:57 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:31 2013 -0400"
      },
      "message": "tracing: Make tracer_tracing_{off,on,is_on}() static\n\nI have patches that will use tracer_tracing_on/off/is_on() in other\nfiles, but as they are not ready to be merged yet, and Fengguang Wu\u0027s\nsparse scripts pointed out that these functions were not declared\nanywhere, I\u0027ll make them static for now.\n\nWhen these functions are required to be used elsewhere, I\u0027ll remove\nthe static then.\n\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "11034ae9c20f4057a6127fc965906417978e69b2",
      "tree": "8d49babd094d8a1e044a0bed588c18965bc7604a",
      "parents": [
        "fa44063f9ef163c3a4c8d8c0465bb8a056b42035"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Wed Apr 10 11:26:23 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:30 2013 -0400"
      },
      "message": "tracing: Fix irqs-off tag display in syscall tracing\n\nAll syscall tracing irqs-off tags are wrong, the syscall enter entry doesn\u0027t\ndisable irqs.\n\n [root@jovi tracing]#echo \"syscalls:sys_enter_open\" \u003e set_event\n [root@jovi tracing]# cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 13/13   #P:2\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n       irqbalance-513   [000] d... 56115.496766: sys_open(filename: 804e1a6, flags: 0, mode: 1b6)\n       irqbalance-513   [000] d... 56115.497008: sys_open(filename: 804e1bb, flags: 0, mode: 1b6)\n         sendmail-771   [000] d... 56115.827982: sys_open(filename: b770e6d1, flags: 0, mode: 1b6)\n\nThe reason is syscall tracing doesn\u0027t record irq_flags into buffer.\nThe proper display is:\n\n [root@jovi tracing]#echo \"syscalls:sys_enter_open\" \u003e set_event\n [root@jovi tracing]# cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 14/14   #P:2\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n       irqbalance-514   [001] ....    46.213921: sys_open(filename: 804e1a6, flags: 0, mode: 1b6)\n       irqbalance-514   [001] ....    46.214160: sys_open(filename: 804e1bb, flags: 0, mode: 1b6)\n            \u003c...\u003e-920   [001] ....    47.307260: sys_open(filename: 4e82a0c5, flags: 80000, mode: 0)\n\nLink: http://lkml.kernel.org/r/1365564393-10972-3-git-send-email-jovi.zhangwei@huawei.com\n\nCc: stable@vger.kernel.org # 2.6.35\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "fa44063f9ef163c3a4c8d8c0465bb8a056b42035",
      "tree": "82074b8ab7cd7e21dd783eef360b39282e6657bf",
      "parents": [
        "2a6c24afab70dbcfee49f4c76e1511eec1a3298b"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Thu Jun 13 14:21:51 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:29 2013 -0400"
      },
      "message": "uprobes: Fix return value in error handling path\n\nWhen wrong argument is passed into uprobe_events it does not return\nan error:\n\n[root@jovi tracing]# echo \u0027p:myprobe /bin/bash\u0027 \u003e uprobe_events\n[root@jovi tracing]#\n\nThe proper response is:\n\n[root@jovi tracing]# echo \u0027p:myprobe /bin/bash\u0027 \u003e uprobe_events\n-bash: echo: write error: Invalid argument\n\nLink: http://lkml.kernel.org/r/51B964FF.5000106@huawei.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \u003csrikar@linux.vnet.ibm.com\u003e\nCc: stable@vger.kernel.org # 3.5+\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2a6c24afab70dbcfee49f4c76e1511eec1a3298b",
      "tree": "ea1f139f0f1192f4494a68166eb0ba36322a23de",
      "parents": [
        "8e2e2fa47129532a30cff6c25a47078dc97d9260"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 14:48:23 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 20:42:25 2013 -0400"
      },
      "message": "tracing: Fix race between deleting buffer and setting events\n\nWhile analyzing the code, I discovered that there\u0027s a potential race between\ndeleting a trace instance and setting events. There are a few races that can\noccur if events are being traced as the buffer is being deleted. Mostly the\nproblem comes with freeing the descriptor used by the trace event callback.\nTo prevent problems like this, the events are disabled before the buffer is\ndeleted. The problem with the current solution is that the event_mutex is let\ngo between disabling the events and freeing the files, which means that the events\ncould be enabled again while the freeing takes place.\n\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8e2e2fa47129532a30cff6c25a47078dc97d9260",
      "tree": "6cc93f432b3186200c7afeaca1a432e497ad949c",
      "parents": [
        "7b85af63034818e43aee6c1d7bf1c7c6796a9073"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 15:30:53 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 17:13:34 2013 -0400"
      },
      "message": "tracing: Add trace_array_get/put() to event handling\n\nCommit a695cb58162 \"tracing: Prevent deleting instances when they are being read\"\ntried to fix a race between deleting a trace instance and reading contents\nof a trace file. But it wasn\u0027t good enough. The following could crash the kernel:\n\n # cd /sys/kernel/debug/tracing/instances\n # ( while :; do mkdir foo; rmdir foo; done ) \u0026\n # ( while :; do echo 1 \u003e foo/events/sched/sched_switch 2\u003e /dev/null; done ) \u0026\n\nLuckily this can only be done by root user, but it should be fixed regardless.\n\nThe problem is that a delete of the file can happen after the write to the event\nis opened, but before the enabling happens.\n\nThe solution is to make sure the trace_array is available before succeeding in\nopening for write, and incerment the ref counter while opened.\n\nNow the instance can be deleted when the events are writing to the buffer,\nbut the deletion of the instance will disable all events before the instance\nis actually deleted.\n\nCc: stable@vger.kernel.org # 3.10\nReported-by: Alexander Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7b85af63034818e43aee6c1d7bf1c7c6796a9073",
      "tree": "4bc354897ff28147a5aedb7c318608a30d46e61b",
      "parents": [
        "ff451961a8b2a17667a7bfa39c86fb9b351445db"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 23:34:22 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 10:17:04 2013 -0400"
      },
      "message": "tracing: Get trace_array ref counts when accessing trace files\n\nWhen a trace file is opened that may access a trace array, it must\nincrement its ref count to prevent it from being deleted.\n\nCc: stable@vger.kernel.org # 3.10\nReported-by: Alexander Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff451961a8b2a17667a7bfa39c86fb9b351445db",
      "tree": "03f82366f860605664b4a7fe11a97f57fc0632a8",
      "parents": [
        "a82274151af2b075163e3c42c828529dee311487"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 22:50:29 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 02 09:58:11 2013 -0400"
      },
      "message": "tracing: Add trace_array_get/put() to handle instance refs better\n\nCommit a695cb58162 \"tracing: Prevent deleting instances when they are being read\"\ntried to fix a race between deleting a trace instance and reading contents\nof a trace file. But it wasn\u0027t good enough. The following could crash the kernel:\n\n # cd /sys/kernel/debug/tracing/instances\n # ( while :; do mkdir foo; rmdir foo; done ) \u0026\n # ( while :; do cat foo/trace \u0026\u003e /dev/null; done ) \u0026\n\nLuckily this can only be done by root user, but it should be fixed regardless.\n\nThe problem is that a delete of the file can happen after the reader starts\nto open the file but before it grabs the trace_types_mutex.\n\nThe solution is to validate the trace array before using it. If the trace\narray does not exist in the list of trace arrays, then it returns -ENODEV.\n\nThere\u0027s a possibility that a trace_array could be deleted and a new one\ncreated and the open would open its file instead. But that is very minor as\nit will just return the data of the new trace array, it may confuse the user\nbut it will not crash the system. As this can only be done by root anyway,\nthe race will only occur if root is deleting what its trying to read at\nthe same time.\n\nCc: stable@vger.kernel.org # 3.10\nReported-by: Alexander Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a82274151af2b075163e3c42c828529dee311487",
      "tree": "0923f9f765266925e9c800a461917ea312d3cc16",
      "parents": [
        "2d71619c59fac95a5415a326162fa046161b938c"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Mon Jul 01 19:37:54 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 23:30:08 2013 -0400"
      },
      "message": "tracing: Protect ftrace_trace_arrays list in trace_events.c\n\nThere are multiple places where the ftrace_trace_arrays list is accessed in\ntrace_events.c without the trace_types_lock held.\n\nLink: http://lkml.kernel.org/r/1372732674-22726-1-git-send-email-azl@google.com\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2d71619c59fac95a5415a326162fa046161b938c",
      "tree": "6146f93e2a629e840ad54e08b4246a7c7ff2a608",
      "parents": [
        "f1ed7c741fcd0c3d7d318e7c19813d89934b9296"
      ],
      "author": {
        "name": "Alexander Z Lam",
        "email": "azl@google.com",
        "time": "Mon Jul 01 15:31:24 2013 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 21:08:15 2013 -0400"
      },
      "message": "tracing: Make trace_marker use the correct per-instance buffer\n\nThe trace_marker file was present for each new instance created, but it\nadded the trace mark to the global trace buffer instead of to\nthe instance\u0027s buffer.\n\nLink: http://lkml.kernel.org/r/1372717885-4543-2-git-send-email-azl@google.com\n\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Alexander Z Lam \u003clambchop468@gmail.com\u003e\nCc: stable@vger.kernel.org # 3.10\nSigned-off-by: Alexander Z Lam \u003cazl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f1ed7c741fcd0c3d7d318e7c19813d89934b9296",
      "tree": "58721d29f205342f2099c8548860bcbe6bee13e7",
      "parents": [
        "cf6735a4b103b801753748531e3658cdc8cafa5e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 27 22:18:06 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:57:15 2013 -0400"
      },
      "message": "ftrace: Do not run selftest if command line parameter is set\n\nIf the kernel command line ftrace filter parameters are set\n(ftrace_filter or ftrace_notrace), force the function self test to\npass, with a warning why it was forced.\n\nIf the user adds a filter to the kernel command line, it is assumed\nthat they know what they are doing, and the self test should just not\nrun instead of failing (which disables function tracing) or clearing\nthe filter, as that will probably annoy the user.\n\nIf the user wants the selftest to run, the message will tell them why\nit did not.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cf6735a4b103b801753748531e3658cdc8cafa5e",
      "tree": "40515decc18c446690a9a44d42d42f74b96e657b",
      "parents": [
        "10246fa35d4ffdfe472185d4cbf9c2dfd9a9f023"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 20 19:38:11 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:28 2013 -0400"
      },
      "message": "tracing/kprobes: Don\u0027t pass addr\u003dip to perf_trace_buf_submit()\n\nkprobe_perf_func() and kretprobe_perf_func() pass addr\u003dip to\nperf_trace_buf_submit() for no reason.\n\nThis sets perf_sample_data-\u003eaddr for PERF_SAMPLE_ADDR, we already\nhave perf_sample_data-\u003eip initialized if PERF_SAMPLE_IP.\n\nLink: http://lkml.kernel.org/r/20130620173811.GA13161@redhat.com\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "10246fa35d4ffdfe472185d4cbf9c2dfd9a9f023",
      "tree": "277cb4041486bfe87730fd767b2a8072330211b9",
      "parents": [
        "b04d52e368e2cf526abb2bab61f304eaea126af2"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 15:58:24 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:28 2013 -0400"
      },
      "message": "tracing: Use flag buffer_disabled for irqsoff tracer\n\nIf the ring buffer is disabled and the irqsoff tracer records a trace it\nwill clear out its buffer and lose the data it had previously recorded.\n\nCurrently there\u0027s a callback when writing to the tracing_of file, but if\ntracing is disabled via the function tracer trigger, it will not inform\nthe irqsoff tracer to stop recording.\n\nBy using the \"mirror\" flag (buffer_disabled) in the trace_array, that keeps\ntrack of the status of the trace_array\u0027s buffer, it gives the irqsoff\ntracer a fast way to know if it should record a new trace or not.\nThe flag may be a little behind the real state of the buffer, but it\nshould not affect the trace too much. It\u0027s more important for the irqsoff\ntracer to be fast.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b04d52e368e2cf526abb2bab61f304eaea126af2",
      "tree": "b133eb6dcc68e0b4e39c477aeddad326c0797959",
      "parents": [
        "3baa5e4cf224b8a55220cc841bb475e164b84ceb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 20 19:38:14 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:27 2013 -0400"
      },
      "message": "tracing/kprobes: Turn trace_probe-\u003efiles into list_head\n\nI think that \"ftrace_event_file *trace_probe[]\" complicates the\ncode for no reason, turn it into list_head to simplify the code.\nenable_trace_probe() no longer needs synchronize_sched().\n\nThis needs the extra sizeof(list_head) memory for every attached\nftrace_event_file, hopefully not a problem in this case.\n\nLink: http://lkml.kernel.org/r/20130620173814.GA13165@redhat.com\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3baa5e4cf224b8a55220cc841bb475e164b84ceb",
      "tree": "a72b25de0dee2b538d94d8e08c1c9487a0cbd535",
      "parents": [
        "44a6a4ee1aed0eada8f21e6db81b4cd099788f82"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tom.zanussi@linux.intel.com",
        "time": "Sat Jun 29 00:08:07 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:26 2013 -0400"
      },
      "message": "tracing: Fix disabling of soft disable\n\nThe comment on the soft disable \u0027disable\u0027 case of\n__ftrace_event_enable_disable() states that the soft disable bit\nshould be cleared in that case, but currently only the soft mode bit\nis actually cleared.\n\nThis essentially leaves the standard non-soft-enable enable/disable\npaths as the only way to clear the soft disable flag, but the soft\ndisable bit should also be cleared when removing a trigger with \u0027!\u0027.\n\nAlso, the SOFT_DISABLED bit should never be set if SOFT_MODE is\ncleared.\n\nThis fixes the above discrepancies.\n\nLink: http://lkml.kernel.org/r/b9c68dd50bc07019e6c67d3f9b29be4ef1b2badb.1372479499.git.tom.zanussi@linux.intel.com\n\nSigned-off-by: Tom Zanussi \u003ctom.zanussi@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a439059610ecd257dba29a612729132e470d118f",
      "tree": "514d63a781142a1422c656b703fee01c51ec564e",
      "parents": [
        "3fe3d6193e7cd7b4dd2bde10772f048bdefea4ee"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tom.zanussi@linux.intel.com",
        "time": "Sat Jun 29 00:08:04 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:25 2013 -0400"
      },
      "message": "tracing: Simplify code for showing of soft disabled flag\n\nRather than enumerating each permutation, build the enable state\nstring up from the combination of states.  This also allows for the\nsimpler addition of more states.\n\nLink: http://lkml.kernel.org/r/9aff5af6dee2f5a40ca30df41c39d5f33e998d7a.1372479499.git.tom.zanussi@linux.intel.com\n\nSigned-off-by: Tom Zanussi \u003ctom.zanussi@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3fe3d6193e7cd7b4dd2bde10772f048bdefea4ee",
      "tree": "f7623a40ffb23ffab302a8cb9ed6c5716ec1d691",
      "parents": [
        "288e984e622336bab8bc3dfdf2f190816362d9a1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 20 19:38:09 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:24 2013 -0400"
      },
      "message": "tracing/kprobes: Kill probe_enable_lock\n\nenable_trace_probe() and disable_trace_probe() should not worry about\nserialization, the caller (perf_trace_init or __ftrace_set_clr_event)\nholds event_mutex.\n\nThey are also called by kprobe_trace_self_tests_init(), but this __init\nfunction can\u0027t race with itself or trace_events.c\n\nAnd note that this code depended on event_mutex even before 41a7dd420c\nwhich introduced probe_enable_lock. In fact it assumes that the caller\nkprobe_register() can never race with itself. Otherwise, say, tp-\u003eflags\nmanipulations are racy.\n\nLink: http://lkml.kernel.org/r/20130620173809.GA13158@redhat.com\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "288e984e622336bab8bc3dfdf2f190816362d9a1",
      "tree": "f760ff7bfe1278767f1dd2e2a95d91768ab5ecee",
      "parents": [
        "6e94a780374ed31b280f939d4757e8d7858dff16"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 20 19:38:06 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:23 2013 -0400"
      },
      "message": "tracing/kprobes: Avoid perf_trace_buf_*() if -\u003eperf_events is empty\n\nperf_trace_buf_prepare() + perf_trace_buf_submit() make no sense\nif this task/CPU has no active counters. Change kprobe_perf_func()\nand kretprobe_perf_func() to check call-\u003eperf_events beforehand\nand return if this list is empty.\n\nFor example, \"perf record -e some_probe -p1\". Only /sbin/init will\nreport, all other threads which hit the same probe will do\nperf_trace_buf_prepare/perf_trace_buf_submit just to realize that\nnobody wants perf_swevent_event().\n\nLink: http://lkml.kernel.org/r/20130620173806.GA13151@redhat.com\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6e94a780374ed31b280f939d4757e8d7858dff16",
      "tree": "e319c403696469c0c818d5c4fe4b674b303eca9b",
      "parents": [
        "52d85d763086594f139bf7d3a5641abeb91d9f57"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 27 10:58:31 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 01 20:34:22 2013 -0400"
      },
      "message": "tracing: Failed to create system directory\n\nRunning the following:\n\n # cd /sys/kernel/debug/tracing\n # echo p:i do_sys_open \u003e kprobe_events\n # echo p:j schedule \u003e\u003e kprobe_events\n # cat kprobe_events\np:kprobes/i do_sys_open\np:kprobes/j schedule\n # echo p:i do_sys_open \u003e\u003e kprobe_events\n # cat kprobe_events\np:kprobes/j schedule\np:kprobes/i do_sys_open\n # ls /sys/kernel/debug/tracing/events/kprobes/\nenable  filter  j\n\nNotice that the \u0027i\u0027 is missing from the kprobes directory.\n\nThe console produces:\n\n\"Failed to create system directory kprobes\"\n\nThis is because kprobes passes in a allocated name for the system\nand the ftrace event subsystem saves off that name instead of creating\na duplicate for it. But the kprobes may free the system name making\nthe pointer to it invalid.\n\nThis bug was introduced by 92edca073c37 \"tracing: Use direct field, type\nand system names\" which switched from using kstrdup() on the system name\nin favor of just keeping apointer to it, as the internal ftrace event\nsystem names are static and exist for the life of the computer being booted.\n\nInstead of reverting back to duplicating system names again, we can use\ncore_kernel_data() to determine if the passed in name was allocated or\nstatic. Then use the MSB of the ref_count to be a flag to keep track if\nthe name was allocated or not. Then we can still save from having to duplicate\nstrings that will always exist, but still copy the ones that may be freed.\n\nCc: stable@vger.kernel.org # 3.10\nReported-by: \"zhangwei(Jovi)\" \u003cjovi.zhangwei@huawei.com\u003e\nReported-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nTested-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "52d85d763086594f139bf7d3a5641abeb91d9f57",
      "tree": "ef1e85c2ac60076ecc3a31a60391653acff97e0b",
      "parents": [
        "195a84d91e92ee3fe571a2086a6db7e17bf5bc7c"
      ],
      "author": {
        "name": "Juri Lelli",
        "email": "juri.lelli@gmail.com",
        "time": "Wed Jun 12 12:03:18 2013 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 19 23:32:09 2013 -0400"
      },
      "message": "ftrace: Fix stddev calculation in function profiler\n\nWhen FUNCTION_GRAPH_TRACER is enabled, ftrace can profile kernel functions\nand print basic statistics about them. Unfortunately, running stddev\ncalculation is wrong. This patch corrects it implementing Welford’s method:\n\n        s^2 \u003d 1 / (n * (n-1)) * (n * \\Sum (x_i)^2 - (\\Sum x_i)^2) .\nLink: http://lkml.kernel.org/r/1371031398-24048-1-git-send-email-juri.lelli@gmail.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Juri Lelli \u003cjuri.lelli@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "195a84d91e92ee3fe571a2086a6db7e17bf5bc7c",
      "tree": "dd39d72abecfc8b23f3142d97802ab2a46bbe06d",
      "parents": [
        "de7edd31457b626e54a0b2a7e8ff4d65492f01ad"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Fri Jun 14 10:10:38 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 19 23:32:08 2013 -0400"
      },
      "message": "tracing/kprobes: Remove unnecessary checking of trace_probe_is_enabled\n\nSince tp-\u003eflags assignment was moved into function enable_trace_probe(),\nthere is no need to use trace_probe_is_enabled to check flags\nin the same function.\n\nRemove the unnecessary checking.\n\nLink: http://lkml.kernel.org/r/51BA7B9E.3040807@huawei.com\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "de7edd31457b626e54a0b2a7e8ff4d65492f01ad",
      "tree": "fc98cad3155f6cded6192709c4cb496dd17282db",
      "parents": [
        "c3e13c7c0605677a2c94957b39157f4501cea9a8"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jun 14 16:21:43 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 19 23:32:07 2013 -0400"
      },
      "message": "tracing: Disable tracing on warning\n\nAdd a traceoff_on_warning option in both the kernel command line as well\nas a sysctl option. When set, any WARN*() function that is hit will cause\nthe tracing_on variable to be cleared, which disables writing to the\nring buffer.\n\nThis is useful especially when tracing a bug with function tracing. When\na warning is hit, the print caused by the warning can flood the trace with\nthe functions that producing the output for the warning. This can make the\nresulting trace useless by either hiding where the bug happened, or worse,\nby overflowing the buffer and losing the trace of the bug totally.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1a891cf19cdfb645827969cc6aeaeebdefeb87b2",
      "tree": "7f62a3cd802158e8c29a6fdac1a54f39ba47a454",
      "parents": [
        "aaf6ac0f0871cb7fc0f28f3a00edf329bc7adc29"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 12 13:16:25 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 19 23:30:40 2013 -0400"
      },
      "message": "tracing: Add binary \u0027\u0026\u0027 filter for events\n\nThere are some cases when filtering on a set flag of a field of a tracepoint\nis useful. But currently the only filtering commands for numbered fields\nis \u003d\u003d, !\u003d, \u003c, \u003c\u003d, \u003e, \u003e\u003d. This does not help when you just want to trace if\na specific flag is set. For example:\n\n \u003e # sudo trace-cmd record -e brcmfmac:brcmf_dbg -f \u0027level \u0026 0x40000\u0027\n \u003e disable all\n \u003e enable brcmfmac:brcmf_dbg\n \u003e path \u003d /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable\n \u003e (level \u0026 0x40000)\n \u003e ^\n \u003e parse_error: Invalid operator\n \u003e\n\nWhen trying to trace brcmf_dbg when level has its 1 \u003c\u003c 18 bit set, the\nfilter fails to perform.\n\nBy allowing a binary \u0027\u0026\u0027 operation, this gives the user the ability to\ntest a bit.\n\nNote, a binary \u0027|\u0027 is not added, as it doesn\u0027t make sense as fields must\nbe compared to constants (for now), and ORing a constant will always return\ntrue.\n\nLink: http://lkml.kernel.org/r/1371057385.9844.261.camel@gandalf.local.home\n\nSuggested-by: Arend van Spriel \u003carend@broadcom.com\u003e\nTested-by: Arend van Spriel \u003carend@broadcom.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aaf6ac0f0871cb7fc0f28f3a00edf329bc7adc29",
      "tree": "44f9ced8832fe8e5d61a7b78a87cf4eef0667ef9",
      "parents": [
        "1b3d0623cd9da35fe1d52281ed06c2ff543cd660"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Fri Jun 07 15:07:48 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:52 2013 -0400"
      },
      "message": "tracing: Do not call kmem_cache_free() on allocation failure\n\nThere\u0027s no point calling it when _alloc() failed.\n\nLink: http://lkml.kernel.org/r/1370585268-29169-1-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7614c3dc74733dff4b0e774f7a894b9ea6ec508c",
      "tree": "4dd344fc218514d48c30e95821e984c10668b2d5",
      "parents": [
        "238ae93d699d59876b470bf6455de22bcfaa9a1b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 20:01:16 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:50 2013 -0400"
      },
      "message": "ftrace: Use schedule_on_each_cpu() as a heavy synchronize_sched()\n\nThe function tracer uses preempt_disable/enable_notrace() for\nsynchronization between reading registered ftrace_ops and unregistering\nthem.\n\nMost of the ftrace_ops are global permanent structures that do not\nrequire this synchronization. That is, ops may be added and removed from\nthe hlist but are never freed, and wont hurt if a synchronization is\nmissed.\n\nBut this is not true for dynamically created ftrace_ops or control_ops,\nwhich are used by the perf function tracing.\n\nThe problem here is that the function tracer can be used to trace\nkernel/user context switches as well as going to and from idle.\nBasically, it can be used to trace blind spots of the RCU subsystem.\nThis means that even though preempt_disable() is done, a\nsynchronize_sched() will ignore CPUs that haven\u0027t made it out of user\nspace or idle. These can include functions that are being traced just\nbefore entering or exiting the kernel sections.\n\nTo implement the RCU synchronization, instead of using\nsynchronize_sched() the use of schedule_on_each_cpu() is performed. This\nmeans that when a dynamically allocated ftrace_ops, or a control ops is\nbeing unregistered, all CPUs must be touched and execute a ftrace_sync()\nstub function via the work queues. This will rip CPUs out from idle or\nin dynamic tick mode. This only happens when a user disables perf\nfunction tracing or other dynamically allocated function tracers, but it\nallows us to continue to debug RCU and context tracking with function\ntracing.\n\nLink: http://lkml.kernel.org/r/1369785676.15552.55.camel@gandalf.local.home\n\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "238ae93d699d59876b470bf6455de22bcfaa9a1b",
      "tree": "abd8e269b1c48ffcd4eb4e9120edd051f58202cd",
      "parents": [
        "8092e808a31839c502a52d391b15f31c1d8764f5"
      ],
      "author": {
        "name": "Wang YanQing",
        "email": "udknight@gmail.com",
        "time": "Sun May 26 16:52:01 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:49 2013 -0400"
      },
      "message": "tracing: Fix file mode of free_buffer\n\nCommit 4f271a2a60c748599b30bb4dafff30d770439b96\n(tracing: Add a proc file to stop tracing and free buffer)\nimplement a method to free up ring buffer in kernel memory\nin the release code path of free_buffer\u0027s fd.\n\nThen we don\u0027t need read/write support for free_buffer,\nindeed we just have a dummy write fop, and don\u0027t implement read fop.\n\nSo the 0200 is more reasonable file mode for free_buffer than\nthe current file mode 0644.\n\nLink: http://lkml.kernel.org/r/20130526085201.GA3183@udknight\n\nAcked-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nAcked-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Wang YanQing \u003cudknight@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8092e808a31839c502a52d391b15f31c1d8764f5",
      "tree": "1ff012dac3fa01d07b6e9e51b026b877856bb176",
      "parents": [
        "90e3c03c3a09a7b176b3fe59d78f5d9755ac8e37"
      ],
      "author": {
        "name": "Harsh Prateek Bora",
        "email": "harsh@linux.vnet.ibm.com",
        "time": "Fri May 24 12:52:17 2013 +0530"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:49 2013 -0400"
      },
      "message": "tracing/trivial: Consolidate error return condition\n\nConsolidate the checks for !enabled and !param to return -EINVAL\nin event_enable_func().\n\nLink: http://lkml.kernel.org/r/1369380137-12452-1-git-send-email-harsh@linux.vnet.ibm.com\n\nSigned-off-by: Harsh Prateek Bora \u003charsh@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "90e3c03c3a09a7b176b3fe59d78f5d9755ac8e37",
      "tree": "a37db37999a01fb1f425a19f5a9615faf1059b73",
      "parents": [
        "ad71d889b88055e61e3970a6744a271a51a94f42"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 30 19:00:46 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:48 2013 -0400"
      },
      "message": "tracing: Add function probe to trigger a ftrace dump of current CPU trace\n\nAdd the \"cpudump\" command to have the current CPU ftrace buffer dumped\nto console if a function is hit. This is useful when debugging a\ntripple fault, where you have an idea of a function that is called\njust before the tripple fault occurs, and can tell ftrace to dump its\ncontent out to the console before it continues.\n\nThis differs from the \"dump\" command as it only dumps the content of\nthe ring buffer for the currently executing CPU, and does not show\nthe contents of the other CPUs.\n\nFormat is:\n\n  \u003cfunction\u003e:cpudump\n\necho \u0027bad_address:cpudump\u0027 \u003e /debug/tracing/set_ftrace_filter\n\nTo remove this:\n\necho \u0027!bad_address:cpudump\u0027 \u003e /debug/tracing/set_ftrace_filter\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ad71d889b88055e61e3970a6744a271a51a94f42",
      "tree": "716f6e043847000a82449270e3b2d5dcdc9c4f79",
      "parents": [
        "317ddd256b9c24b0d78fa8018f80f1e495481a10"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 30 15:46:14 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 18:38:46 2013 -0400"
      },
      "message": "tracing: Add function probe to trigger a ftrace dump to console\n\nAdd the \"dump\" command to have the ftrace buffer dumped to console if\na function is hit. This is useful when debugging a tripple fault,\nwhere you have an idea of a function that is called just before the\ntripple fault occurs, and can tell ftrace to dump its content out\nto the console before it continues.\n\nFormat is:\n\n  \u003cfunction\u003e:dump\n\necho \u0027bad_address:dump\u0027 \u003e /debug/tracing/set_ftrace_filter\n\nTo remove this:\n\necho \u0027!bad_address:dump\u0027 \u003e /debug/tracing/set_ftrace_filter\n\nRequested-by: Luis Claudio R. Goncalves \u003clclaudio@uudg.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "58e8eedf18577c7eac722d5d1f190507ea263d1b",
      "tree": "6a44f69cf8711a4853fc4e921e77cc64784fa9f9",
      "parents": [
        "f17a5194859a82afe4164e938b92035b86c55794"
      ],
      "author": {
        "name": "Yoshihiro YUNOMAE",
        "email": "yoshihiro.yunomae.ez@hitachi.com",
        "time": "Tue Apr 23 10:32:39 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 13:58:46 2013 -0400"
      },
      "message": "tracing: Fix outputting formats of x86-tsc and counter when use trace_clock\n\nOutputting formats of x86-tsc and counter should be a raw format, but after\napplying the patch(2b6080f28c7cc3efc8625ab71495aae89aeb63a0), the format was\nchanged to nanosec. This is because the global variable trace_clock_id was used.\nWhen we use multiple buffers, clock_id of each sub-buffer should be used. Then,\nthis patch uses tr-\u003eclock_id instead of the global variable trace_clock_id.\n\n[ Basically, this fixes a regression where the multibuffer code changed the\n  trace_clock file to update tr-\u003eclock_id but the traces still use the old\n  global trace_clock_id variable, negating the file\u0027s effect. The global\n  trace_clock_id variable is obsolete and removed. - SR ]\n\nLink: http://lkml.kernel.org/r/20130423013239.22334.7394.stgit@yunodevel\n\nSigned-off-by: Yoshihiro YUNOMAE \u003cyoshihiro.yunomae.ez@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f17a5194859a82afe4164e938b92035b86c55794",
      "tree": "d900ce9c7a19c37bb2840942c495da81ea748114",
      "parents": [
        "0184d50f9fd17658c232d6ee6d465a87f989d706"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 30 21:10:37 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 06 12:35:30 2013 -0400"
      },
      "message": "tracing: Use current_uid() for critical time tracing\n\nThe irqsoff tracer records the max time that interrupts are disabled.\nThere are hooks in the assembly code that calls back into the tracer when\ninterrupts are disabled or enabled.\n\nWhen they are enabled, the tracer checks if the amount of time they\nwere disabled is larger than the previous recorded max interrupts off\ntime. If it is, it creates a snapshot of the currently running trace\nto store where the last largest interrupts off time was held and how\nit happened.\n\nDuring testing, this RCU lockdep dump appeared:\n\n[ 1257.829021] \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[ 1257.829021] [ INFO: suspicious RCU usage. ]\n[ 1257.829021] 3.10.0-rc1-test+ #171 Tainted: G        W\n[ 1257.829021] -------------------------------\n[ 1257.829021] /home/rostedt/work/git/linux-trace.git/include/linux/rcupdate.h:780 rcu_read_lock() used illegally while idle!\n[ 1257.829021]\n[ 1257.829021] other info that might help us debug this:\n[ 1257.829021]\n[ 1257.829021]\n[ 1257.829021] RCU used illegally from idle CPU!\n[ 1257.829021] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[ 1257.829021] RCU used illegally from extended quiescent state!\n[ 1257.829021] 2 locks held by trace-cmd/4831:\n[ 1257.829021]  #0:  (max_trace_lock){......}, at: [\u003cffffffff810e2b77\u003e] stop_critical_timing+0x1a3/0x209\n[ 1257.829021]  #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff810dae5a\u003e] __update_max_tr+0x88/0x1ee\n[ 1257.829021]\n[ 1257.829021] stack backtrace:\n[ 1257.829021] CPU: 3 PID: 4831 Comm: trace-cmd Tainted: G        W    3.10.0-rc1-test+ #171\n[ 1257.829021] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007\n[ 1257.829021]  0000000000000001 ffff880065f49da8 ffffffff8153dd2b ffff880065f49dd8\n[ 1257.829021]  ffffffff81092a00 ffff88006bd78680 ffff88007add7500 0000000000000003\n[ 1257.829021]  ffff88006bd78680 ffff880065f49e18 ffffffff810daebf ffffffff810dae5a\n[ 1257.829021] Call Trace:\n[ 1257.829021]  [\u003cffffffff8153dd2b\u003e] dump_stack+0x19/0x1b\n[ 1257.829021]  [\u003cffffffff81092a00\u003e] lockdep_rcu_suspicious+0x109/0x112\n[ 1257.829021]  [\u003cffffffff810daebf\u003e] __update_max_tr+0xed/0x1ee\n[ 1257.829021]  [\u003cffffffff810dae5a\u003e] ? __update_max_tr+0x88/0x1ee\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810dbf85\u003e] update_max_tr_single+0x11d/0x12d\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e2b15\u003e] stop_critical_timing+0x141/0x209\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] ? trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e3057\u003e] time_hardirqs_on+0x2a/0x2f\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff8109550c\u003e] trace_hardirqs_on_caller+0x16/0x197\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810029b4\u003e] do_notify_resume+0x92/0x97\n[ 1257.829021]  [\u003cffffffff8154bdca\u003e] int_signal+0x12/0x17\n\nWhat happened was entering into the user code, the interrupts were enabled\nand a max interrupts off was recorded. The trace buffer was saved along with\nvarious information about the task: comm, pid, uid, priority, etc.\n\nThe uid is recorded with task_uid(tsk). But this is a macro that uses rcu_read_lock()\nto retrieve the data, and this happened to happen where RCU is blind (user_enter).\n\nAs only the preempt and irqs off tracers can have this happen, and they both\nonly have the tsk \u003d\u003d current, if tsk \u003d\u003d current, use current_uid() instead of\ntask_uid(), as current_uid() does not use RCU as only current can change its uid.\n\nThis fixes the RCU suspicious splat.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0184d50f9fd17658c232d6ee6d465a87f989d706",
      "tree": "fdf81c6309458bf0a2a1af17115c42a2270889a9",
      "parents": [
        "1bb539ca36e21c2f4fce0865e11df384bc7b7656"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 29 15:56:49 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 29 16:00:03 2013 -0400"
      },
      "message": "tracing: Fix bad parameter passed in branch selftest\n\nThe branch selftest calls trace_test_buffer(), but with the new code\nit expects the first parameter to be a pointer to a struct trace_buffer.\nAll self tests were changed but the branch selftest was missed.\n\nThis caused either a crash or failed test when the branch selftest was\nenabled.\n\nLink: http://lkml.kernel.org/r/20130529141333.GA24064@localhost\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1bb539ca36e21c2f4fce0865e11df384bc7b7656",
      "tree": "dc428dcb96afce5b34e671d0c4c08975807c0c4f",
      "parents": [
        "12bcbe66d7b3cc9f9f86cd02f925666eaa3c2107"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 14:38:43 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 22:48:00 2013 -0400"
      },
      "message": "ftrace: Use the rcu _notrace variants for rcu_dereference_raw() and friends\n\nAs rcu_dereference_raw() under RCU debug config options can add quite a\nbit of checks, and that tracing uses rcu_dereference_raw(), these checks\nhappen with the function tracer. The function tracer also happens to trace\nthese debug checks too. This added overhead can livelock the system.\n\nHave the function tracer use the new RCU _notrace equivalents that do\nnot do the debug checks for RCU.\n\nLink: http://lkml.kernel.org/r/20130528184209.467603904@goodmis.org\n\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6721cb60022629ae76365551f05d9658b8d14c55",
      "tree": "00d16ebb628161995b02939460d3f7b8d0f5ac53",
      "parents": [
        "ca1643186d3dce6171d8f171e516b02496360a9e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 14:21:36 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Tue May 28 10:53:20 2013 -0400"
      },
      "message": "ring-buffer: Do not poll non allocated cpu buffers\n\nThe tracing infrastructure sets up for possible CPUs, but it uses\nthe ring buffer polling, it is possible to call the ring buffer\npolling code with a CPU that hasn\u0027t been allocated. This will cause\na kernel oops when it access a ring buffer cpu buffer that is part\nof the possible cpus but hasn\u0027t been allocated yet as the CPU has never\nbeen online.\n\nReported-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nTested-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ca1643186d3dce6171d8f171e516b02496360a9e",
      "tree": "35e8b4bacd61a022ca8d3259cc01606b924ab109",
      "parents": [
        "6ed0106667d76589cb648c27edb4f4ffbf9d59ca"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 11:51:10 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 11:57:25 2013 -0400"
      },
      "message": "tracing: Fix crash when ftrace\u003dnop on the kernel command line\n\nIf ftrace\u003d\u003ctracer\u003e is on the kernel command line, when that tracer is\nregistered, it will be initiated by tracing_set_tracer() to execute that\ntracer.\n\nThe nop tracer is just a stub tracer that is used to have no tracer\nenabled. It is assigned at early bootup as it is the default tracer.\n\nBut if ftrace\u003dnop is on the kernel command line, the registering of the\nnop tracer will call tracing_set_tracer() which will try to execute\nthe nop tracer. But it expects tr-\u003ecurrent_trace to be assigned something\nas it usually is assigned to the nop tracer. As it hasn\u0027t been assigned\nto anything yet, it causes the system to crash.\n\nThe simple fix is to move the tr-\u003ecurrent_trace \u003d nop before registering\nthe nop tracer. The functionality is still the same as the nop tracer\ndoesn\u0027t do anything anyway.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6ed0106667d76589cb648c27edb4f4ffbf9d59ca",
      "tree": "703a6db004b022ddebdfaf186c66e5bfabc03e5f",
      "parents": [
        "b62fdd97fcae17e483b005bafd13fadbd9840672"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 16 20:48:49 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 16 11:01:16 2013 -0400"
      },
      "message": "tracing: Return -EBUSY when event_enable_func() fails to get module\n\nSince try_module_get() returns false( \u003d 0) when it fails to\npindown a module, event_enable_func() returns 0 which means\n\"succeed\". This can cause a kernel panic when the entry\nis removed, because the event is already released.\n\nThis fixes the bug by returning -EBUSY, because the reason\nwhy it fails is that the module is being removed at that time.\n\nLink: http://lkml.kernel.org/r/20130516114848.13508.97899.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b62fdd97fcae17e483b005bafd13fadbd9840672",
      "tree": "59604faf8121c8007154c6df62c572e70e8f0925",
      "parents": [
        "3d1fc7b0880c4db612a3d3211a808659e28af588"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:39 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:24 2013 -0400"
      },
      "message": "tracing/kprobes: Make print_*probe_event static\n\nAccording to sparse warning, print_*probe_event static because\nthose functions are not directly called from outside.\n\nLink: http://lkml.kernel.org/r/20130513115839.6545.83067.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3d1fc7b0880c4db612a3d3211a808659e28af588",
      "tree": "12e965b6e43ec621325a0c142996c56a341bd637",
      "parents": [
        "c02c7e65d9b13670e34bc523744cf4f6e99c198a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:37 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:23 2013 -0400"
      },
      "message": "tracing/kprobes: Fix a sparse warning for incorrect type in assignment\n\nFix a sparse warning about the rcu operated pointer is\ndefined without __rcu address space.\n\nLink: http://lkml.kernel.org/r/20130513115837.6545.23322.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c02c7e65d9b13670e34bc523744cf4f6e99c198a",
      "tree": "186f0a0e169e83b9c7d899ace2e028b7293459c5",
      "parents": [
        "60705c89460fdc7227f2d153b68b3f34814738a4"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:34 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:22 2013 -0400"
      },
      "message": "tracing/kprobes: Use rcu_dereference_raw for tp-\u003efiles\n\nUse rcu_dereference_raw() for accessing tp-\u003efiles. Because the\nwrite-side uses rcu_assign_pointer() for memory barrier,\nthe read-side also has to use rcu_dereference_raw() with\nread memory barrier.\n\nLink: http://lkml.kernel.org/r/20130513115834.6545.17022.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "60705c89460fdc7227f2d153b68b3f34814738a4",
      "tree": "e4eddb24dc8ecd3edeaf3b3342539c0e21165437",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 14 15:40:48 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:49:18 2013 -0400"
      },
      "message": "tracing: Fix leaks of filter preds\n\nSpecial preds are created when folding a series of preds that\ncan be done in serial. These are allocated in an ops field of\nthe pred structure. But they were never freed, causing memory\nleaks.\n\nThis was discovered using the kmemleak checker:\n\nunreferenced object 0xffff8800797fd5e0 (size 32):\n  comm \"swapper/0\", pid 1, jiffies 4294690605 (age 104.608s)\n  hex dump (first 32 bytes):\n    00 00 01 00 03 00 05 00 07 00 09 00 0b 00 0d 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff814b52af\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff8111ff84\u003e] kmemleak_alloc_recursive.constprop.42+0x16/0x18\n    [\u003cffffffff81120e68\u003e] __kmalloc+0xd7/0x125\n    [\u003cffffffff810d47eb\u003e] kcalloc.constprop.24+0x2d/0x2f\n    [\u003cffffffff810d4896\u003e] fold_pred_tree_cb+0xa9/0xf4\n    [\u003cffffffff810d3781\u003e] walk_pred_tree+0x47/0xcc\n    [\u003cffffffff810d5030\u003e] replace_preds.isra.20+0x6f8/0x72f\n    [\u003cffffffff810d50b5\u003e] create_filter+0x4e/0x8b\n    [\u003cffffffff81b1c30d\u003e] ftrace_test_event_filter+0x5a/0x155\n    [\u003cffffffff8100028d\u003e] do_one_initcall+0xa0/0x137\n    [\u003cffffffff81afbedf\u003e] kernel_init_freeable+0x14d/0x1dc\n    [\u003cffffffff814b24b7\u003e] kernel_init+0xe/0xdb\n    [\u003cffffffff814d539c\u003e] ret_from_fork+0x7c/0xb0\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: stable@vger.kernel.org # 2.6.39+\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26b840ae5d5140fe7b2226098826c449e63de072",
      "tree": "0f4a6f1575a7f0e49f63da7920258e1e89359036",
      "parents": [
        "607eeb0b836aa24a6972a460a213c4f87902d403",
        "b8820084f2130b3dcfb09c78ac16cdd2194a345b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 17:04:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 17:04:59 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing/kprobes update from Steven Rostedt:\n \"The majority of these changes are from Masami Hiramatsu bringing\n  kprobes up to par with the latest changes to ftrace (multi buffering\n  and the new function probes).\n\n  He also discovered and fixed some bugs in doing so.  When pulling in\n  his patches, I also found a few minor bugs as well and fixed them.\n\n  This also includes a compile fix for some archs that select the ring\n  buffer but not tracing.\n\n  I based this off of the last patch you took from me that fixed the\n  merge conflict error, as that was the commit that had all the changes\n  I needed for this set of changes.\"\n\n* tag \u0027trace-fixes-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing/kprobes: Support soft-mode disabling\n  tracing/kprobes: Support ftrace_event_file base multibuffer\n  tracing/kprobes: Pass trace_probe directly from dispatcher\n  tracing/kprobes: Increment probe hit-count even if it is used by perf\n  tracing/kprobes: Use bool for retprobe checker\n  ftrace: Fix function probe when more than one probe is added\n  ftrace: Fix the output of enabled_functions debug file\n  ftrace: Fix locking in register_ftrace_function_probe()\n  tracing: Add helper function trace_create_new_event() to remove duplicate code\n  tracing: Modify soft-mode only if there\u0027s no other referrer\n  tracing: Indicate enabled soft-mode in enable file\n  tracing/kprobes: Fix to increment return event probe hit-count\n  ftrace: Cleanup regex_lock and ftrace_lock around hash updating\n  ftrace, kprobes: Fix a deadlock on ftrace_regex_lock\n  ftrace: Have ftrace_regex_write() return either read or error\n  tracing: Return error if register_ftrace_function_probe() fails for event_enable_func()\n  tracing: Don\u0027t succeed if event_enable_func did not register anything\n  ring-buffer: Select IRQ_WORK\n"
    },
    {
      "commit": "b8820084f2130b3dcfb09c78ac16cdd2194a345b",
      "tree": "5cfc6d47197adcbebff40c42fc17fea8d6246887",
      "parents": [
        "41a7dd420c57323391d58b553318c1fad8e7ebc2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:54 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:22:16 2013 -0400"
      },
      "message": "tracing/kprobes: Support soft-mode disabling\n\nSupport soft-mode disabling on kprobe-based dynamic events.\nSoft-disabling is just ignoring recording if the soft disabled\nflag is set.\n\nLink: http://lkml.kernel.org/r/20130509054454.30398.7237.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "41a7dd420c57323391d58b553318c1fad8e7ebc2",
      "tree": "5e1d64afa7395335381203d64f2ce91b09bd0f9b",
      "parents": [
        "2b106aabe6c566ba19c352f22683381e1ea41326"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:49 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:21:47 2013 -0400"
      },
      "message": "tracing/kprobes: Support ftrace_event_file base multibuffer\n\nSupport multi-buffer on kprobe-based dynamic events by\nusing ftrace_event_file.\n\nLink: http://lkml.kernel.org/r/20130509054449.30398.88343.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2b106aabe6c566ba19c352f22683381e1ea41326",
      "tree": "b97934b7082be136b32e84cd5eb22d2296168878",
      "parents": [
        "48182bd2261766b810e4e4269a23236c1ace63fb"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:41 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:19:48 2013 -0400"
      },
      "message": "tracing/kprobes: Pass trace_probe directly from dispatcher\n\nPass the pointer of struct trace_probe directly from probe\ndispatcher to handlers. This removes redundant container_of\nmacro uses. Same thing has already done in trace_uprobe.\n\nLink: http://lkml.kernel.org/r/20130509054441.30398.69112.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "48182bd2261766b810e4e4269a23236c1ace63fb",
      "tree": "dabbc38dbf312f99abc1288d8a92d37fea4260e9",
      "parents": [
        "db02038f4e6a776fd3a0bb71242be37ff378ce86"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:36 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:18:44 2013 -0400"
      },
      "message": "tracing/kprobes: Increment probe hit-count even if it is used by perf\n\nIncrement probe hit-count for profiling even if it is used\nby perf tool. Same thing has already done in trace_uprobe.\n\nLink: http://lkml.kernel.org/r/20130509054436.30398.21133.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "db02038f4e6a776fd3a0bb71242be37ff378ce86",
      "tree": "e40bd40ae205bf21e84835800006f23992c5cbeb",
      "parents": [
        "19dd603e45199d93d61e9853c596d098e04e5d66"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:32 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:17:35 2013 -0400"
      },
      "message": "tracing/kprobes: Use bool for retprobe checker\n\nUse bool instead of int for kretprobe checker.\n\nLink: http://lkml.kernel.org/r/20130509054431.30398.38561.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "19dd603e45199d93d61e9853c596d098e04e5d66",
      "tree": "f749edd09d9eeb4c4c989936677e8f2bbdd95dc0",
      "parents": [
        "23ea9c4dda129fe1711f9fbda03c7a9c91cf1322"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 19:37:36 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:16:27 2013 -0400"
      },
      "message": "ftrace: Fix function probe when more than one probe is added\n\nWhen the first function probe is added and the function tracer\nis updated the functions are modified to call the probe.\nBut when a second function is added, it updates the function\nrecords to have the second function also update, but it fails\nto update the actual function itself.\n\nThis prevents the second (or third or forth and so on) probes\nfrom having their functions called.\n\n  # echo vfs_symlink:enable_event:sched:sched_switch \u003e set_ftrace_filter\n  # echo vfs_unlink:enable_event:sched:sched_switch \u003e set_ftrace_filter\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 0/0   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n  # touch /tmp/a\n  # rm /tmp/a\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 0/0   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n  # ln -s /tmp/a\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 414/414   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] d..3  2847.923031: sched_switch: prev_comm\u003dswapper/0 prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d2786 next_prio\u003d120\n            \u003c...\u003e-3114  [001] d..4  2847.923035: sched_switch: prev_comm\u003dln prev_pid\u003d3114 prev_prio\u003d120 prev_state\u003dx \u003d\u003d\u003e next_comm\u003dswapper/1 next_pid\u003d0 next_prio\u003d120\n             bash-2786  [000] d..3  2847.923535: sched_switch: prev_comm\u003dbash prev_pid\u003d2786 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dkworker/0:1 next_pid\u003d34 next_prio\u003d120\n      kworker/0:1-34    [000] d..3  2847.923552: sched_switch: prev_comm\u003dkworker/0:1 prev_pid\u003d34 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper/0 next_pid\u003d0 next_prio\u003d120\n           \u003cidle\u003e-0     [002] d..3  2847.923554: sched_switch: prev_comm\u003dswapper/2 prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dsshd next_pid\u003d2783 next_prio\u003d120\n             sshd-2783  [002] d..3  2847.923660: sched_switch: prev_comm\u003dsshd prev_pid\u003d2783 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper/2 next_pid\u003d0 next_prio\u003d120\n\nStill need to update the functions even though the probe itself\ndoes not need to be registered again when added a new probe.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "23ea9c4dda129fe1711f9fbda03c7a9c91cf1322",
      "tree": "8924f6fd2399654393d0b41352d40bd07037c470",
      "parents": [
        "5ae0bf5972b66d35e5674e1b7d855b1e111a68ae"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 19:31:48 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:16:16 2013 -0400"
      },
      "message": "ftrace: Fix the output of enabled_functions debug file\n\nThe enabled_functions debugfs file was created to be able to see\nwhat functions have been modified from nops to calling a tracer.\n\nThe current method uses the counter in the function record.\nAs when a ftrace_ops is registered to a function, its count\nincreases. But that doesn\u0027t mean that the function is actively\nbeing traced. /proc/sys/kernel/ftrace_enabled can be set to zero\nwhich would disable it, as well as something can go wrong and\nwe can think its enabled when only the counter is set.\n\nThe record\u0027s FTRACE_FL_ENABLED flag is set or cleared when its\nfunction is modified. That is a much more accurate way of knowing\nwhat function is enabled or not.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5ae0bf5972b66d35e5674e1b7d855b1e111a68ae",
      "tree": "6383ef4d7fd63d6da285f3908c6f3c14028715a0",
      "parents": [
        "da511bf33e47ea1f33f4b672f7da166d2a1b8a91"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 18:20:37 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:15:30 2013 -0400"
      },
      "message": "ftrace: Fix locking in register_ftrace_function_probe()\n\nThe iteration of the ftrace function list and the call to\nftrace_match_record() need to be protected by the ftrace_lock.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "da511bf33e47ea1f33f4b672f7da166d2a1b8a91",
      "tree": "3e514023cb9fd7f91c54e0b952ee5c47b76b945a",
      "parents": [
        "1cf4c0732db3cd3c49cadbc60ff6bda08604e6fa"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 15:00:07 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:14:49 2013 -0400"
      },
      "message": "tracing: Add helper function trace_create_new_event() to remove duplicate code\n\nBoth __trace_add_new_event() and __trace_early_add_new_event() do\nbasically the same thing, except that __trace_add_new_event() does\na little more.\n\nInstead of having duplicate code between the two functions, add\na helper function trace_create_new_event() that both can use.\nThis will help against having bugs fixed in one function but not\nthe other.\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "1cf4c0732db3cd3c49cadbc60ff6bda08604e6fa"
}
