)]}'
{
  "log": [
    {
      "commit": "d652e1eb8e7b739fccbfb503a3da3e9f640fbf3d",
      "tree": "55ab77bad0cbb045eac0b84b80d63f88f1ae09e6",
      "parents": [
        "8f55cea410dbc56114bb71a3742032070c8108d0",
        "77852fea6e2442a0e654a9292060489895de18c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Main changes:\n\n   - scheduler side full-dynticks (user-space execution is undisturbed\n     and receives no timer IRQs) preparation changes that convert the\n     cputime accounting code to be full-dynticks ready, from Frederic\n     Weisbecker.\n\n   - Initial sched.h split-up changes, by Clark Williams\n\n   - select_idle_sibling() performance improvement by Mike Galbraith:\n\n        \" 1 tbench pair (worst case) in a 10 core + SMT package:\n\n          pre   15.22 MB/sec 1 procs\n          post 252.01 MB/sec 1 procs \"\n\n  - sched_rr_get_interval() ABI fix/change.  We think this detail is not\n    used by apps (so it\u0027s not an ABI in practice), but lets keep it\n    under observation.\n\n  - misc RT scheduling cleanups, optimizations\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  sched/rt: Add \u003clinux/sched/rt.h\u003e header to \u003clinux/init_task.h\u003e\n  cputime: Remove irqsave from seqlock readers\n  sched, powerpc: Fix sched.h split-up build failure\n  cputime: Restore CPU_ACCOUNTING config defaults for PPC64\n  sched/rt: Move rt specific bits into new header file\n  sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n  sched: Move sched.h sysctl bits into separate header\n  sched: Fix signedness bug in yield_to()\n  sched: Fix select_idle_sibling() bouncing cow syndrome\n  sched/rt: Further simplify pick_rt_task()\n  sched/rt: Do not account zero delta_exec in update_curr_rt()\n  cputime: Safely read cputime of full dynticks CPUs\n  kvm: Prepare to add generic guest entry/exit callbacks\n  cputime: Use accessors to read task cputime stats\n  cputime: Allow dynamic switch between tick/virtual based cputime accounting\n  cputime: Generic on-demand virtual cputime accounting\n  cputime: Move default nsecs_to_cputime() to jiffies based cputime file\n  cputime: Librarize per nsecs resolution cputime definitions\n  cputime: Avoid multiplication overflow on utime scaling\n  context_tracking: Export context state for generic vtime\n  ...\n\nFix up conflict in kernel/context_tracking.c due to comment additions.\n"
    },
    {
      "commit": "8f55cea410dbc56114bb71a3742032070c8108d0",
      "tree": "59605f0ee961274b22f91add33f5c32459471a83",
      "parents": [
        "b7133a9a103655cda254987a3c0975fd9d8c443f",
        "e259514eef764a5286873618e34c560ecb6cff13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf changes from Ingo Molnar:\n \"There are lots of improvements, the biggest changes are:\n\n  Main kernel side changes:\n\n   - Improve uprobes performance by adding \u0027pre-filtering\u0027 support, by\n     Oleg Nesterov.\n\n   - Make some POWER7 events available in sysfs, equivalent to what was\n     done on x86, from Sukadev Bhattiprolu.\n\n   - tracing updates by Steve Rostedt - mostly misc fixes and smaller\n     improvements.\n\n   - Use perf/event tracing to report PCI Express advanced errors, by\n     Tony Luck.\n\n   - Enable northbridge performance counters on AMD family 15h, by Jacob\n     Shin.\n\n   - This tracing commit:\n\n        tracing: Remove the extra 4 bytes of padding in events\n\n     changes the ABI.  All involved parties (PowerTop in particular)\n     seem to agree that it\u0027s safe to do now with the introduction of\n     libtraceevent, but the devil is in the details ...\n\n  Main tooling side changes:\n\n   - Add \u0027event group view\u0027, from Namyung Kim:\n\n     To use it, \u0027perf record\u0027 should group events when recording.  And\n     then perf report parses the saved group relation from file header\n     and prints them together if --group option is provided.  You can\n     use the \u0027perf evlist\u0027 command to see event group information:\n\n        $ perf record -e \u0027{ref-cycles,cycles}\u0027 noploop 1\n        [ perf record: Woken up 2 times to write data ]\n        [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ]\n\n        $ perf evlist --group\n        {ref-cycles,cycles}\n\n     With this example, default perf report will show you each event\n     separately.\n\n     You can use --group option to enable event group view:\n\n        $ perf report --group\n        ...\n        # group: {ref-cycles,cycles}\n        # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n        # Samples: 7K of event \u0027anon group { ref-cycles, cycles }\u0027\n        # Event count (approx.): 6876107743\n        #\n        #         Overhead  Command      Shared Object                      Symbol\n        # ................  .......  .................  ..........................\n            99.84%  99.76%  noploop  noploop            [.] main\n             0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp\n             0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del\n             0.03%   0.03%  noploop  [kernel.kallsyms]  [k] sched_clock_cpu\n             0.02%   0.00%  noploop  [kernel.kallsyms]  [k] account_user_time\n             0.01%   0.00%  noploop  [kernel.kallsyms]  [k] __alloc_pages_nodemask\n             0.00%   0.00%  noploop  [kernel.kallsyms]  [k] native_write_msr_safe\n             0.00%   0.11%  noploop  [kernel.kallsyms]  [k] _raw_spin_lock\n             0.00%   0.06%  noploop  [kernel.kallsyms]  [k] find_get_page\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] rcu_check_callbacks\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] __current_kernel_time\n\n     As you can see the Overhead column now contains both of ref-cycles\n     and cycles and header line shows group information also - \u0027anon\n     group { ref-cycles, cycles }\u0027.  The output is sorted by period of\n     group leader first.\n\n   - Initial GTK+ annotate browser, from Namhyung Kim.\n\n   - Add option for runtime switching perf data file in perf report,\n     just press \u0027s\u0027 and a menu with the valid files found in the current\n     directory will be presented, from Feng Tang.\n\n   - Add support to display whole group data for raw columns, from Jiri\n     Olsa.\n\n   - Add per processor socket count aggregation in perf stat, from\n     Stephane Eranian.\n\n   - Add interval printing in \u0027perf stat\u0027, from Stephane Eranian.\n\n   - \u0027perf test\u0027 improvements\n\n   - Add support for wildcards in tracepoint system name, from Jiri\n     Olsa.\n\n   - Add anonymous huge page recognition, from Joshua Zhu.\n\n   - perf build-id cache now can show DSOs present in a perf.data file\n     that are not in the cache, to integrate with build-id servers being\n     put in place by organizations such as Fedora.\n\n   - perf top now shares more of the evsel config/creation routines with\n     \u0027record\u0027, paving the way for further integration like \u0027top\u0027\n     snapshots, etc.\n\n   - perf top now supports DWARF callchains.\n\n   - Fix mmap limitations on 32-bit, fix from David Miller.\n\n   - \u0027perf bench numa mem\u0027 NUMA performance measurement suite\n\n   - ... and lots of fixes, performance improvements, cleanups and other\n     improvements I failed to list - see the shortlog and git log for\n     details.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (270 commits)\n  perf/x86/amd: Enable northbridge performance counters on AMD family 15h\n  perf/hwbp: Fix cleanup in case of kzalloc failure\n  perf tools: Fix build with bison 2.3 and older.\n  perf tools: Limit unwind support to x86 archs\n  perf annotate: Make it to be able to skip unannotatable symbols\n  perf gtk/annotate: Fail early if it can\u0027t annotate\n  perf gtk/annotate: Show source lines with gray color\n  perf gtk/annotate: Support multiple event annotation\n  perf ui/gtk: Implement basic GTK2 annotation browser\n  perf annotate: Fix warning message on a missing vmlinux\n  perf buildid-cache: Add --update option\n  uprobes/perf: Avoid uprobe_apply() whenever possible\n  uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n  uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n  uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n  uprobes: Introduce uprobe_apply()\n  perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n  uprobes/perf: Always increment trace_uprobe-\u003enhit\n  uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n  uprobes/tracing: Introduce is_trace_uprobe_enabled()\n  ...\n"
    },
    {
      "commit": "b2fe8ba674e8acbb9e8e63510b802c6d054d88a3",
      "tree": "1bd1defbfe3f285dfa7c77f94bc5523ac4a82679",
      "parents": [
        "f42d24a1d20d2e72d1e5d48930f18b138dfad117"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 19:05:43 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:08 2013 +0100"
      },
      "message": "uprobes/perf: Avoid uprobe_apply() whenever possible\n\nuprobe_perf_open/close call the costly uprobe_apply() every time,\nwe can avoid it if:\n\n\t- \"nr_systemwide !\u003d 0\" is not changed.\n\n\t- There is another process/thread with the same -\u003emm.\n\n\t- copy_proccess() does inherit_event(). dup_mmap() preserves the\n\t  inserted breakpoints.\n\n\t- event-\u003eattr.enable_on_exec \u003d\u003d T, we can rely on uprobe_mmap()\n\t  called by exec/mmap paths.\n\n\t- tp_target is exiting. Only _close() checks PF_EXITING, I don\u0027t\n\t  think TRACE_REG_PERF_OPEN can hit the dying task too often.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "f42d24a1d20d2e72d1e5d48930f18b138dfad117",
      "tree": "10696fc2f0a21d60a7fb1581efecd172435f0408",
      "parents": [
        "31ba334836c0ac0039084859f14a5b96858493dc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 17:48:34 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:07 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n\nChange uprobe_trace_func() and uprobe_perf_func() to return \"int\". Change\nuprobe_dispatcher() to return \"trace_ret | perf_ret\" although this is not\nneeded, currently TP_FLAG_TRACE/TP_FLAG_PROFILE are mutually exclusive.\n\nThe only functional change is that uprobe_perf_func() checks the filtering\ntoo and returns UPROBE_HANDLER_REMOVE if nobody wants to trace current.\n\nTesting:\n\n\t# perf probe -x /lib/libc.so.6 syscall\n\n\t# perf record -e probe_libc:syscall -i perl -e \u0027fork; syscall -1 for 1..10; wait\u0027\n\n\t# perf report --show-total-period\n\t\t100.00%            10     perl  libc-2.8.so    [.] syscall\n\nBefore this patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t20\n\nA child process doesn\u0027t have a counter, but still it hits this breakoint\n\"copied\" by dup_mmap().\n\nAfter the patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t11\n\nThe child process hits this int3 only once and does unapply_uprobe().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "31ba334836c0ac0039084859f14a5b96858493dc",
      "tree": "a6f8d72d58f165717481aae43fcabe25b326dce3",
      "parents": [
        "736288ba5016e255869c26296014eeff649971c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 17:11:58 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:07 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n\nFinally implement uprobe_perf_filter() which checks -\u003enr_systemwide or\n-\u003eperf_events to figure out whether we need to insert the breakpoint.\n\nuprobe_perf_open/close are changed to do uprobe_apply(true/false) when\nthe new perf event comes or goes away.\n\nNote that currently this is very suboptimal:\n\n\t- uprobe_register() called by TRACE_REG_PERF_REGISTER becomes a\n\t  heavy nop, consumer-\u003efilter() always returns F at this stage.\n\n\t  As it was already discussed we need uprobe_register_only() to\n\t  avoid the costly register_for_each_vma() when possible.\n\n\t- uprobe_apply() is oftenly overkill. Unless \"nr_systemwide !\u003d 0\"\n\t  changes we need uprobe_apply_mm(), unapply_uprobe() is almost\n\t  what we need.\n\n\t- uprobe_apply() can be simply avoided sometimes, see the next\n\t  changes.\n\nTesting:\n\n\t# perf probe -x /lib/libc.so.6 syscall\n\n\t# perl -e \u0027syscall -1 while 1\u0027 \u0026\n\t[1] 530\n\n\t# perf record -e probe_libc:syscall perl -e \u0027syscall -1 for 1..10; sleep 1\u0027\n\n\t# perf report --show-total-period\n\t\t100.00%            10     perl  libc-2.8.so    [.] syscall\n\nBefore this patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t79291\n\nA huge -\u003enrhit \u003d\u003d 79291 reflects the fact that the background process\n530 constantly hits this breakpoint too, even if doesn\u0027t contribute to\nthe output.\n\nAfter the patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t10\n\nThis shows that only the target process was punished by int3.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "736288ba5016e255869c26296014eeff649971c2",
      "tree": "235ab829ec63136e19d97a817489484f88ad3da8",
      "parents": [
        "bdf8647c44766590ed02f9a84a450a796558b753"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Feb 03 20:58:35 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:06 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n\nIntroduce \"struct trace_uprobe_filter\" which records the \"active\"\nperf_event\u0027s attached to ftrace_event_call. For the start we simply\nuse list_head, we can optimize this later if needed. For example, we\ndo not really need to record an event with -\u003eparent !\u003d NULL, we can\nrely on parent-\u003echild_list. And we can certainly do some optimizations\nfor the case when 2 events have the same -\u003etp_target or tp_target-\u003emm.\n\nChange trace_uprobe_register() to process TRACE_REG_PERF_OPEN/CLOSE\nand add/del this perf_event to the list.\n\nWe can probably avoid any locking, but lets start with the \"obvioulsy\ncorrect\" trace_uprobe_filter-\u003erwlock which protects everything.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "1b47aefd9b6bd439a4be43c47acd22987ac22db8",
      "tree": "a3d0a40ce94f7e57d4375a77a0c74c0001b4bb67",
      "parents": [
        "a932b7381f81235530c3d0acbd3ba2c7537d78e5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:55:27 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:34 2013 +0100"
      },
      "message": "uprobes/perf: Always increment trace_uprobe-\u003enhit\n\nMove tu-\u003enhit++ from uprobe_trace_func() to uprobe_dispatcher().\n\n-\u003enhit counts how many time we hit the breakpoint inserted by this\nuprobe, we do not want to loose this info if uprobe was enabled by\nsys_perf_event_open().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a932b7381f81235530c3d0acbd3ba2c7537d78e5",
      "tree": "01fb4bbdd21cb67c63b6302ffbbbda22fdcbebcd",
      "parents": [
        "b64b007797c1e6d6b745c93c296ba1d5f4d72d86"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:47:23 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:33 2013 +0100"
      },
      "message": "uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n\ntrace_uprobe-\u003econsumer and \"struct uprobe_trace_consumer\" add the\nunnecessary indirection and complicate the code for no reason.\n\nThis patch simply embeds uprobe_consumer into \"struct trace_uprobe\",\nall other changes only fix the compilation errors.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "b64b007797c1e6d6b745c93c296ba1d5f4d72d86",
      "tree": "b2cfd860f68b421484d7992f354d62b8e6b7f1ce",
      "parents": [
        "7e4e28c53963e6cfa94d8109bb8f5233c5659048"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:15:30 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:30 2013 +0100"
      },
      "message": "uprobes/tracing: Introduce is_trace_uprobe_enabled()\n\nprobe_event_enable/disable() check tu-\u003econsumer !\u003d NULL to avoid the\nwrong uprobe_register/unregister().\n\nWe are going to kill this pointer and \"struct uprobe_trace_consumer\",\nso we add the new helper, is_trace_uprobe_enabled(), which can rely\non TP_FLAG_TRACE/TP_FLAG_PROFILE instead.\n\nNote: the current logic doesn\u0027t look optimal, it is not clear why\nTP_FLAG_TRACE/TP_FLAG_PROFILE are mutually exclusive, we will probably\nchange this later.\n\nAlso kill the unused TP_FLAG_UPROBE.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7e4e28c53963e6cfa94d8109bb8f5233c5659048",
      "tree": "5405bc0552ef0f2d8c67bb9ef6b391f5a7a504b3",
      "parents": [
        "4161824f18ff4f56f46595a4016c7315dd0d24f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jan 28 17:08:47 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:14 2013 +0100"
      },
      "message": "uprobes/tracing: Ensure inode !\u003d NULL in create_trace_uprobe()\n\nprobe_event_enable/disable() check tu-\u003einode !\u003d NULL at the start.\nThis is ugly, if igrab() can fail create_trace_uprobe() should not\nsucceed and \"postpone\" the failure.\n\nAnd S_ISREG(inode-\u003ei_mode) check added by d24d7dbf is not safe.\n\nNote: alloc_uprobe() should probably check igrab() !\u003d NULL as well.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4161824f18ff4f56f46595a4016c7315dd0d24f1",
      "tree": "0543311b70f8855f967fb41c3d7c3bf61c0c8a09",
      "parents": [
        "84d7ed799fd6c1366547d88ddb8188c65de3b94f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jan 27 18:36:24 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:10:19 2013 +0100"
      },
      "message": "uprobes/tracing: Fully initialize uprobe_trace_consumer before uprobe_register()\n\nprobe_event_enable() does uprobe_register() and only after that sets\nutc-\u003etu and tu-\u003econsumer/flags. This can race with uprobe_dispatcher()\nwhich can miss these assignments or see them out of order. Nothing\nreally bad can happen, but this doesn\u0027t look clean/safe.\n\nAnd this does not allow to use uprobe_consumer-\u003efilter() we are going\nto add, it is called by uprobe_register() and it needs utc-\u003etu.\n\nChange this code to initialize everything before uprobe_register(), and\nreset tu-\u003econsumer/flags if it fails. We can\u0027t race with event_disable(),\nthe caller holds event_mutex, and if we could the code would be wrong\nanyway.\n\nIn fact I think uprobe_trace_consumer should die, it buys nothing but\ncomplicates the code. We can simply add uprobe_consumer into trace_uprobe.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "84d7ed799fd6c1366547d88ddb8188c65de3b94f",
      "tree": "a40db2f5e04c02d087a37c53182335fc46803ea3",
      "parents": [
        "e8440c1458ba571bc3fac8a6beb53ff604199f5b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jan 27 18:20:45 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:10:17 2013 +0100"
      },
      "message": "uprobes/tracing: Fix dentry/mount leak in create_trace_uprobe()\n\ncreate_trace_uprobe() does kern_path() to find -\u003ed_inode, but forgets\nto do path_put(). We can do this right after igrab().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "74e59dfc6b19e3472a7c16ad57bc831e6e647895",
      "tree": "5047f177b6c604f83d4b9f62614acf93a08d34bd",
      "parents": [
        "cf31ec3f7fece93f3fce3ee5964e27857141ea47"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Dec 30 15:54:08 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Change handle_swbp() to expose bp_vaddr to handler_chain()\n\nChange handle_swbp() to set regs-\u003eip \u003d bp_vaddr in advance, this is\nwhat consumer-\u003ehandler() needs but uprobe_get_swbp_addr() is not\nexported.\n\nThis also simplifies the code and makes it more consistent across\nthe supported architectures. handle_swbp() becomes the only caller\nof uprobe_get_swbp_addr().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\n"
    },
    {
      "commit": "fe20d71f25400cccc8bffef865f79250be7dbc81",
      "tree": "97b5f757780ebf67359867c9493c4860b0cb4477",
      "parents": [
        "f0744af7d0fde190674064c54e2ff60b34ac71fe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 17:32:30 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:02 2013 +0100"
      },
      "message": "uprobes: Kill uprobe_consumer-\u003efilter()\n\nuprobe_consumer-\u003efilter() is pointless in its current form, kill it.\n\nWe will add it back, but with the different signature/semantics. Perhaps\nwe will even re-introduce the callsite in handler_chain(), but not to\njust skip uc-\u003ehandler().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8bd75c77b7c6a3954140dd2e20346aef3efe4a35",
      "tree": "10e0d451a58aeb6c8f48b871a848276bf3a8a359",
      "parents": [
        "ce0dbbbb30aee6a835511d5be446462388ba9eee"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:07 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:08 2013 +0100"
      },
      "message": "sched/rt: Move rt specific bits into new header file\n\nMove rt scheduler definitions out of include/linux/sched.h into\nnew file include/linux/sched/rt.h\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094707.7b9f825f@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9228b5f24325a3863a4819300b471278ff14b48f",
      "tree": "7108d5a0e1d0a717d80a7f77e45d29255321b2e6",
      "parents": [
        "88b62b915b0b7e25870eb0604ed9a92ba4bfc9f7",
        "40393f525fe698e2b639cf1851ef0a40e7e158a8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 19:06:34 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 19:06:34 2013 +0100"
      },
      "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\n1.\tChanges to rcutorture and to RCU documentation. Posted to LKML at\n        https://lkml.org/lkml/2013/1/26/188.\n\n2.\tEnhancements to uniprocessor handling in tiny RCU. Posted to LKML\n        at https://lkml.org/lkml/2013/1/27/2.\n\n3.\tTag RCU callbacks with grace-period number to simplify callback\n        advancement. Posted to LKML at https://lkml.org/lkml/2013/1/26/203.\n\n4.\tMiscellaneous fixes. Posted to LKML at https://lkml.org/lkml/2013/1/26/204.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d840f718d28715a9833c1a8f46c2493ff3fd219b",
      "tree": "6fb0115db3dabd5ce79563fb1412c98edc24088e",
      "parents": [
        "c1043fcda1b9e8e5144cfdaee7be262c50dbdead"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 01 18:38:47 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 01 18:38:47 2013 -0500"
      },
      "message": "tracing: Init current_trace to nop_trace and remove NULL checks\n\nOn early boot up, when the ftrace ring buffer is initialized, the\nstatic variable current_trace is initialized to \u0026nop_trace.\nBefore this initialization, current_trace is NULL and will never\nbecome NULL again. It is always reassigned to a ftrace tracer.\n\nSeveral places check if current_trace is NULL before it uses\nit, and this check is frivolous, because at the point in time\nwhen the checks are made the only way current_trace could be\nNULL is if ftrace failed its allocations at boot up, and the\npaths to these locations would probably not be possible.\n\nBy initializing current_trace to \u0026nop_trace where it is declared,\ncurrent_trace will never be NULL, and we can remove all these\nchecks of current_trace being NULL which never needed to be\nchecked in the first place.\n\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "debdd57f5145f3c6a4b3f8d0126abd1a2def7fc6",
      "tree": "8dca457fbccaf115c48fdb9fb6ee6a9469b8b6de",
      "parents": [
        "2fd196ec1eab2623096e7fc7e6f3976160392bce"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Dec 26 11:53:00 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:06 2013 -0500"
      },
      "message": "tracing: Make a snapshot feature available from userspace\n\nFtrace has a snapshot feature available from kernel space and\nlatency tracers (e.g. irqsoff) are using it. This patch enables\nuser applictions to take a snapshot via debugfs.\n\nAdd \"snapshot\" debugfs file in \"tracing\" directory.\n\n  snapshot:\n    This is used to take a snapshot and to read the output of the\n    snapshot.\n\n     # echo 1 \u003e snapshot\n\n    This will allocate the spare buffer for snapshot (if it is\n    not allocated), and take a snapshot.\n\n     # cat snapshot\n\n    This will show contents of the snapshot.\n\n     # echo 0 \u003e snapshot\n\n    This will free the snapshot if it is allocated.\n\n    Any other positive values will clear the snapshot contents if\n    the snapshot is allocated, or return EINVAL if it is not allocated.\n\nLink: http://lkml.kernel.org/r/20121226025300.3252.86850.stgit@liselsia\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\n[\n   Fixed irqsoff selftest and also a conflict with a change\n   that fixes the update_max_tr.\n]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2fd196ec1eab2623096e7fc7e6f3976160392bce",
      "tree": "1994d70de20c1a1bc296e02d352142414484355b",
      "parents": [
        "5e67b51e3fb22ad43faf9589e9019ad9c6a00413"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Dec 26 11:52:52 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:05 2013 -0500"
      },
      "message": "tracing: Replace static old_tracer check of tracer name\n\nCurrently the trace buffer read functions use a static variable\n\"old_tracer\" for detecting if the current tracer changes. This\nwas suitable for a single trace file (\"trace\"), but to add a\nsnapshot feature that will use the same function for its file,\na check against a static variable is not sufficient.\n\nTo use the output functions for two different files, instead of\nstoring the current tracer in a static variable, as the trace\niterator descriptor contains a pointer to the original current\ntracer\u0027s name, that pointer can now be used to check if the\ncurrent tracer has changed between different reads of the trace\nfile.\n\nLink: http://lkml.kernel.org/r/20121226025252.3252.9276.stgit@liselsia\n\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e67b51e3fb22ad43faf9589e9019ad9c6a00413",
      "tree": "31e55312ca60e9efa447abdeaeb6ca1546a14673",
      "parents": [
        "ad964704ba9326d027fc10fd0099b7c880e50172"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Thu Dec 27 11:49:45 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:05 2013 -0500"
      },
      "message": "tracing: Use sched_clock_cpu for trace_clock_global\n\nFor systems with an unstable sched_clock, all cpu_clock() does is enable/\ndisable local irq during the call to sched_clock_cpu().  And for stable\nsystems they are same.\n\ntrace_clock_global() already disables interrupts, so it can call\nsched_clock_cpu() directly.\n\nLink: http://lkml.kernel.org/r/1356576585-28782-2-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": "ad964704ba9326d027fc10fd0099b7c880e50172",
      "tree": "e08884c0f383e5b954233c323df67a3d726b6537",
      "parents": [
        "03274a3ffb449632970fdd35da72ea41cf8474da"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:45:49 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:01:53 2013 -0500"
      },
      "message": "ring-buffer: Add stats field for amount read from trace ring buffer\n\nAdd a stat about the number of events read from the ring buffer:\n\n #  cat /debug/tracing/per_cpu/cpu0/stats\nentries: 39869\noverrun: 870512\ncommit overrun: 0\nbytes: 1449912\noldest event ts:  6561.368690\nnow ts:  6565.246426\ndropped events: 0\nread events: 112    \u003c-- Added\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "03274a3ffb449632970fdd35da72ea41cf8474da",
      "tree": "3359969bc4c56d9dc7e642985efc0f4d5c440e00",
      "parents": [
        "38dbe0b137bfe6ea92be495017885c0785179a02"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:30:31 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:30:31 2013 -0500"
      },
      "message": "tracing/fgraph: Adjust fgraph depth before calling trace return callback\n\nWhile debugging the virtual cputime with the function graph tracer\nwith a max_depth of 1 (most common use of the max_depth so far),\nI found that I was missing kernel execution because of a race condition.\n\nThe code for the return side of the function has a slight race:\n\n\tftrace_pop_return_trace(\u0026trace, \u0026ret, frame_pointer);\n\ttrace.rettime \u003d trace_clock_local();\n\tftrace_graph_return(\u0026trace);\n\tbarrier();\n\tcurrent-\u003ecurr_ret_stack--;\n\nThe ftrace_pop_return_trace() initializes the trace structure for\nthe callback. The ftrace_graph_return() uses the trace structure\nfor its own use as that structure is on the stack and is local\nto this function. Then the curr_ret_stack is decremented which\nis what the trace.depth is set to.\n\nIf an interrupt comes in after the ftrace_graph_return() but\nbefore the curr_ret_stack, then the called function will get\na depth of 2. If max_depth is set to 1 this function will be\nignored.\n\nThe problem is that the trace has already been called, and the\ntimestamp for that trace will not reflect the time the function\nwas about to re-enter userspace. Calls to the interrupt will not\nbe traced because the max_depth has prevented this.\n\nTo solve this issue, the ftrace_graph_return() can safely be\nmoved after the current-\u003ecurr_ret_stack has been updated.\nThis way the timestamp for the return callback will reflect\nthe actual time.\n\nIf an interrupt comes in after the curr_ret_stack update and\nftrace_graph_return(), it will be traced. It may look a little\nconfusing to see it within the other function, but at least\nit will not be lost.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "38dbe0b137bfe6ea92be495017885c0785179a02",
      "tree": "4e2fab939fd6a8feb1f2a0de7c8e58f11f64c799",
      "parents": [
        "821465295b36136998ef294fe176fba4e09c1cd9"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Fri Jan 25 18:03:07 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 09:57:49 2013 -0500"
      },
      "message": "tracing: Remove second iterator initializer\n\nThe trace iterator is already initialized by trace_init_global_iter(),\nso there is no need to initialize it again.\n\nLink: http://lkml.kernel.org/r/CACV3sb+G1YnO6168JhY3dEadmJi58pA5-2cSZT8E0WVHJNFt9Q@mail.gmail.com\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "821465295b36136998ef294fe176fba4e09c1cd9",
      "tree": "241bf19a408130332b123780b55fc8303fee491b",
      "parents": [
        "d75f717e19fe595e7efbf67de195ada8d89dfbbe"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Mon Nov 19 13:21:01 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 20:36:54 2013 -0500"
      },
      "message": "tracing: Use __this_cpu_inc/dec operation instead of __get_cpu_var\n\n__this_cpu_inc_return() or __this_cpu_dec generates a single instruction,\nwhich is faster than __get_cpu_var operation.\n\nLink: http://lkml.kernel.org/r/50A9C1BD.1060308@gmail.com\n\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b736f48bda54ec75b7dc9306884c3843f1a78a0a",
      "tree": "4e5e0e26d8bd22e15122c7a8a3852897ffab770d",
      "parents": [
        "203e04c16330c880538588e932743f404ee4fd66"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Sun Nov 18 21:27:45 2012 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 24 22:03:01 2013 -0500"
      },
      "message": "tracing: Mark tracing_dentry_percpu() static\n\nNothing outside of kernel/trace/trace.c references tracing_dentry_percpu().\n\nLink: http://lkml.kernel.org/r/1353302917-13995-7-git-send-email-josh@joshtriplett.org\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d41032a83b4683481cadff84bbf8e0eafeaba830",
      "tree": "ba1d406d54fca1bf2be8a554d868633678e07aa8",
      "parents": [
        "0b07436d95b5404134da4d661fd183eac863513e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jan 24 07:52:34 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 24 07:52:34 2013 -0500"
      },
      "message": "tracing: Fix unsigned int compare of zero in recursion check\n\nDan\u0027s smatch found a compare bug with the result of the\ntrace_test_and_set_recursion() and comparing to less than\nzero. If the function fails, it returns -1, but was saved in\nan unsigned int, which will never be less than zero and will\nignore the result of the test if a recursion did happen.\n\nLuckily this is the last of the recursion tests, as the\ninfrastructure of ftrace would catch recursions before it\ngot here, except for some few exceptions.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0b07436d95b5404134da4d661fd183eac863513e",
      "tree": "0ed97fd3075e0643be14366c425650538be2548c",
      "parents": [
        "567cd4da54ff45513d2ca1f0e3cb9ba45b66d6cf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 22 16:58:30 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:03 2013 -0500"
      },
      "message": "ring-buffer: Remove trace.h from ring_buffer.c\n\nring_buffer.c use to require declarations from trace.h, but\nthese have moved to the generic header files. There\u0027s nothing\nin trace.h that ring_buffer.c requires.\n\nThere\u0027s some headers that trace.h included that ring_buffer.c\nneeds, but it\u0027s best that it includes them directly, and not\ninclude trace.h.\n\nAlso, some things may use ring_buffer.c without having tracing\nconfigured. This removes the dependency that may come in the\nfuture.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "567cd4da54ff45513d2ca1f0e3cb9ba45b66d6cf",
      "tree": "1a9e719a31643138fa76ecf556401fee1f536813",
      "parents": [
        "897f68a48b1f8fb6cb7493e1ee37e3ed7f879937"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 18:33:05 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:03 2013 -0500"
      },
      "message": "ring-buffer: User context bit recursion checking\n\nUsing context bit recursion checking, we can help increase the\nperformance of the ring buffer.\n\nBefore this patch:\n\n # echo function \u003e /debug/tracing/current_tracer\n # for i in `seq 10`; do ./hackbench 50; done\nTime: 10.285\nTime: 10.407\nTime: 10.243\nTime: 10.372\nTime: 10.380\nTime: 10.198\nTime: 10.272\nTime: 10.354\nTime: 10.248\nTime: 10.253\n\n(average: 10.3012)\n\nNow we have:\n\n # echo function \u003e /debug/tracing/current_tracer\n # for i in `seq 10`; do ./hackbench 50; done\nTime: 9.712\nTime: 9.824\nTime: 9.861\nTime: 9.827\nTime: 9.962\nTime: 9.905\nTime: 9.886\nTime: 10.088\nTime: 9.861\nTime: 9.834\n\n(average: 9.876)\n\n a 4% savings!\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "897f68a48b1f8fb6cb7493e1ee37e3ed7f879937",
      "tree": "404ea9f3d05ea83340f51a0198f8fd8977dafed0",
      "parents": [
        "edc15cafcbfa3d73f819cae99885a2e35e4cbce5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:52:35 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:02 2013 -0500"
      },
      "message": "ftrace: Use only the preempt version of function tracing\n\nThe function tracer had two different versions of function tracing.\n\nThe disabling of irqs version and the preempt disable version.\n\nAs function tracing in very intrusive and can cause nasty recursion\nissues, it has its own recursion protection. But the old method to\ndo this was a flat layer. If it detected that a recursion was happening\nthen it would just return without recording.\n\nThis made the preempt version (much faster than the irq disabling one)\nnot very useful, because if an interrupt were to occur after the\nrecursion flag was set, the interrupt would not be traced at all,\nbecause every function that was traced would think it recursed on\nitself (due to the context it preempted setting the recursive flag).\n\nNow that we have a recursion flag for every context level, we\nno longer need to worry about that. We can disable preemption,\nset the current context recursion check bit, and go on. If an\ninterrupt were to come along, it would check its own context bit\nand happily continue to trace.\n\nAs the preempt version is faster than the irq disable version,\nthere\u0027s no more reason to keep the preempt version around.\nAnd the irq disable version still had an issue with missing\nout on tracing NMI code.\n\nRemove the irq disable function tracer version and have the\npreempt disable version be the default (and only version).\n\nBefore this patch we had from running:\n\n # echo function \u003e /debug/tracing/current_tracer\n # for i in `seq 10`; do ./hackbench 50; done\nTime: 12.028\nTime: 11.945\nTime: 11.925\nTime: 11.964\nTime: 12.002\nTime: 11.910\nTime: 11.944\nTime: 11.929\nTime: 11.941\nTime: 11.924\n\n(average: 11.9512)\n\nNow we have:\n\n # echo function \u003e /debug/tracing/current_tracer\n # for i in `seq 10`; do ./hackbench 50; done\nTime: 10.285\nTime: 10.407\nTime: 10.243\nTime: 10.372\nTime: 10.380\nTime: 10.198\nTime: 10.272\nTime: 10.354\nTime: 10.248\nTime: 10.253\n\n(average: 10.3012)\n\n a 13.8% savings!\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "edc15cafcbfa3d73f819cae99885a2e35e4cbce5",
      "tree": "964e0de8816e6d4b602318d90718770921e301d2",
      "parents": [
        "e46cbf75c621725964fe1f6e7013e8bcd86a0e3d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:47:21 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:01 2013 -0500"
      },
      "message": "tracing: Avoid unnecessary multiple recursion checks\n\nWhen function tracing occurs, the following steps are made:\n  If arch does not support a ftrace feature:\n   call internal function (uses INTERNAL bits) which calls...\n  If callback is registered to the \"global\" list, the list\n   function is called and recursion checks the GLOBAL bits.\n   then this function calls...\n  The function callback, which can use the FTRACE bits to\n   check for recursion.\n\nNow if the arch does not suppport a feature, and it calls\nthe global list function which calls the ftrace callback\nall three of these steps will do a recursion protection.\nThere\u0027s no reason to do one if the previous caller already\ndid. The recursion that we are protecting against will\ngo through the same steps again.\n\nTo prevent the multiple recursion checks, if a recursion\nbit is set that is higher than the MAX bit of the current\ncheck, then we know that the check was made by the previous\ncaller, and we can skip the current check.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e46cbf75c621725964fe1f6e7013e8bcd86a0e3d",
      "tree": "7d69185c7c58d1d6773e471852c03a6915d53f1a",
      "parents": [
        "c29f122cd7fc178b72b1335b1fce0dff2e5c0f5d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:32:25 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:00 2013 -0500"
      },
      "message": "tracing: Make the trace recursion bits into enums\n\nConvert the bits into enums which makes the code a little easier\nto maintain.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c29f122cd7fc178b72b1335b1fce0dff2e5c0f5d",
      "tree": "450f3888c9f663298231a29d6a1e63269f815fd0",
      "parents": [
        "0a016409e42f273415f8225ddf2c58eb2df88034"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:17:59 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:38:00 2013 -0500"
      },
      "message": "ftrace: Add context level recursion bit checking\n\nCurrently for recursion checking in the function tracer, ftrace\ntests a task_struct bit to determine if the function tracer had\nrecursed or not. If it has, then it will will return without going\nfurther.\n\nBut this leads to races. If an interrupt came in after the bit\nwas set, the functions being traced would see that bit set and\nthink that the function tracer recursed on itself, and would return.\n\nInstead add a bit for each context (normal, softirq, irq and nmi).\n\nA check of which context the task is in is made before testing the\nassociated bit. Now if an interrupt preempts the function tracer\nafter the previous context has been set, the interrupt functions\ncan still be traced.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a016409e42f273415f8225ddf2c58eb2df88034",
      "tree": "d18d106e6041e516d8ffa05e2bb62d76306c6afd",
      "parents": [
        "9640388b63556b4cfecbb5aaf91a5c99d272f429"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:03:03 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:37:59 2013 -0500"
      },
      "message": "ftrace: Optimize the function tracer list loop\n\nThere is lots of places that perform:\n\n       op \u003d rcu_dereference_raw(ftrace_control_list);\n       while (op !\u003d \u0026ftrace_list_end) {\n\nAdd a helper macro to do this, and also optimize for a single\nentity. That is, gcc will optimize a loop for either no iterations\nor more than one iteration. But usually only a single callback\nis registered to the function tracer, thus the optimized case\nshould be a single pass. to do this we now do:\n\n\top \u003d rcu_dereference_raw(list);\n\tdo {\n\t\t[...]\n\t} while (likely(op \u003d rcu_dereference_raw((op)-\u003enext)) \u0026\u0026\n\t       unlikely((op) !\u003d \u0026ftrace_list_end));\n\nAn op is always registered (ftrace_list_end when no callbacks is\nregistered), thus when a single callback is registered, the link\nlist looks like:\n\n top \u003d\u003e callback \u003d\u003e ftrace_list_end \u003d\u003e NULL.\n\nThe likely(op \u003d op-\u003enext) still must be performed due to the race\nof removing the callback, where the first op assignment could\nequal ftrace_list_end. In that case, the op-\u003enext would be NULL.\nBut this is unlikely (only happens in a race condition when\nremoving the callback).\n\nBut it is very likely that the next op would be ftrace_list_end,\nunless more than one callback has been registered. This tells\ngcc what the most common case is and makes the fast path with\nthe least amount of branches.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9640388b63556b4cfecbb5aaf91a5c99d272f429",
      "tree": "517d07d5f3d1e10aa795fe334db40adf0321922f",
      "parents": [
        "6350379452ccaeaa71734adf57dec2ebc9207849"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 17:01:20 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:37:58 2013 -0500"
      },
      "message": "ftrace: Fix function tracing recursion self test\n\nThe function tracing recursion self test should not crash\nthe machine if the resursion test fails. If it detects that\nthe function tracing is recursing when it should not be, then\nbail, don\u0027t go into an infinite recursive loop.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6350379452ccaeaa71734adf57dec2ebc9207849",
      "tree": "58873a5c9c3d7c2b9b29d56482a87a4392ecb8a2",
      "parents": [
        "05cbbf643b8eea1be21082c53cdb856d1dc6d765"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 02 16:58:56 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:37:57 2013 -0500"
      },
      "message": "ftrace: Fix global function tracers that are not recursion safe\n\nIf one of the function tracers set by the global ops is not recursion\nsafe, it can still be called directly without the added recursion\nsupplied by the ftrace infrastructure.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "05cbbf643b8eea1be21082c53cdb856d1dc6d765",
      "tree": "74d3484ab036aa7d50473562bb995d6a6ab95b74",
      "parents": [
        "34600f0e9c33c9cd48ae87448205f51332b7d5a0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 22 23:35:11 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:35:11 2013 -0500"
      },
      "message": "tracing: Fix selftest function recursion accounting\n\nThe test that checks function recursion does things differently\nif the arch does not support all ftrace features. But that really\ndoesn\u0027t make a difference with how the test runs, and either way\nthe count variable should be 2 at the end.\n\nCurrently the test wrongly fails for archs that don\u0027t support all\nthe ftrace features.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "34600f0e9c33c9cd48ae87448205f51332b7d5a0",
      "tree": "fb6159552edf55526219b4c4c55f6120595be53e",
      "parents": [
        "0a71e4c6d749d06f52e75a406fc9046924fcfcc1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 22 13:35:11 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 23:33:07 2013 -0500"
      },
      "message": "tracing: Fix race with max_tr and changing tracers\n\nThere\u0027s a race condition between the setting of a new tracer and\nthe update of the max trace buffers (the swap). When a new tracer\nis added, it sets current_trace to nop_trace before disabling\nthe old tracer. At this moment, if the old tracer uses update_max_tr(),\nthe update may trigger the warning against !current_trace-\u003euse_max-tr,\nas nop_trace doesn\u0027t have that set.\n\nAs update_max_tr() requires that interrupts be disabled, we can\nadd a check to see if current_trace \u003d\u003d nop_trace and bail if it\ndoes. Then when disabling the current_trace, set it to nop_trace\nand run synchronize_sched(). This will make sure all calls to\nupdate_max_tr() have completed (it was called with interrupts disabled).\n\nAs a clean up, this commit also removes shrinking and recreating\nthe max_tr buffer if the old and new tracers both have use_max_tr set.\nThe old way use to always shrink the buffer, and then expand it\nfor the next tracer. This is a waste of time.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a71e4c6d749d06f52e75a406fc9046924fcfcc1",
      "tree": "7d916913b2c1f5a8ef3a51188aa96e40dc88d5c2",
      "parents": [
        "b000c8065a92b0fe0e1694f41b2c8d8ba7b7b1ec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 22 12:06:56 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 22 12:06:56 2013 -0500"
      },
      "message": "tracing: Remove trace.h header from trace_clock.c\n\nAs trace_clock is used by other things besides tracing, and it\ndoes not require anything from trace.h, it is best not to include\nthe header file in trace_clock.c.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b000c8065a92b0fe0e1694f41b2c8d8ba7b7b1ec",
      "tree": "dd9190c9d51def31a505a3f928bd1c4d814f13c6",
      "parents": [
        "f684199f5de805ac50ea5bdec2b082882586a777"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 18 10:31:20 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 21:05:41 2013 -0500"
      },
      "message": "tracing: Remove the extra 4 bytes of padding in events\n\nDue to a userspace issue with PowerTop v2beta, which hardcoded\nthe offset of event fields that it was using, it broke when\nwe removed the Big Kernel Lock counter from the event header.\n\n (commit e6e1e2593 \"tracing: Remove lock_depth from event entry\")\n\nBecause this broke userspace, it was determined that we must\nkeep those 4 bytes around.\n\n (commit a3a4a5acd \"Regression: partial revert \"tracing: Remove lock_depth from event entry\"\")\n\nThis unfortunately wastes space in the ring buffer. 4 bytes per\nevent, where a lot of events are just 24 bytes. That\u0027s 16% of the\nbuffer wasted. A million events will add 4 megs of white space\ninto the buffer.\n\nIt was later noticed that PowerTop v2beta could not work on systems\nwhere the kernel was 64 bit but the userspace was 32 bits.\nThe reason was because the offsets are different between the\ntwo and the hard coded offset of one would not work with the other.\n\nWith PowerTop v2 final, it implemented the same interface that both\nperf and trace-cmd use. That is, it reads the format file of\nthe event to find the offsets of the fields it needs. This fixes\nthe problem with running powertop on a 32 bit userspace running\non a 64 bit kernel. It also no longer requires the 4 byte padding.\n\nAs PowerTop v2 has been out for a while, and is included in all\nmajor distributions, it is time that we can safely remove the\n4 bytes of padding. Users of PowerTop v2beta should upgrade to\nPowerTop v2 final.\n\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "06aeaaeabf69da4a3e86df532425640f51b01cef",
      "tree": "e1ff9ec31435102d3f3ba665ce02de49879794f5",
      "parents": [
        "8741db532e86da2e54f05be751bfe1922ca63d57"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Fri Sep 28 17:15:17 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:35 2013 -0500"
      },
      "message": "ftrace: Move ARCH_SUPPORTS_FTRACE_SAVE_REGS in Kconfig\n\nMove SAVE_REGS support flag into Kconfig and rename\nit to CONFIG_DYNAMIC_FTRACE_WITH_REGS. This also introduces\nCONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS which indicates\nthe architecture depending part of ftrace has a code\nthat saves full registers.\nOn the other hand, CONFIG_DYNAMIC_FTRACE_WITH_REGS indicates\nthe code is enabled.\n\nLink: http://lkml.kernel.org/r/20120928081516.3560.72534.stgit@ltc138.sdl.hitachi.co.jp\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8741db532e86da2e54f05be751bfe1922ca63d57",
      "tree": "c2687a6151b869d562e729f58651a32da5436518",
      "parents": [
        "0f1ac8fd254b6c3e77950a1c4ee67be5dc88f7e0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 16 10:49:37 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:34 2013 -0500"
      },
      "message": "tracing/fgraph: Add max_graph_depth to limit function_graph depth\n\nAdd the file max_graph_depth to the debug tracing directory that lets\nthe user define the depth of the function graph.\n\nA very useful operation is to set the depth to 1. Then it traces only\nthe first function that is called when entering the kernel. This can\nbe used to determine what system operations interrupt a process.\n\nFor example, to work on NOHZ processes (single tasks running without\na timer tick), if any interrupt goes off and preempts that task, this\ncode will show it happening.\n\n  # cd /sys/kernel/debug/tracing\n  # echo 1 \u003e max_graph_depth\n  # echo function_graph \u003e current_tracer\n  # cat per_cpu/cpu/\u003ccpu-of-process\u003e/trace\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "84c6cf0db6a00601eb43cfc08244a398ffb0894c",
      "tree": "2e391b758e930ab062c80462ffdc4de5930be6c4",
      "parents": [
        "a54164114b96b4693b42cdb553260eec41ea4393"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Dec 20 21:43:52 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:33 2013 -0500"
      },
      "message": "tracing: Remove unneeded check of max_tr-\u003ebuffer before tracing_reset\n\nThere\u0027s now a check in tracing_reset_online_cpus() if the buffer is\nallocated or NULL. No need to do a check before calling it with max_tr.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a54164114b96b4693b42cdb553260eec41ea4393",
      "tree": "0e3f73cb2b3fc36397e5b2f3d3d60643f62eb72e",
      "parents": [
        "6aea49cb5f3001a8275bf9c9f586ec3eb39af194"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Dec 19 16:02:34 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:32 2013 -0500"
      },
      "message": "tracing: Add checks if tr-\u003ebuffer is NULL in tracing_reset{_online_cpus}\n\nmax_tr-\u003ebuffer could be NULL in the tracing_reset{_online_cpus}. In this\ncase, a NULL pointer dereference happens, so we should return immediately\nfrom these functions.\n\nNote, the current code does not call tracing_reset*() with max_tr when\nits buffer is NULL, but future code will. This patch is needed to prevent\nthe future code from crashing.\n\nLink: http://lkml.kernel.org/r/20121219070234.31200.93863.stgit@liselsia\n\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6aea49cb5f3001a8275bf9c9f586ec3eb39af194",
      "tree": "22686355e55018678044f144a939dfeed82a5539",
      "parents": [
        "d24d7dbf3cc49b00a152e55e24f0eeb173c7a971"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Nov 21 15:13:47 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:31 2013 -0500"
      },
      "message": "tracing/syscalls: Make local functions static\n\nSome functions in the syscall tracing is used only locally to\nthe file, but they are labeled global. Convert them to static functions.\n\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d24d7dbf3cc49b00a152e55e24f0eeb173c7a971",
      "tree": "9438ef9d1b6123f5d0b5f66e99a1f3774bce274f",
      "parents": [
        "d8a0349c0cea477322c66ea9362f10c62fad5f62"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Wed Jul 18 18:16:44 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:31 2013 -0500"
      },
      "message": "tracing: Verify target file before registering a uprobe event\n\nWithout this patch, we can register a uprobe event for a directory.\nEnabling such a uprobe event would anyway fail.\n\nExample:\n$ echo \u0027p /bin:0x4245c0\u0027 \u003e /sys/kernel/debug/tracing/uprobe_events\n\nHowever dirctories cannot be valid targets for uprobe.\nHence verify if the target is a regular file during the probe\nregistration.\n\nLink: http://lkml.kernel.org/r/20130103004212.690763002@goodmis.org\n\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n[ cleaned up whitespace and removed redundant IS_DIR() check ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d8a0349c0cea477322c66ea9362f10c62fad5f62",
      "tree": "ca9bd84c3629bc166f407c34055eb809e416d430",
      "parents": [
        "771e03842a9e98a1c2013ca1ed8bb2793488f3e5"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Tue Nov 13 09:53:04 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:30 2013 -0500"
      },
      "message": "tracing: Use this_cpu_ptr per-cpu helper\n\ntypeof(\u0026buffer) is a pointer to array of 1024 char, or char (*)[1024].\nBut, typeof(\u0026buffer[0]) is a pointer to char which match the return type of get_trace_buf().\nAs well-known, the value of \u0026buffer is equal to \u0026buffer[0].\nso return this_cpu_ptr(\u0026percpu_buffer-\u003ebuffer[0]) can avoid type cast.\n\nLink: http://lkml.kernel.org/r/50A1A800.3020102@gmail.com\n\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "771e03842a9e98a1c2013ca1ed8bb2793488f3e5",
      "tree": "6d133d84777c6161520ab00a8ce8f016fd1bf261",
      "parents": [
        "418c59e49ddc77fcb7054f2c8d52c9d47403b43e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 30 10:41:57 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:22:29 2013 -0500"
      },
      "message": "ring-buffer: Remove unnecessary recusive call in rb_advance_iter()\n\nThe original ring-buffer code had special checks at the start\nof rb_advance_iter() and instead of repeating them again at the\nend of the function if a certain condition existed, I just did\na recursive call to rb_advance_iter() because the special condition\nwould cause rb_advance_iter() to return early (after the checks).\n\nBut as things have changed, the special checks no longer exist\nand the only thing done for the special_condition is to call\nrb_inc_iter() and return. Instead of doing a confusing recursive call,\njust call rb_inc_iter instead.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c1bf08ac26e92122faab9f6c32ea8aba94612dae",
      "tree": "3d950c0592ad2394d8e1230d463024cf2d18bebc",
      "parents": [
        "7d1f9aeff1ee4a20b1aeb377dd0f579fe9647619"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 14 09:48:15 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 21 13:21:50 2013 -0500"
      },
      "message": "ftrace: Be first to run code modification on modules\n\nIf some other kernel subsystem has a module notifier, and adds a kprobe\nto a ftrace mcount point (now that kprobes work on ftrace points),\nwhen the ftrace notifier runs it will fail and disable ftrace, as well\nas kprobes that are attached to ftrace points.\n\nHere\u0027s the error:\n\n WARNING: at kernel/trace/ftrace.c:1618 ftrace_bug+0x239/0x280()\n Hardware name: Bochs\n Modules linked in: fat(+) stap_56d28a51b3fe546293ca0700b10bcb29__8059(F) nfsv4 auth_rpcgss nfs dns_resolver fscache xt_nat iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack lockd sunrpc ppdev parport_pc parport microcode virtio_net i2c_piix4 drm_kms_helper ttm drm i2c_core [last unloaded: bid_shared]\n Pid: 8068, comm: modprobe Tainted: GF            3.7.0-0.rc8.git0.1.fc19.x86_64 #1\n Call Trace:\n  [\u003cffffffff8105e70f\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff81134106\u003e] ? __probe_kernel_read+0x46/0x70\n  [\u003cffffffffa0180000\u003e] ? 0xffffffffa017ffff\n  [\u003cffffffffa0180000\u003e] ? 0xffffffffa017ffff\n  [\u003cffffffff8105e76a\u003e] warn_slowpath_null+0x1a/0x20\n  [\u003cffffffff810fd189\u003e] ftrace_bug+0x239/0x280\n  [\u003cffffffff810fd626\u003e] ftrace_process_locs+0x376/0x520\n  [\u003cffffffff810fefb7\u003e] ftrace_module_notify+0x47/0x50\n  [\u003cffffffff8163912d\u003e] notifier_call_chain+0x4d/0x70\n  [\u003cffffffff810882f8\u003e] __blocking_notifier_call_chain+0x58/0x80\n  [\u003cffffffff81088336\u003e] blocking_notifier_call_chain+0x16/0x20\n  [\u003cffffffff810c2a23\u003e] sys_init_module+0x73/0x220\n  [\u003cffffffff8163d719\u003e] system_call_fastpath+0x16/0x1b\n ---[ end trace 9ef46351e53bbf80 ]---\n ftrace failed to modify [\u003cffffffffa0180000\u003e] init_once+0x0/0x20 [fat]\n  actual: cc:bb:d2:4b:e1\n\nA kprobe was added to the init_once() function in the fat module on load.\nBut this happened before ftrace could have touched the code. As ftrace\ndidn\u0027t run yet, the kprobe system had no idea it was a ftrace point and\nsimply added a breakpoint to the code (0xcc in the cc:bb:d2:4b:e1).\n\nThen when ftrace went to modify the location from a call to mcount/fentry\ninto a nop, it didn\u0027t see a call op, but instead it saw the breakpoint op\nand not knowing what to do with it, ftrace shut itself down.\n\nThe solution is to simply give the ftrace module notifier the max priority.\nThis should have been done regardless, as the core code ftrace modification\nalso happens very early on in boot up. This makes the module modification\ncloser to core modification.\n\nLink: http://lkml.kernel.org/r/20130107140333.593683061@goodmis.org\n\nCc: stable@vger.kernel.org\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nReported-by: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "250bfd3d8e7e19cb649dd94689f0af2ce3474060",
      "tree": "66d0a49e15d99b4dabcd80259cdd501952425663",
      "parents": [
        "2df8f8a6a897ebf4c5613b5be6103d33b2a21520"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Mon Jan 14 10:54:11 2013 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 14 13:13:32 2013 -0500"
      },
      "message": "tracing: Fix regression of trace_pipe\n\nCommit 0fb9656d \"tracing: Make tracing_enabled be equal to tracing_on\"\nchanges the behaviour of trace_pipe, ie. it makes trace_pipe return if\nwe\u0027ve read something and tracing is enabled, and this means that we have\nto \u0027cat trace_pipe\u0027 again and again while running tests.\n\nIMO the right way is if tracing is enabled, we always block and wait for\nring buffer, or we may lose what we want since ring buffer\u0027s size is limited.\n\nLink: http://lkml.kernel.org/r/1358132051-5410-1-git-send-email-bo.li.liu@oracle.com\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2df8f8a6a897ebf4c5613b5be6103d33b2a21520",
      "tree": "a79d468ef6e2b41392dca68c9319f73a99a51770",
      "parents": [
        "a8dd2176a8e988e3744e863ac39647a6f59fa900"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 11 16:14:10 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 11 16:14:10 2013 -0500"
      },
      "message": "tracing: Fix regression with irqsoff tracer and tracing_on file\n\nCommit 02404baf1b47 \"tracing: Remove deprecated tracing_enabled file\"\nremoved the tracing_enabled file as it never worked properly and\nthe tracing_on file should be used instead. But the tracing_on file\ndidn\u0027t call into the tracers start/stop routines like the\ntracing_enabled file did. This caused trace-cmd to break when it\nenabled the irqsoff tracer.\n\nIf you just did \"echo irqsoff \u003e current_tracer\" then it would work\nproperly. But the tool trace-cmd disables tracing first by writing\n\"0\" into the tracing_on file. Then it writes \"irqsoff\" into\ncurrent_tracer and then writes \"1\" into tracing_on. Unfortunately,\nthe above commit changed the irqsoff tracer to check the tracing_on\nstatus instead of the tracing_enabled status. If it\u0027s disabled then\nit does not start the tracer internals.\n\nThe problem is that writing \"1\" into tracing_on does not call the\ntracers \"start\" routine like writing \"1\" into tracing_enabled did.\nThis makes the irqsoff tracer not start when using the trace-cmd\ntool, and is a regression for userspace.\n\nSimple fix is to have the tracing_on file call the tracers start()\nmethod when being enabled (and the stop() method when disabled).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8dd2176a8e988e3744e863ac39647a6f59fa900",
      "tree": "2f848f44ae3a614d9b7d13e156e5bc7429c40113",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 09 20:54:17 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 09 20:54:17 2013 -0500"
      },
      "message": "tracing: Fix regression of trace_options file setting\n\nThe latest change to allow trace options to be set on the command\nline also broke the trace_options file.\n\nThe zeroing of the last byte of the option name that is echoed into\nthe trace_option file was removed with the consolidation of some\nof the code. The compare between the option and what was written to\nthe trace_options file fails because the string holding the data\nwritten doesn\u0027t terminate with a null character.\n\nA zero needs to be added to the end of the string copied from\nuser space.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "dc975e94f322e60fa8fcc44dec1820fde4de174c",
      "tree": "fa2a2bea9a9c62959cd75257558a06dcd700de39",
      "parents": [
        "1b0048a44c502c5ab850203e6e0a6498d7d8676d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Nov 15 11:27:26 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jan 08 14:14:55 2013 -0800"
      },
      "message": "tracing: Export trace_clock_local()\n\nThe rcutorture tests need to be able to trace the time of the\nbeginning of an RCU read-side critical section, and thus need access\nto trace_clock_local().  This commit therefore adds a the needed\nEXPORT_SYMBOL_GPL().\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "758338e960ebe8ac3bef7ae11ff830bc2f9c655c",
      "tree": "dbaea6140ada681baa462a2818095bcea0160108",
      "parents": [
        "224394ad75711042c6d362c9dbc9874b476edbc0",
        "bf3071f5a054db9e5bab873355d27a7330ce5187"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:28:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:28:39 2012 -0800"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull minor tracing updates and fixes from Steven Rostedt:\n \"It seems that one of my old pull requests have slipped through.\n\n  The changes are contained to just the files that I maintain, and are\n  changes from others that I told I would get into this merge window.\n\n  They have already been in linux-next for several weeks, and should be\n  well tested.\"\n\n* \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Remove unnecessary WARN_ONCE\u0027s from tracing_buffers_splice_read\n  tracing: Remove unneeded checks from the stack tracer\n  tracing: Add a resize function to make one buffer equivalent to another buffer\n"
    },
    {
      "commit": "b2e902f024fa6f6f27b335c478d81bab0cb2c768",
      "tree": "dea9ad4bb8ce9cb51864817a1b39293c65f9c9e4",
      "parents": [
        "f9a00e8738c209d95493cf97d3a82ab2655892e5"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Dec 17 16:01:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:17 2012 -0800"
      },
      "message": "trace: use kbasename()\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "965c8e59cfcf845ecde2265a1d1bfee5f011d302",
      "tree": "22758a99b4ecb475750966d5202200dc0e89876c",
      "parents": [
        "c0f041602c33bae10b8e321c49024490d03ced3d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Dec 17 15:59:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:12 2012 -0800"
      },
      "message": "lseek: the \"whence\" argument is called \"whence\"\n\nBut the kernel decided to call it \"origin\" instead.  Fix most of the\nsites.\n\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2013a13e68354e0c8f3696b69701803e13fb737",
      "tree": "a7e1da6bfad1aa2afd83f401874d606269ce90b4",
      "parents": [
        "dadfab4873256d2145640c0ce468fcbfb48977fe",
        "106f9d9337f65bd428c0c79f650e3489e458d771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial branch from Jiri Kosina:\n \"Usual stuff -- comment/printk typo fixes, documentation updates, dead\n  code elimination.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  HOWTO: fix double words typo\n  x86 mtrr: fix comment typo in mtrr_bp_init\n  propagate name change to comments in kernel source\n  doc: Update the name of profiling based on sysfs\n  treewide: Fix typos in various drivers\n  treewide: Fix typos in various Kconfig\n  wireless: mwifiex: Fix typo in wireless/mwifiex driver\n  messages: i2o: Fix typo in messages/i2o\n  scripts/kernel-doc: check that non-void fcts describe their return value\n  Kernel-doc: Convention: Use a \"Return\" section to describe return values\n  radeon: Fix typo and copy/paste error in comments\n  doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c\n  various: Fix spelling of \"asynchronous\" in comments.\n  Fix misspellings of \"whether\" in comments.\n  eisa: Fix spelling of \"asynchronous\".\n  various: Fix spelling of \"registered\" in comments.\n  doc: fix quite a few typos within Documentation\n  target: iscsi: fix comment typos in target/iscsi drivers\n  treewide: fix typo of \"suport\" in various comments and Kconfig\n  treewide: fix typo of \"suppport\" in various comments\n  ...\n"
    },
    {
      "commit": "da830e589a45f0c42eef6f3cbd07275f8893f181",
      "tree": "b241c86b8a0f9acdef4b90f69ddd200548e91f2c",
      "parents": [
        "090f8ccba37034cec5a5972a70abeaae7eb0222b",
        "08cd2a6960ae2e1aa7f44b44ebafa84f503a2dd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:18:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:18:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"These are late-v3.7 pending fixes for tracing.\"\n\nFix up trivial conflict in kernel/trace/ring_buffer.c: the NULL pointer\nfix clashed with the change of type of the \u0027ret\u0027 variable.\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  ring-buffer: Fix race between integrity check and readers\n  ring-buffer: Fix NULL pointer if rb_set_head_page() fails\n  ftrace: Clear bits properly in reset_iter_read()\n"
    },
    {
      "commit": "cc1b39dbf9f55a438e8a21a694394c20e6a17129",
      "tree": "cf48e5c871250c2bfd1d0590acd2f0569e95b950",
      "parents": [
        "7e0dd574cd6b1bcc818ed4251e5ceda7d8bee08f",
        "1c7d66732458dc187008e3f5b2f71e019e320fc2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:54:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:54:35 2012 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n\nPull ftrace updates from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7e0dd574cd6b1bcc818ed4251e5ceda7d8bee08f",
      "tree": "04f5630e361083ab53da43a46d6c47a52e8b87ca",
      "parents": [
        "f0b9abfb044649bc452fb2fb975ff2fd599cc6a3",
        "32cdba1e05418909708a17e52505e8b2ba4381d1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:50:23 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:51:10 2012 +0100"
      },
      "message": "Merge branch \u0027uprobes/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core\n\nPull uprobes fixes, cleanups and preparation for the ARM port from Oleg Nesterov.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6d49e352ae9aed3f599041b0c0389aa924815f14",
      "tree": "3b09be4f4c4544a0e602d1f41eb24bde5143496c",
      "parents": [
        "817eecbf8230982ec0fbf0718e06a489b67dcbcf"
      ],
      "author": {
        "name": "Nadia Yvette Chambers",
        "email": "nyc@holomorphy.com",
        "time": "Thu Dec 06 10:39:54 2012 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Dec 06 10:39:54 2012 +0100"
      },
      "message": "propagate name change to comments in kernel source\n\nI\u0027ve legally changed my name with New York State, the US Social Security\nAdministration, et al. This patch propagates the name change and change\nin initials and login to comments in the kernel source as well.\n\nSigned-off-by: Nadia Yvette Chambers \u003cnyc@holomorphy.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "9366c1ba13fbc41bdb57702e75ca4382f209c82f",
      "tree": "f01489b009aedbba4de63cb37412c64aa4d8c1b3",
      "parents": [
        "54f7be5b831254199522523ccab4c3d954bbf576"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 29 22:31:16 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 30 11:09:57 2012 -0500"
      },
      "message": "ring-buffer: Fix race between integrity check and readers\n\nThe function rb_check_pages() was added to make sure the ring buffer\u0027s\npages were sane. This check is done when the ring buffer size is modified\nas well as when the iterator is released (closing the \"trace\" file),\nas that was considered a non fast path and a good place to do a sanity\ncheck.\n\nThe problem is that the check does not have any locks around it.\nIf one process were to read the trace file, and another were to read\nthe raw binary file, the check could happen while the reader is reading\nthe file.\n\nThe issues with this is that the check requires to clear the HEAD page\nbefore doing the full check and it restores it afterward. But readers\nrequire the HEAD page to exist before it can read the buffer, otherwise\nit gives a nasty warning and disables the buffer.\n\nBy adding the reader lock around the check, this keeps the race from\nhappening.\n\nCc: stable@vger.kernel.org # 3.6\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "54f7be5b831254199522523ccab4c3d954bbf576",
      "tree": "7a65782f3bb7f67438db53444b59e8206916d478",
      "parents": [
        "70f77b3f7ec010ff9624c1f2e39a81babc9e2429"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 29 22:27:22 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 30 11:09:28 2012 -0500"
      },
      "message": "ring-buffer: Fix NULL pointer if rb_set_head_page() fails\n\nThe function rb_set_head_page() searches the list of ring buffer\npages for a the page that has the HEAD page flag set. If it does\nnot find it, it will do a WARN_ON(), disable the ring buffer and\nreturn NULL, as this should never happen.\n\nBut if this bug happens to happen, not all callers of this function\ncan handle a NULL pointer being returned from it. That needs to be\nfixed.\n\nCc: stable@vger.kernel.org # 3.0+\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bf3071f5a054db9e5bab873355d27a7330ce5187",
      "tree": "91ac4cf8705b3d50b9fc5555ea5ebc7127f53aa7",
      "parents": [
        "717a9ef7f355480686cdbac3f32d6075437a923e"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 25 11:39:08 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 19 15:25:09 2012 -0500"
      },
      "message": "tracing: Remove unnecessary WARN_ONCE\u0027s from tracing_buffers_splice_read\n\nWARN shouldn\u0027t be used as a means of communicating failure to a userspace programmer.\n\nLink: http://lkml.kernel.org/r/20120725153908.GA25203@redhat.com\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "717a9ef7f355480686cdbac3f32d6075437a923e",
      "tree": "8fbf18ec40837c65bb4dc193e5b7c07abdf62abd",
      "parents": [
        "d60da506cbeb3f1907a740547dd7ef04a93e908e"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Wed Jul 18 11:56:01 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 19 15:07:13 2012 -0500"
      },
      "message": "tracing: Remove unneeded checks from the stack tracer\n\nIt seems that \u0027ftrace_enabled\u0027 flag should not be used inside the tracer\nfunctions. The ftrace core is using this flag for internal purposes, and\nthe flag wasn\u0027t meant to be used in tracers\u0027 runtime checks.\n\nstack tracer is the only tracer that abusing the flag. So stop it from\nserving as a bad example.\n\nAlso, there is a local \u0027stack_trace_disabled\u0027 flag in the stack tracer,\nwhich is never updated; so it can be removed as well.\n\nLink: http://lkml.kernel.org/r/1342637761-9655-1-git-send-email-anton.vorontsov@linaro.org\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d60da506cbeb3f1907a740547dd7ef04a93e908e",
      "tree": "b9d32b5ac2061c2c86f0e9d074349f70d8d52199",
      "parents": [
        "1c7d66732458dc187008e3f5b2f71e019e320fc2"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Oct 17 11:56:16 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 15 17:10:21 2012 -0500"
      },
      "message": "tracing: Add a resize function to make one buffer equivalent to another buffer\n\nTrace buffer size is now per-cpu, so that there are the following two\npatterns in resizing of buffers.\n\n  (1) resize per-cpu buffers to same given size\n  (2) resize per-cpu buffers to another trace_array\u0027s buffer size\n      for each CPU (such as preparing the max_tr which is equivalent\n      to the global_trace\u0027s size)\n\n__tracing_resize_ring_buffer() can be used for (1), and had\nimplemented (2) inside it for resetting the global_trace to the\noriginal size.\n\n(2) was also implemented in another place. So this patch assembles\nthem in a new function - resize_buffer_duplicate_size().\n\nLink: http://lkml.kernel.org/r/20121017025616.2627.91226.stgit@falsita\n\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "70f77b3f7ec010ff9624c1f2e39a81babc9e2429",
      "tree": "a47ad8d3c846b8418919a2cfdfbf6424ff041767",
      "parents": [
        "18423d3562f396206e0928a71177eeb2edfed077"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sat Jun 09 19:10:27 2012 +0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 15 16:10:17 2012 -0500"
      },
      "message": "ftrace: Clear bits properly in reset_iter_read()\n\nThere is a typo here where \u0027\u0026\u0027 is used instead of \u0027|\u0027 and it turns the\nstatement into a noop.  The original code is equivalent to:\n\n\titer-\u003eflags \u0026\u003d ~((1 \u003c\u003c 2) \u0026 (1 \u003c\u003c 4));\n\nLink: http://lkml.kernel.org/r/20120609161027.GD6488@elgon.mountain\n\nCc: stable@vger.kernel.org # all of them\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "11043d8b125671a32253cddb0b05177be0e976f6",
      "tree": "9f440aeb014d66b3f284ff25cbae395c0d1a77fb",
      "parents": [
        "8be0709f10e3dd5d7d07933ad61a9f18c4b93ca5"
      ],
      "author": {
        "name": "Yoshihiro YUNOMAE",
        "email": "yoshihiro.yunomae.ez@hitachi.com",
        "time": "Tue Nov 13 12:18:23 2012 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 13 15:49:11 2012 -0500"
      },
      "message": "tracing: Show raw time stamp on stats per cpu using counter or tsc mode for trace_clock\n\nShow raw time stamp values for stats per cpu if you choose counter or tsc mode\nfor trace_clock. Although a unit of tracing time stamp is nsec in local or global mode,\nthe units in counter and TSC mode are tracing counter and cycles respectively.\nLink: http://lkml.kernel.org/r/1352837903-32191-3-git-send-email-dhsharp@google.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Yoshihiro YUNOMAE \u003cyoshihiro.yunomae.ez@hitachi.com\u003e\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8be0709f10e3dd5d7d07933ad61a9f18c4b93ca5",
      "tree": "304c1e1575feed78341184a2302f37c049572d27",
      "parents": [
        "8cbd9cc6254065c97c4bac42daa55ba1abe73a8e"
      ],
      "author": {
        "name": "David Sharp",
        "email": "dhsharp@google.com",
        "time": "Tue Nov 13 12:18:22 2012 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 13 15:48:40 2012 -0500"
      },
      "message": "tracing: Format non-nanosec times from tsc clock without a decimal point.\n\nWith the addition of the \"tsc\" clock, formatting timestamps to look like\nfractional seconds is misleading. Mark clocks as either in nanoseconds or\nnot, and format non-nanosecond timestamps as decimal integers.\n\nTested:\n$ cd /sys/kernel/debug/tracing/\n$ cat trace_clock\n[local] global tsc\n$ echo sched_switch \u003e set_event\n$ echo 1 \u003e tracing_on ; sleep 0.0005 ; echo 0 \u003e tracing_on\n$ cat trace\n          \u003cidle\u003e-0     [000]  6330.555552: sched_switch: prev_comm\u003dswapper prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d29964 next_prio\u003d120\n           sleep-29964 [000]  6330.555628: sched_switch: prev_comm\u003dbash prev_pid\u003d29964 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper next_pid\u003d0 next_prio\u003d120\n  ...\n$ echo 1 \u003e options/latency-format\n$ cat trace\n  \u003cidle\u003e-0       0 4104553247us+: sched_switch: prev_comm\u003dswapper prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d29964 next_prio\u003d120\n   sleep-29964   0 4104553322us+: sched_switch: prev_comm\u003dbash prev_pid\u003d29964 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper next_pid\u003d0 next_prio\u003d120\n  ...\n$ echo tsc \u003e trace_clock\n$ cat trace\n$ echo 1 \u003e tracing_on ; sleep 0.0005 ; echo 0 \u003e tracing_on\n$ echo 0 \u003e options/latency-format\n$ cat trace\n          \u003cidle\u003e-0     [000] 16490053398357: sched_switch: prev_comm\u003dswapper prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d31128 next_prio\u003d120\n           sleep-31128 [000] 16490053588518: sched_switch: prev_comm\u003dbash prev_pid\u003d31128 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper next_pid\u003d0 next_prio\u003d120\n  ...\necho 1 \u003e options/latency-format\n$ cat trace\n  \u003cidle\u003e-0       0 91557653238+: sched_switch: prev_comm\u003dswapper prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d31128 next_prio\u003d120\n   sleep-31128   0 91557843399+: sched_switch: prev_comm\u003dbash prev_pid\u003d31128 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper next_pid\u003d0 next_prio\u003d120\n  ...\n\nv2:\nMove arch-specific bits out of generic code.\nv4:\nFix x86_32 build due to 64-bit division.\n\nGoogle-Bug-Id: 6980623\nLink: http://lkml.kernel.org/r/1352837903-32191-2-git-send-email-dhsharp@google.com\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8cbd9cc6254065c97c4bac42daa55ba1abe73a8e",
      "tree": "bb52f23f66fc6288e7efbce76ee389af0b52cc85",
      "parents": [
        "7bcfaf54f591a0775254c4ea679faf615152ee3a"
      ],
      "author": {
        "name": "David Sharp",
        "email": "dhsharp@google.com",
        "time": "Tue Nov 13 12:18:21 2012 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 13 15:48:27 2012 -0500"
      },
      "message": "tracing,x86: Add a TSC trace_clock\n\nIn order to promote interoperability between userspace tracers and ftrace,\nadd a trace_clock that reports raw TSC values which will then be recorded\nin the ring buffer. Userspace tracers that also record TSCs are then on\nexactly the same time base as the kernel and events can be unambiguously\ninterlaced.\n\nTested: Enabled a tracepoint and the \"tsc\" trace_clock and saw very large\ntimestamp values.\n\nv2:\nMove arch-specific bits out of generic code.\nv3:\nRename \"x86-tsc\", cleanups\nv7:\nGeneric arch bits in Kbuild.\n\nGoogle-Bug-Id: 6980623\nLink: http://lkml.kernel.org/r/1352837903-32191-1-git-send-email-dhsharp@google.com\n\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7bcfaf54f591a0775254c4ea679faf615152ee3a",
      "tree": "697df255d0d3961b568c8e17f527f52175d7c3fa",
      "parents": [
        "0d5c6e1c19bab82fad4837108c2902f557d62a04"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 01 22:56:07 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:53 2012 -0400"
      },
      "message": "tracing: Add trace_options kernel command line parameter\n\nAdd trace_options to the kernel command line parameter to be able to\nset options at early boot. For example, to enable stack dumps of\nevents, add the following:\n\n  trace_options\u003dstacktrace\n\nThis along with the trace_event option, you can get not only\ntraces of the events but also the stack dumps with them.\n\nRequested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0d5c6e1c19bab82fad4837108c2902f557d62a04",
      "tree": "ed075db499735ea4d72b9d9d7f992fe7d9a1a328",
      "parents": [
        "02404baf1b47123f1c88c9f9f1f3b00e1e2b10db"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 01 20:54:21 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:52 2012 -0400"
      },
      "message": "tracing: Use irq_work for wake ups and remove *_nowake_*() functions\n\nHave the ring buffer commit function use the irq_work infrastructure to\nwake up any waiters waiting on the ring buffer for new data. The irq_work\nwas created for such a purpose, where doing the actual wake up at the\ntime of adding data is too dangerous, as an event or function trace may\nbe in the midst of the work queue locks and cause deadlocks. The irq_work\nwill either delay the action to the next timer interrupt, or trigger an IPI\nto itself forcing an interrupt to do the work (in a safe location).\n\nWith irq_work, all ring buffer commits can safely do wakeups, removing\nthe need for the ring buffer commit \"nowake\" variants, which were used\nby events and function tracing. All commits can now safely use the\nnormal commit, and the \"nowake\" variants can be removed.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "02404baf1b47123f1c88c9f9f1f3b00e1e2b10db",
      "tree": "34b8379c9e36a2d89934cf867bb605d74967274d",
      "parents": [
        "0fb9656d957d79dbe7ae155bb6533b1d465e4a50"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 01 11:51:40 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:51 2012 -0400"
      },
      "message": "tracing: Remove deprecated tracing_enabled file\n\nThe tracing_enabled file was used as a quick way to stop\ntracers, and try to bring down overhead for things like\nthe latency tracers (irqsoff, wakeup, etc). But it didn\u0027t\nwork that well.\n\nThe tracing_on file was created as a really fast way to\nstop recording into the ftrace ring buffer and can interact\nwith the kernel. That is a tracing_off() call in the kernel\ncan disable recording of events, and then from userspace one\ncould echo 1 into the tracing_on file to continue it. The\ntracing_enabled function did too much to allow for this.\n\nThe tracing_on has taken over as a way to start and stop tracing\nand the tracing_enabled file should not be used. But because of\nits existance, it still confuses people. Over a year ago the\nfollowing commit was added:\n\n commit 6752ab4a9c30d5411b2dfdb251a3f1cb18aae487\n Author: Steven Rostedt \u003csrostedt@redhat.com\u003e\n Date:   Tue Feb 8 13:54:06 2011 -0500\n\n    tracing: Deprecate tracing_enabled for tracing_on\n\nThis commit added a WARN_ON() if the tracing_enabled file\u0027s variable\nwas changed. After this was added, only LatencyTop complained, and\nthey soon fixed their tool as there was no reason that LatencyTop\nshould touch this file as it was using the perf ring buffers which\nthis file does not interact with. But since that time no one else\nhas complained about this WARN_ON(). Thus it is safe to assume that\nthis file is no longer needed. Time to get rid of it.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0fb9656d957d79dbe7ae155bb6533b1d465e4a50",
      "tree": "b1c890432c60836b7c2d267249d85e91a17b58c5",
      "parents": [
        "c7b84ecada9a8b7fe3e6c081e70801703897ed5d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 11 14:25:30 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:50 2012 -0400"
      },
      "message": "tracing: Make tracing_enabled be equal to tracing_on\n\nThe tracing_enabled file has been deprecated as it never was able\nto serve its purpose well. The tracing_on file has taken over.\nInstead of having code to keep tracing_enabled, have the tracing_enabled\nfile just set tracing_on, and remove the tracing_enabled variable.\n\nThis allows us to remove the tracing_enabled file. The reason that\nthe remove is in a different change set and not removed here is\nin case we find some lonely userspace tool that requires the file\nto exist. Then the removal patch will get reverted, but this one\nwill not.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c7b84ecada9a8b7fe3e6c081e70801703897ed5d",
      "tree": "f586f3dbe52afad825fe857aa6d9d1e5f017cd3d",
      "parents": [
        "15075cac423d634ddf39dac66f943b3bce847f87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 11 20:54:53 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:50 2012 -0400"
      },
      "message": "tracing: Remove unused function unregister_tracer()\n\nThe function register_tracer() is only used by kernel core code,\nthat never needs to remove the tracer. As trace_events have become\nthe main way to add new tracing to the kernel, the need to\nunregister a tracer has diminished. Remove the unused function\nunregister_tracer(). If a need arises where we need it, then we\ncan always add it back.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "15075cac423d634ddf39dac66f943b3bce847f87",
      "tree": "116948d50b079b2555ce66cc6b1436c2dc8c21da",
      "parents": [
        "50ecf2c3afead23a05227ab004e4212eca08c207"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 03 14:57:28 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:49 2012 -0400"
      },
      "message": "tracing: Separate open function from set_event and available_events\n\nThe open function used by available_events is the same as set_event even\nthough it uses different seq functions. This causes a side effect of\nwriting into available_events clearing all events, even though\navailable_events is suppose to be read only.\n\nThere\u0027s no reason to keep a single function for just the open and have\nboth use different functions for everything else. It is a little\nconfusing and causes strange behavior. Just have each have their own\nfunction.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "50ecf2c3afead23a05227ab004e4212eca08c207",
      "tree": "3253309826c5c39208707a5b5e0afca9c9b5efbd",
      "parents": [
        "60303ed3f4b9332b9aa9bc17c68bc174e7343e2d"
      ],
      "author": {
        "name": "Yoshihiro YUNOMAE",
        "email": "yoshihiro.yunomae.ez@hitachi.com",
        "time": "Thu Oct 11 16:27:54 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:48 2012 -0400"
      },
      "message": "ring-buffer: Change unsigned long type of ring_buffer_oldest_event_ts() to u64\n\nring_buffer_oldest_event_ts() should return a value of u64 type, because\nring_buffer_per_cpu-\u003ebuffer_page-\u003ebuffer_data_page-\u003etime_stamp is u64 type.\n\nLink: http://lkml.kernel.org/r/1349998076-15495-5-git-send-email-dhsharp@google.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Yoshihiro YUNOMAE \u003cyoshihiro.yunomae.ez@hitachi.com\u003e\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "60303ed3f4b9332b9aa9bc17c68bc174e7343e2d",
      "tree": "1d9a7c8001297aafda1e873884dd8bda5aaf7872",
      "parents": [
        "60efc15ae96c7aace8060411b0d5add20e1ab21e"
      ],
      "author": {
        "name": "David Sharp",
        "email": "dhsharp@google.com",
        "time": "Thu Oct 11 16:27:52 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 02 10:21:47 2012 -0400"
      },
      "message": "tracing: Reset ring buffer when changing trace_clocks\n\nBecause the \"tsc\" clock isn\u0027t in nanoseconds, the ring buffer must be\nreset when changing clocks so that incomparable timestamps don\u0027t end up\nin the same trace.\n\nTested: Confirmed switching clocks resets the trace buffer.\n\nGoogle-Bug-Id: 6980623\nLink: http://lkml.kernel.org/r/1349998076-15495-3-git-send-email-dhsharp@google.com\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6f86ab9fcaef122abb837819139eadac1a0ca966",
      "tree": "3fc172fd1e89d86d32f7dca3a75666b659533c29",
      "parents": [
        "01e3e710a9265fb7092efd67243d7b6dd6e2548a"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Thu Jun 07 16:46:25 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:34 2012 -0400"
      },
      "message": "tracing: Cleanup unnecessary function declarations\n\nThe functions defined in include/trace/syscalls.h are not used directly\nsince struct ftrace_event_class was introduced. Remove them from the\nheader file and rearrange the ftrace_event_class declarations in\ntrace_syscalls.c.\n\nLink: http://lkml.kernel.org/r/1339112785-21806-2-git-send-email-vnagarnaik@google.com\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "01e3e710a9265fb7092efd67243d7b6dd6e2548a",
      "tree": "ef3e1981db71063f85e1518b78f0265189e4e9de",
      "parents": [
        "7ffbd48d5cab22bcd1120eb2349db1319e2d827a"
      ],
      "author": {
        "name": "David Sharp",
        "email": "dhsharp@google.com",
        "time": "Thu Jun 07 16:46:24 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:33 2012 -0400"
      },
      "message": "tracing: Trivial cleanup\n\nRemove ftrace_format_syscall() declaration; it is neither defined nor\nused. Also update a comment and formatting.\n\nLink: http://lkml.kernel.org/r/1339112785-21806-1-git-send-email-vnagarnaik@google.com\n\nSigned-off-by: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7ffbd48d5cab22bcd1120eb2349db1319e2d827a",
      "tree": "4352e546b65793132dd7a1a7ddf8d5fae313591d",
      "parents": [
        "2b70e59043f5a5ec083ea50cd2640aa49c64c675"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 11 12:14:25 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:31 2012 -0400"
      },
      "message": "tracing: Cache comms only after an event occurred\n\nWhenever an event is registered, the comm of tasks are saved at\nevery task switch instead of saving them at every event. But if\nan event isn\u0027t executed much, the comm cache will be filled up\nby tasks that did not record the event and you lose out on the comms\nthat did.\n\nHere\u0027s an example, if you enable the following events:\n\necho 1 \u003e /debug/tracing/events/kvm/kvm_cr/enable\necho 1 \u003e /debug/tracing/events/net/net_dev_xmit/enable\n\nNote, there\u0027s no kvm running on this machine so the first event will\nnever be triggered, but because it is enabled, the storing of comms\nwill continue. If we now disable the network event:\n\necho 0 \u003e /debug/tracing/events/net/net_dev_xmit/enable\n\nand look at the trace:\n\ncat /debug/tracing/trace\n            sshd-2672  [001] ..s2   375.731616: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s1   375.731617: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s2   375.859356: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s1   375.859357: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s2   375.947351: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s1   375.947352: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s2   376.035383: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s1   376.035383: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n            sshd-2672  [001] ..s2   377.563806: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d226 rc\u003d0\n            sshd-2672  [001] ..s1   377.563807: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d226 rc\u003d0\n            sshd-2672  [001] ..s2   377.563834: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6be0 len\u003d114 rc\u003d0\n            sshd-2672  [001] ..s1   377.563842: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6be0 len\u003d114 rc\u003d0\n\nWe see that process 2672 which triggered the events has the comm \"sshd\".\nBut if we run hackbench for a bit and look again:\n\ncat /debug/tracing/trace\n           \u003c...\u003e-2672  [001] ..s2   375.731616: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   375.731617: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s2   375.859356: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   375.859357: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s2   375.947351: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   375.947352: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s2   376.035383: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   376.035383: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d242 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s2   377.563806: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6de0 len\u003d226 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   377.563807: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6de0 len\u003d226 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s2   377.563834: net_dev_xmit: dev\u003deth0 skbaddr\u003dffff88005cbb6be0 len\u003d114 rc\u003d0\n           \u003c...\u003e-2672  [001] ..s1   377.563842: net_dev_xmit: dev\u003dbr0 skbaddr\u003dffff88005cbb6be0 len\u003d114 rc\u003d0\n\nThe stored \"sshd\" comm has been flushed out and we get a useless \"\u003c...\u003e\".\n\nBut by only storing comms after a trace event occurred, we can run\nhackbench all day and still get the same output.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2b70e59043f5a5ec083ea50cd2640aa49c64c675",
      "tree": "467459fc991e1f49b9ff0d91a880185566b4b72f",
      "parents": [
        "81698831bc462ff16f76bc11249a1e492424da4c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 11 11:14:14 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:30 2012 -0400"
      },
      "message": "tracing: Have tracing_sched_wakeup_trace() use standard unlock_commit\n\nThe functon tracing_sched_wakeup_trace() does an open coded unlock\ncommit and save stack. This is what the trace_nowake_buffer_unlock_commit()\nis for.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "81698831bc462ff16f76bc11249a1e492424da4c",
      "tree": "7d980745e74be221d0fab8607ac764ee7408edb4",
      "parents": [
        "b382ede6b5eb8188926b72a9ef42fd2354342a97"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 11 10:15:05 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:29 2012 -0400"
      },
      "message": "tracing: Enable comm recording if trace_printk() is used\n\nIf comm recording is not enabled when trace_printk() is used then\nyou just get this type of output:\n\n[ adding trace_printk(\"hello! %d\", irq); in do_IRQ ]\n\n           \u003c...\u003e-2843  [001] d.h.    80.812300: do_IRQ: hello! 14\n           \u003c...\u003e-2734  [002] d.h2    80.824664: do_IRQ: hello! 14\n           \u003c...\u003e-2713  [003] d.h.    80.829971: do_IRQ: hello! 14\n           \u003c...\u003e-2814  [000] d.h.    80.833026: do_IRQ: hello! 14\n\nBy enabling the comm recorder when trace_printk is enabled:\n\n       hackbench-6715  [001] d.h.   193.233776: do_IRQ: hello! 21\n            sshd-2659  [001] d.h.   193.665862: do_IRQ: hello! 21\n          \u003cidle\u003e-0     [001] d.h1   193.665996: do_IRQ: hello! 21\n\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b382ede6b5eb8188926b72a9ef42fd2354342a97",
      "tree": "0381b86ab2ada35fee583fd6e547ed3454c9ebb9",
      "parents": [
        "884bfe89a462fcc85c8abd96171519cf2fe70929"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 10 21:44:34 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:28 2012 -0400"
      },
      "message": "tracing: Expand ring buffer when trace_printk() is used\n\nSince tracing is not used by 99% of Linux users, even though tracing\nmay be configured in, it does not make sense to allocate 1.4 Megs\nper CPU for the ring buffers if they are not used. Thus, on boot up\nthe ring buffers are set to a minimal size until something needs the\nand they are expanded.\n\nThis works well for events and tracers (function, etc), but for the\nasynchronous use of trace_printk() which can write to the ring buffer\nat any time, does not expand the buffers.\n\nOn boot up a check is made to see if any trace_printk() is used to\nsee if the trace_printk() temp buffer pages should be allocated. This\nsame code can be used to expand the buffers as well.\n\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "884bfe89a462fcc85c8abd96171519cf2fe70929",
      "tree": "be61b3c6ee4d75198af22f5cdadc3b289b207bda",
      "parents": [
        "f43c738bfa8608424610e4fc1aef4d4644e2ce11"
      ],
      "author": {
        "name": "Slava Pestov",
        "email": "slavapestov@google.com",
        "time": "Fri Jul 15 14:23:58 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:27 2012 -0400"
      },
      "message": "ring-buffer: Add a \u0027dropped events\u0027 counter\n\nThe existing \u0027overrun\u0027 counter is incremented when the ring\nbuffer wraps around, with overflow on (the default). We wanted\na way to count requests lost from the buffer filling up with\noverflow off, too. I decided to add a new counter instead\nof retro-fitting the existing one because it seems like a\ndifferent statistic to count conceptually, and also because\nof how the code was structured.\n\nLink: http://lkml.kernel.org/r/1310765038-26399-1-git-send-email-slavapestov@google.com\n\nSigned-off-by: Slava Pestov \u003cslavapestov@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f43c738bfa8608424610e4fc1aef4d4644e2ce11",
      "tree": "a27c9971bc2eeeb012dc349762066a4c61cf10c9",
      "parents": [
        "6f4156723c084bfc0c0f72205c541fafb8ad3ded"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Tue Oct 02 17:27:10 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:25 2012 -0400"
      },
      "message": "tracing: Change tracer\u0027s integer flags to bool\n\nprint_max and use_max_tr in struct tracer are \"int\" variables and\nused like flags. This is wasteful, so change the type to \"bool\".\n\nLink: http://lkml.kernel.org/r/20121002082710.9807.86393.stgit@falsita\n\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6f4156723c084bfc0c0f72205c541fafb8ad3ded",
      "tree": "1852fb096d1f45a6d826480b41f9d7eb292c4e8a",
      "parents": [
        "bcd83ea6cbfee54e33d1527b87538dc99ca2137b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 05 12:13:07 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:24 2012 -0400"
      },
      "message": "tracing: Allow tracers to start at core initcall\n\nThere\u0027s times during debugging that it is helpful to see traces of early\nboot functions. But the tracers are initialized at device_initcall()\nwhich is quite late during the boot process. Setting the kernel command\nline parameter ftrace\u003dfunction will not show anything until the function\ntracer is initialized. This prevents being able to trace functions before\ndevice_initcall().\n\nThere\u0027s no reason that the tracers need to be initialized so late in the\nboot process. Move them up to core_initcall() as they still need to come\nafter early_initcall() which initializes the tracing buffers.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bcd83ea6cbfee54e33d1527b87538dc99ca2137b",
      "tree": "58014b08a1ff10c88df4b6386f105ccdb5681f71",
      "parents": [
        "95d18aa2b6c05351181934b3bc34ce038cc7b637"
      ],
      "author": {
        "name": "Daniel Walter",
        "email": "sahne@0x90.at",
        "time": "Wed Sep 26 22:08:38 2012 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 31 16:45:23 2012 -0400"
      },
      "message": "tracing: Replace strict_strto* with kstrto*\n\n * remove old string conversions with kstrto*\n\nLink: http://lkml.kernel.org/r/20120926200838.GC1244@0x90.at\n\nSigned-off-by: Daniel Walter \u003csahne@0x90.at\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0d13ac96b9c38e3e5434c93990e4bbf0939ab199",
      "tree": "b1c14f06c077fd4bf695447380c6d840fc95f86c",
      "parents": [
        "6ca2a9c6543dd1a307c0250991d4de93550209ce"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Wed Jul 18 17:51:26 2012 +0800"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Oct 25 16:02:51 2012 +0200"
      },
      "message": "uprobes: Fix misleading log entry\n\nThere don\u0027t have any \u0027r\u0027 prefix in uprobe event naming, remove it.\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "ef8ff74ed8dd9d4b3ba8cb9f2fc927a27c697a8b",
      "tree": "0c000fb23d1c40545093a8042b7a98ea11b0e0e0",
      "parents": [
        "f38787f4f921222d080d976ef59210ce3c6c6cb4",
        "8e49f418c9632790bf456634742d34d97120a784"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 19:53:34 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 19:53:34 2012 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent\n\nPull ftrace ring-buffer resizing fix from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "8e49f418c9632790bf456634742d34d97120a784",
      "tree": "dfe1caca880206a3cfb38c923e49a5af74071d87",
      "parents": [
        "95cf59ea72331d0093010543b8951bb43f262cac"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Wed Oct 10 16:40:27 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 11 12:21:48 2012 -0400"
      },
      "message": "ring-buffer: Check for uninitialized cpu buffer before resizing\n\nWith a system where, num_present_cpus \u003c num_possible_cpus, even if all\nCPUs are online, non-present CPUs don\u0027t have per_cpu buffers allocated.\nIf per_cpu/\u003ccpu\u003e/buffer_size_kb is modified for such a CPU, it can cause\na panic due to NULL dereference in ring_buffer_resize().\n\nTo fix this, resize operation is allowed only if the per-cpu buffer has\nbeen initialized.\n\nLink: http://lkml.kernel.org/r/1349912427-6486-1-git-send-email-vnagarnaik@google.com\n\nCc: stable@vger.kernel.org # 3.5+\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "dc92b1f9ab1e1665dbbc56911782358e7f9a49f9",
      "tree": "965ccb4a0f2c24a8b24adce415f6506246d07a90",
      "parents": [
        "5e090ed7af10729a396a25df43d69a236e789736",
        "ca16f580a5db7e60bfafe59a50bb133bd3347491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 21:04:56 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 21:04:56 2012 +0900"
      },
      "message": "Merge branch \u0027virtio-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull virtio changes from Rusty Russell:\n \"New workflow: same git trees pulled by linux-next get sent straight to\n  Linus.  Git is awkward at shuffling patches compared with quilt or mq,\n  but that doesn\u0027t happen often once things get into my -next branch.\"\n\n* \u0027virtio-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (24 commits)\n  lguest: fix occasional crash in example launcher.\n  virtio-blk: Disable callback in virtblk_done()\n  virtio_mmio: Don\u0027t attempt to create empty virtqueues\n  virtio_mmio: fix off by one error allocating queue\n  drivers/virtio/virtio_pci.c: fix error return code\n  virtio: don\u0027t crash when device is buggy\n  virtio: remove CONFIG_VIRTIO_RING\n  virtio: add help to CONFIG_VIRTIO option.\n  virtio: support reserved vqs\n  virtio: introduce an API to set affinity for a virtqueue\n  virtio-ring: move queue_index to vring_virtqueue\n  virtio_balloon: not EXPERIMENTAL any more.\n  virtio-balloon: dependency fix\n  virtio-blk: fix NULL checking in virtblk_alloc_req()\n  virtio-blk: Add REQ_FLUSH and REQ_FUA support to bio path\n  virtio-blk: Add bio-based IO path for virtio-blk\n  virtio: console: fix error handling in init() function\n  tools: Fix pthread flag for Makefile of trace-agent used by virtio-trace\n  tools: Add guest trace agent as a user tool\n  virtio/console: Allocate scatterlist according to the current pipe size\n  ...\n"
    },
    {
      "commit": "7f60ba388f5b9dd8b0da463b394412dace3ab814",
      "tree": "b97b4fb5c8ad07a435e5b1b559988364764d5e8d",
      "parents": [
        "e665faa424a4a782aa986274920c1fc5b76f5560",
        "80c9d03c22f13a17df67b4b99a83ed5e9acf6093"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 17:30:50 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 17:30:50 2012 +0900"
      },
      "message": "Merge tag \u0027for-v3.7\u0027 of git://git.infradead.org/users/cbou/linux-pstore\n\nPull pstore changes from Anton Vorontsov:\n\n 1) We no longer ad-hoc to the function tracer \"high level\"\n    infrastructure and no longer use its debugfs knobs.  The change\n    slightly touches kernel/trace directory, but it got the needed ack\n    from Steven Rostedt:\n\n      http://lkml.org/lkml/2012/8/21/688\n\n 2) Added maintainers entry;\n\n 3) A bunch of fixes, nothing special.\n\n* tag \u0027for-v3.7\u0027 of git://git.infradead.org/users/cbou/linux-pstore:\n  pstore: Avoid recursive spinlocks in the oops_in_progress case\n  pstore/ftrace: Convert to its own enable/disable debugfs knob\n  pstore/ram: Add missing platform_device_unregister\n  MAINTAINERS: Add pstore maintainers\n  pstore/ram: Mark ramoops_pstore_write_buf() as notrace\n  pstore/ram: Fix printk format warning\n  pstore/ram: Fix possible NULL dereference\n"
    },
    {
      "commit": "437589a74b6a590d175f86cf9f7b2efcee7765e7",
      "tree": "37bf8635b1356d80ef002b00e84f3faf3d555a63",
      "parents": [
        "68d47a137c3bef754923bccf73fb639c9b0bbd5e",
        "72235465864d84cedb2d9f26f8e1de824ee20339"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"This is a mostly modest set of changes to enable basic user namespace\n  support.  This allows the code to code to compile with user namespaces\n  enabled and removes the assumption there is only the initial user\n  namespace.  Everything is converted except for the most complex of the\n  filesystems: autofs4, 9p, afs, ceph, cifs, coda, fuse, gfs2, ncpfs,\n  nfs, ocfs2 and xfs as those patches need a bit more review.\n\n  The strategy is to push kuid_t and kgid_t values are far down into\n  subsystems and filesystems as reasonable.  Leaving the make_kuid and\n  from_kuid operations to happen at the edge of userspace, as the values\n  come off the disk, and as the values come in from the network.\n  Letting compile type incompatible compile errors (present when user\n  namespaces are enabled) guide me to find the issues.\n\n  The most tricky areas have been the places where we had an implicit\n  union of uid and gid values and were storing them in an unsigned int.\n  Those places were converted into explicit unions.  I made certain to\n  handle those places with simple trivial patches.\n\n  Out of that work I discovered we have generic interfaces for storing\n  quota by projid.  I had never heard of the project identifiers before.\n  Adding full user namespace support for project identifiers accounts\n  for most of the code size growth in my git tree.\n\n  Ultimately there will be work to relax privlige checks from\n  \"capable(FOO)\" to \"ns_capable(user_ns, FOO)\" where it is safe allowing\n  root in a user names to do those things that today we only forbid to\n  non-root users because it will confuse suid root applications.\n\n  While I was pushing kuid_t and kgid_t changes deep into the audit code\n  I made a few other cleanups.  I capitalized on the fact we process\n  netlink messages in the context of the message sender.  I removed\n  usage of NETLINK_CRED, and started directly using current-\u003etty.\n\n  Some of these patches have also made it into maintainer trees, with no\n  problems from identical code from different trees showing up in\n  linux-next.\n\n  After reading through all of this code I feel like I might be able to\n  win a game of kernel trivial pursuit.\"\n\nFix up some fairly trivial conflicts in netfilter uid/git logging code.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (107 commits)\n  userns: Convert the ufs filesystem to use kuid/kgid where appropriate\n  userns: Convert the udf filesystem to use kuid/kgid where appropriate\n  userns: Convert ubifs to use kuid/kgid\n  userns: Convert squashfs to use kuid/kgid where appropriate\n  userns: Convert reiserfs to use kuid and kgid where appropriate\n  userns: Convert jfs to use kuid/kgid where appropriate\n  userns: Convert jffs2 to use kuid and kgid where appropriate\n  userns: Convert hpfs to use kuid and kgid where appropriate\n  userns: Convert btrfs to use kuid/kgid where appropriate\n  userns: Convert bfs to use kuid/kgid where appropriate\n  userns: Convert affs to use kuid/kgid wherwe appropriate\n  userns: On alpha modify linux_to_osf_stat to use convert from kuids and kgids\n  userns: On ia64 deal with current_uid and current_gid being kuid and kgid\n  userns: On ppc convert current_uid from a kuid before printing.\n  userns: Convert s390 getting uid and gid system calls to use kuid and kgid\n  userns: Convert s390 hypfs to use kuid and kgid where appropriate\n  userns: Convert binder ipc to use kuids\n  userns: Teach security_path_chown to take kuids and kgids\n  userns: Add user namespace support to IMA\n  userns: Convert EVM to deal with kuids and kgids in it\u0027s hmac computation\n  ...\n"
    },
    {
      "commit": "d55cb6cf143ae16eaa415baab520b8eaf4a1012f",
      "tree": "449f118e54bc77d753e319fb5a5294611b86c36d",
      "parents": [
        "efe75d24a69fc39bb09d882ca2d5b90d4da02afe"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu Aug 09 21:31:10 2012 +0900"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:12 2012 +0930"
      },
      "message": "ftrace: Allow stealing pages from pipe buffer\n\nUse generic steal operation on pipe buffer to allow stealing\nring buffer\u0027s read page from pipe buffer.\n\nNote that this could reduce the performance of splice on the\nsplice_write side operation without affinity setting.\nSince the ring buffer\u0027s read pages are allocated on the\ntracing-node, but the splice user does not always execute\nsplice write side operation on the same node. In this case,\nthe page will be accessed from the another node.\nThus, it is strongly recommended to assign the splicing\nthread to corresponding node.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8781915ad2716adcd8cd5cc52cee791fc8b00fdf",
      "tree": "0d16c498542e57b9fe5d709dba9042af63c5c1d1",
      "parents": [
        "5224c3a31549f1c056039545b289e1b01ed02f12"
      ],
      "author": {
        "name": "Ezequiel Garcia",
        "email": "elezegarcia@gmail.com",
        "time": "Wed Sep 12 11:47:57 2012 -0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 24 14:13:02 2012 -0400"
      },
      "message": "trace: Move trace event enable from fs_initcall to core_initcall\n\nThis patch splits trace event initialization in two stages:\n * ftrace enable\n * sysfs event entry creation\n\nThis allows to capture trace events from an earlier point\nby using \u0027trace_event\u0027 kernel parameter and is important\nto trace boot-up allocations.\n\nNote that, in order to enable events at core_initcall,\nit\u0027s necessary to move init_ftrace_syscalls() from\ncore_initcall to early_initcall.\n\nLink: http://lkml.kernel.org/r/1347461277-25302-1-git-send-email-elezegarcia@gmail.com\n\nSigned-off-by: Ezequiel Garcia \u003celezegarcia@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5224c3a31549f1c056039545b289e1b01ed02f12",
      "tree": "30750af387cad904c3935418b0c17384abce1de8",
      "parents": [
        "50a011f6409e888d5f41343024d24885281f048c"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "mandeep.baines@gmail.com",
        "time": "Fri Sep 07 18:12:19 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 24 14:10:44 2012 -0400"
      },
      "message": "tracing: Add an option for disabling markers\n\nIn our application, we have trace markers spread through user-space.\nWe have markers in GL, X, etc. These are super handy for Chrome\u0027s\nabout:tracing feature (Chrome + system + kernel trace view), but\ncan be very distracting when you\u0027re trying to debug a kernel issue.\n\nI normally, use \"grep -v tracing_mark_write\" but it would be nice\nif I could just temporarily disable markers all together.\n\nLink: http://lkml.kernel.org/r/1347066739-26285-1-git-send-email-msb@chromium.org\n\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d20b92ab668cc44fc84bba0001839c5a8013a5cd",
      "tree": "6a9f99ed0aa7563fcc990f9ec36ae2704672a961",
      "parents": [
        "f8f3d4de2d04e1a5b4293b67faee8ebabc64e9fa"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 13 16:02:19 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Sep 18 01:01:34 2012 -0700"
      },
      "message": "userns: Teach trace to use from_kuid\n\n- When tracing capture the kuid.\n- When displaying the data to user space convert the kuid into the\n  user namespace of the process that opened the report file.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "26f45274afd938d82463816a12ec67448513294a",
      "tree": "97c232667794b039a9ef3a2ab4444311fb44cbfd",
      "parents": [
        "4553f0b90e1fd93b95a97918804528d4039201fc",
        "c6aaf4d0bb86e2154ea31a33804cec300611255f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 14 10:06:51 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 14 10:06:51 2012 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n\nPull tracing updates from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ea632e9f12033346cc68247faa3b924d54936b8b",
      "tree": "b87fe48b7127a8d890ba7073fd460a1c99b0c831",
      "parents": [
        "76bab1b78ab6f25d5f74165f94526c25fc93d984"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Sun Sep 02 19:45:14 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 13 22:52:08 2012 -0400"
      },
      "message": "trace: Stop compiling in trace_clock unconditionally\n\nCommit 56449f437 \"tracing: make the trace clocks available generally\",\nin April 2009, made trace_clock available unconditionally, since\nCONFIG_X86_DS used it too.\n\nCommit faa4602e47 \"x86, perf, bts, mm: Delete the never used BTS-ptrace code\",\nin March 2010, removed CONFIG_X86_DS, and now only CONFIG_RING_BUFFER (split\nout from CONFIG_TRACING for general use) has a dependency on trace_clock. So,\nonly compile in trace_clock with CONFIG_RING_BUFFER or CONFIG_TRACING\nenabled.\n\nLink: http://lkml.kernel.org/r/20120903024513.GA19583@leaf\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "76bab1b78ab6f25d5f74165f94526c25fc93d984",
      "tree": "d6640f7bffa1fdeea0403b1c793a82fc880b9faa",
      "parents": [
        "d57c5d51a30152f3175d2344cb6395f08bf8ee0c"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yuanhan.liu@linux.intel.com",
        "time": "Mon Aug 27 15:13:45 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 13 22:52:07 2012 -0400"
      },
      "message": "tracing: Skip printing \"OK\" if failed to disable event\n\nNo acutal case found. But logically, we should skip \"OK\" in case any\nerror met.\n\nLink: http://lkml.kernel.org/r/1346051625-25231-1-git-send-email-yuanhan.liu@linux.intel.com\n\nSigned-off-by: Yuanhan Liu \u003cyuanhan.liu@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "65f8c95e46a1827ae8bbc52a817ea308dd7d65ae"
}
