)]}'
{
  "log": [
    {
      "commit": "8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe",
      "tree": "5696f5d31c6c75b71bfc4852fb234b773e266cfe",
      "parents": [
        "529e5fbcd8d3cb48cf824ac8fde91cc80a9e985f",
        "c60ac31542e93499b58dcfc1e3f6550ba5b5728e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "message": "Merge tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag\n\nPull new ImgTec Meta architecture from James Hogan:\n \"This adds core architecture support for Imagination\u0027s Meta processor\n  cores, followed by some later miscellaneous arch/metag cleanups and\n  fixes which I kept separate to ease review:\n\n   - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture\n   - A few fixes all over, particularly for symbol prefixes\n   - A few privilege protection fixes\n   - Several cleanups (setup.c includes, split out a lot of\n     metag_ksyms.c)\n   - Fix some missing exports\n   - Convert hugetlb to use vm_unmapped_area()\n   - Copy device tree to non-init memory\n   - Provide dma_get_sgtable()\"\n\n* tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)\n  metag: Provide dma_get_sgtable()\n  metag: prom.h: remove declaration of metag_dt_memblock_reserve()\n  metag: copy devicetree to non-init memory\n  metag: cleanup metag_ksyms.c includes\n  metag: move mm/init.c exports out of metag_ksyms.c\n  metag: move usercopy.c exports out of metag_ksyms.c\n  metag: move setup.c exports out of metag_ksyms.c\n  metag: move kick.c exports out of metag_ksyms.c\n  metag: move traps.c exports out of metag_ksyms.c\n  metag: move irq enable out of irqflags.h on SMP\n  genksyms: fix metag symbol prefix on crc symbols\n  metag: hugetlb: convert to vm_unmapped_area()\n  metag: export clear_page and copy_page\n  metag: export metag_code_cache_flush_all\n  metag: protect more non-MMU memory regions\n  metag: make TXPRIVEXT bits explicit\n  metag: kernel/setup.c: sort includes\n  perf: Enable building perf tools for Meta\n  metag: add boot time LNKGET/LNKSET check\n  metag: add __init to metag_cache_probe()\n  ...\n"
    },
    {
      "commit": "649508f684751122aa302ab10f0f06cb4a88415b",
      "tree": "c8e4852f2470f6068880d4509d2d3a510104c9c6",
      "parents": [
        "c19fa94a8fed72754e81800dfa14af6daaf6d331"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed May 30 12:11:19 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:16 2013 +0000"
      },
      "message": "trace/ring_buffer: handle 64bit aligned structs\n\nSome 32 bit architectures require 64 bit values to be aligned (for\nexample Meta which has 64 bit read/write instructions). These require 8\nbyte alignment of event data too, so use\n!CONFIG_HAVE_64BIT_ALIGNED_ACCESS instead of !CONFIG_64BIT ||\nCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to decide alignment, and align\nbuffer_data_page::data accordingly.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e (previous version subtly different)\n"
    },
    {
      "commit": "ee89f81252179dcbf6cd65bd48299f5e52292d88",
      "tree": "805846cd12821f84cfe619d44c9e3e36e0b0f9e6",
      "parents": [
        "21f3b24da9328415792efc780f50b9f434c12465",
        "de33127d8d3f1d570aad8c2223cd81b206636bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO core bits from Jens Axboe:\n \"Below are the core block IO bits for 3.9.  It was delayed a few days\n  since my workstation kept crashing every 2-8h after pulling it into\n  current -git, but turns out it is a bug in the new pstate code (divide\n  by zero, will report separately).  In any case, it contains:\n\n   - The big cfq/blkcg update from Tejun and and Vivek.\n\n   - Additional block and writeback tracepoints from Tejun.\n\n   - Improvement of the should sort (based on queues) logic in the plug\n     flushing.\n\n   - _io() variants of the wait_for_completion() interface, using\n     io_schedule() instead of schedule() to contribute to io wait\n     properly.\n\n   - Various little fixes.\n\n  You\u0027ll get two trivial merge conflicts, which should be easy enough to\n  fix up\"\n\nFix up the trivial conflicts due to hlist traversal cleanups (commit\nb67bfe0d42ca: \"hlist: drop the node parameter from iterators\").\n\n* \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block: (39 commits)\n  block: remove redundant check to bd_openers()\n  block: use i_size_write() in bd_set_size()\n  cfq: fix lock imbalance with failed allocations\n  drivers/block/swim3.c: fix null pointer dereference\n  block: don\u0027t select PERCPU_RWSEM\n  block: account iowait time when waiting for completion of IO request\n  sched: add wait_for_completion_io[_timeout]\n  writeback: add more tracepoints\n  block: add block_{touch|dirty}_buffer tracepoint\n  buffer: make touch_buffer() an exported function\n  block: add @req to bio_{front|back}_merge tracepoints\n  block: add missing block_bio_complete() tracepoint\n  block: Remove should_sort judgement when flush blk_plug\n  block,elevator: use new hashtable implementation\n  cfq-iosched: add hierarchical cfq_group statistics\n  cfq-iosched: collect stats from dead cfqgs\n  cfq-iosched: separate out cfqg_stats_reset() from cfq_pd_reset_stats()\n  blkcg: make blkcg_print_blkgs() grab q locks instead of blkcg lock\n  block: RCU free request_queue\n  blkcg: implement blkg_[rw]stat_recursive_sum() and blkg_[rw]stat_merge()\n  ...\n"
    },
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8ef15d6b9d8e38729cd740a43919adf88468119",
      "tree": "f950b0342b8ae7ad0a11477cdf669015fc85366e",
      "parents": [
        "6515925b8259549b7f2187e25d3260306e3e85e5",
        "ff1fb5f6b4925a536ffb8171e5f2dbd01ccfeb97"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 19:40:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 19:40:37 2013 -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\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86: Add Intel IvyBridge event scheduling constraints\n  ftrace: Call ftrace cleanup module notifier after all other notifiers\n  tracing/syscalls: Allow archs to ignore tracing compat syscalls\n"
    },
    {
      "commit": "8793422fd9ac5037f5047f80473007301df3689f",
      "tree": "f5aa3b3a564f053e1b5604c45db80193abc734a4",
      "parents": [
        "b3cdda2b4f541439ca4205793040aa2e1c852e3b",
        "10baf04e95fbf7eb6089410220a547211dd2ffa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "message": "Merge tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management updates from Rafael Wysocki:\n\n - Rework of the ACPI namespace scanning code from Rafael J.  Wysocki\n   with contributions from Bjorn Helgaas, Jiang Liu, Mika Westerberg,\n   Toshi Kani, and Yinghai Lu.\n\n - ACPI power resources handling and ACPI device PM update from Rafael\n   J Wysocki.\n\n - ACPICA update to version 20130117 from Bob Moore and Lv Zheng with\n   contributions from Aaron Lu, Chao Guan, Jesper Juhl, and Tim Gardner.\n\n - Support for Intel Lynxpoint LPSS from Mika Westerberg.\n\n - cpuidle update from Len Brown including Intel Haswell support, C1\n   state for intel_idle, removal of global pm_idle.\n\n - cpuidle fixes and cleanups from Daniel Lezcano.\n\n - cpufreq fixes and cleanups from Viresh Kumar and Fabio Baltieri with\n   contributions from Stratos Karafotis and Rickard Andersson.\n\n - Intel P-states driver for Sandy Bridge processors from Dirk\n   Brandewie.\n\n - cpufreq driver for Marvell Kirkwood SoCs from Andrew Lunn.\n\n - cpufreq fixes related to ordering issues between acpi-cpufreq and\n   powernow-k8 from Borislav Petkov and Matthew Garrett.\n\n - cpufreq support for Calxeda Highbank processors from Mark Langsdorf\n   and Rob Herring.\n\n - cpufreq driver for the Freescale i.MX6Q SoC and cpufreq-cpu0 update\n   from Shawn Guo.\n\n - cpufreq Exynos fixes and cleanups from Jonghwan Choi, Sachin Kamat,\n   and Inderpal Singh.\n\n - Support for \"lightweight suspend\" from Zhang Rui.\n\n - Removal of the deprecated power trace API from Paul Gortmaker.\n\n - Assorted updates from Andreas Fleig, Colin Ian King, Davidlohr Bueso,\n   Joseph Salisbury, Kees Cook, Li Fei, Nishanth Menon, ShuoX Liu,\n   Srinivas Pandruvada, Tejun Heo, Thomas Renninger, and Yasuaki\n   Ishimatsu.\n\n* tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (267 commits)\n  PM idle: remove global declaration of pm_idle\n  unicore32 idle: delete stray pm_idle comment\n  openrisc idle: delete pm_idle\n  mn10300 idle: delete pm_idle\n  microblaze idle: delete pm_idle\n  m32r idle: delete pm_idle, and other dead idle code\n  ia64 idle: delete pm_idle\n  cris idle: delete idle and pm_idle\n  ARM64 idle: delete pm_idle\n  ARM idle: delete pm_idle\n  blackfin idle: delete pm_idle\n  sparc idle: rename pm_idle to sparc_idle\n  sh idle: rename global pm_idle to static sh_idle\n  x86 idle: rename global pm_idle to static x86_idle\n  APM idle: register apm_cpu_idle via cpuidle\n  cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.\n  cpufreq / intel_pstate: Change to disallow module build\n  tools/power turbostat: display SMI count by default\n  intel_idle: export both C1 and C1E\n  ACPI / hotplug: Fix concurrency issues and memory leaks\n  ...\n"
    },
    {
      "commit": "ff1fb5f6b4925a536ffb8171e5f2dbd01ccfeb97",
      "tree": "a88ff0074d2ff11fa71e653c2e74d6a47440975e",
      "parents": [
        "69943182bb9e19e4b60ea5033f683ec1af1703a9",
        "8c189ea64eea01ca20d102ddb74d6936dd16c579"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Feb 20 11:26:21 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Feb 20 11:26:21 2013 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent\n\nPull two fixes from Steven Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "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": "8c189ea64eea01ca20d102ddb74d6936dd16c579",
      "tree": "7836952a838205f0e87327e58fe5e51c48ed01be",
      "parents": [
        "f431b634f24d099872e78acc356c7fd35913b36b"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 13 15:18:38 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 18 23:09:26 2013 -0500"
      },
      "message": "ftrace: Call ftrace cleanup module notifier after all other notifiers\n\nCommit: c1bf08ac \"ftrace: Be first to run code modification on modules\"\n\nchanged ftrace module notifier\u0027s priority to INT_MAX in order to\nprocess the ftrace nops before anything else could touch them\n(namely kprobes). This was the correct thing to do.\n\nUnfortunately, the ftrace module notifier also contains the ftrace\nclean up code. As opposed to the set up code, this code should be\nrun *after* all the module notifiers have run in case a module is doing\ncorrect clean-up and unregisters its ftrace hooks. Basically, ftrace\nneeds to do clean up on module removal, as it needs to know about code\nbeing removed so that it doesn\u0027t try to modify that code. But after it\nremoves the module from its records, if a ftrace user tries to remove\na probe, that removal will fail due as the record of that code segment\nno longer exists.\n\nNothing really bad happens if the probe removal is called after ftrace\ndid the clean up, but the ftrace removal function will return an error.\nCorrect code (such as kprobes) will produce a WARN_ON() if it fails\nto remove the probe. As people get annoyed by frivolous warnings, it\u0027s\nbest to do the ftrace clean up after everything else.\n\nBy splitting the ftrace_module_notifier into two notifiers, one that\ndoes the module load setup that is run at high priority, and the other\nthat is called for module clean up that is run at low priority, the\nproblem is solved.\n\nCc: stable@vger.kernel.org\nReported-by: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f431b634f24d099872e78acc356c7fd35913b36b",
      "tree": "5e0b5ee44905435ebda66da19db062080b8ba1bd",
      "parents": [
        "661e591525ffbb0439270bf2a4d165c04f87543d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 12 16:18:59 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 12 17:46:28 2013 -0500"
      },
      "message": "tracing/syscalls: Allow archs to ignore tracing compat syscalls\n\nThe tracing of ia32 compat system calls has been a bit of a pain as they\nuse different system call numbers than the 64bit equivalents.\n\nI wrote a simple \u0027lls\u0027 program that lists files. I compiled it as a i686\nELF binary and ran it under a x86_64 box. This is the result:\n\necho 0 \u003e /debug/tracing/tracing_on\necho 1 \u003e /debug/tracing/events/syscalls/enable\necho 1 \u003e /debug/tracing/tracing_on ; ./lls ; echo 0 \u003e /debug/tracing/tracing_on\n\ngrep lls /debug/tracing/trace\n\n[.. skipping calls before TS_COMPAT is set ...]\n\n             lls-1127  [005] d...   936.409188: sys_recvfrom(fd: 0, ubuf: 4d560fc4, size: 0, flags: 8048034, addr: 8, addr_len: f7700420)\n             lls-1127  [005] d...   936.409190: sys_recvfrom -\u003e 0x8a77000\n             lls-1127  [005] d...   936.409211: sys_lgetxattr(pathname: 0, name: 1000, value: 3, size: 22)\n             lls-1127  [005] d...   936.409215: sys_lgetxattr -\u003e 0xf76ff000\n             lls-1127  [005] d...   936.409223: sys_dup2(oldfd: 4d55ae9b, newfd: 4)\n             lls-1127  [005] d...   936.409228: sys_dup2 -\u003e 0xfffffffffffffffe\n             lls-1127  [005] d...   936.409236: sys_newfstat(fd: 4d55b085, statbuf: 80000)\n             lls-1127  [005] d...   936.409242: sys_newfstat -\u003e 0x3\n             lls-1127  [005] d...   936.409243: sys_removexattr(pathname: 3, name: ffcd0060)\n             lls-1127  [005] d...   936.409244: sys_removexattr -\u003e 0x0\n             lls-1127  [005] d...   936.409245: sys_lgetxattr(pathname: 0, name: 19614, value: 1, size: 2)\n             lls-1127  [005] d...   936.409248: sys_lgetxattr -\u003e 0xf76e5000\n             lls-1127  [005] d...   936.409248: sys_newlstat(filename: 3, statbuf: 19614)\n             lls-1127  [005] d...   936.409249: sys_newlstat -\u003e 0x0\n             lls-1127  [005] d...   936.409262: sys_newfstat(fd: f76fb588, statbuf: 80000)\n             lls-1127  [005] d...   936.409279: sys_newfstat -\u003e 0x3\n             lls-1127  [005] d...   936.409279: sys_close(fd: 3)\n             lls-1127  [005] d...   936.421550: sys_close -\u003e 0x200\n             lls-1127  [005] d...   936.421558: sys_removexattr(pathname: 3, name: ffcd00d0)\n             lls-1127  [005] d...   936.421560: sys_removexattr -\u003e 0x0\n             lls-1127  [005] d...   936.421569: sys_lgetxattr(pathname: 4d564000, name: 1b1abc, value: 5, size: 802)\n             lls-1127  [005] d...   936.421574: sys_lgetxattr -\u003e 0x4d564000\n             lls-1127  [005] d...   936.421575: sys_capget(header: 4d70f000, dataptr: 1000)\n             lls-1127  [005] d...   936.421580: sys_capget -\u003e 0x0\n             lls-1127  [005] d...   936.421580: sys_lgetxattr(pathname: 4d710000, name: 3000, value: 3, size: 812)\n             lls-1127  [005] d...   936.421589: sys_lgetxattr -\u003e 0x4d710000\n             lls-1127  [005] d...   936.426130: sys_lgetxattr(pathname: 4d713000, name: 2abc, value: 3, size: 32)\n             lls-1127  [005] d...   936.426141: sys_lgetxattr -\u003e 0x4d713000\n             lls-1127  [005] d...   936.426145: sys_newlstat(filename: 3, statbuf: f76ff3f0)\n             lls-1127  [005] d...   936.426146: sys_newlstat -\u003e 0x0\n             lls-1127  [005] d...   936.431748: sys_lgetxattr(pathname: 0, name: 1000, value: 3, size: 22)\n\nObviously I\u0027m not calling newfstat with a fd of 4d55b085. The calls are\nobviously incorrect, and confusing.\n\nOther efforts have been made to fix this:\n\nhttps://lkml.org/lkml/2012/3/26/367\n\nBut the real solution is to rewrite the syscall internals and come up\nwith a fixed solution. One that doesn\u0027t require all the kluge that the\ncurrent solution has.\n\nThus for now, instead of outputting incorrect data, simply ignore them.\nWith this patch the changes now have:\n\n #\u003e grep lls /debug/tracing/trace\n #\u003e\n\nCompat system calls simply are not traced. If users need compat\nsyscalls, then they should just use the raw syscall tracepoints.\n\nFor an architecture to make their compat syscalls ignored, it must\ndefine ARCH_TRACE_IGNORE_COMPAT_SYSCALLS (done in asm/ftrace.h) and also\ndefine an arch_trace_is_compat_syscall() function that will return true\nif the current task should ignore tracing the syscall.\n\nI want to stress that this change does not affect actual syscalls in any\nway, shape or form. It is only used within the tracing system and\ndoesn\u0027t interfere with the syscall logic at all. The changes are\nconsolidated nicely into trace_syscalls.c and asm/ftrace.h.\n\nI had to make one small modification to asm/thread_info.h and that was\nto remove the include of asm/ftrace.h. As asm/ftrace.h required the\ncurrent_thread_info() it was causing include hell. That include was\nadded back in 2008 when the function graph tracer was added:\n\n commit caf4b323 \"tracing, x86: add low level support for ftrace return tracing\"\n\nIt does not need to be included there.\n\nLink: http://lkml.kernel.org/r/1360703939.21867.99.camel@gandalf.local.home\n\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\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": "43720bd6014327ac454434496cb953edcdb9f8d6",
      "tree": "be134a588abb3164b7c5f9093707e536f9c54a05",
      "parents": [
        "ed1ac6e91a3ff7c561008ba57747cd6cbc49385e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 11 13:43:45 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:12 2013 +0100"
      },
      "message": "PM / tracing: remove deprecated power trace API\n\nThe text in Documentation said it would be removed in 2.6.41;\nthe text in the Kconfig said removal in the 3.1 release.  Either\nway you look at it, we are well past both, so push it off a cliff.\n\nNote that the POWER_CSTATE and the POWER_PSTATE are part of the\nlegacy tracing API.  Remove all tracepoints which use these flags.\nAs can be seen from context, most already have a trace entry via\ntrace_cpu_idle anyways.\n\nAlso, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as\ncompared to the CSTATE ones which all have a clear start/stop.\nAs part of this, the trace_power_frequency also becomes orphaned,\nso it too is deleted.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\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": "8c1cf6bb02fda79b0a4b9bd121f6be6d4ce7a15a",
      "tree": "e10008c7fb3c7b8cf832712dd6e7b55f149a49e6",
      "parents": [
        "3a366e614d0837d9fc23f78cdb1a1186ebc3387f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:34 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "block: add @req to bio_{front|back}_merge tracepoints\n\nbio_{front|back}_merge tracepoints report a bio merging into an\nexisting request but didn\u0027t specify which request the bio is being\nmerged into.  Add @req to it.  This makes it impossible to share the\nevent template with block_bio_queue - split it out.\n\n@req isn\u0027t used or exported to userland at this point and there is no\nuserland visible behavior change.  Later changes will make use of the\nextra parameter.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3a366e614d0837d9fc23f78cdb1a1186ebc3387f",
      "tree": "5be6ec716687234ac1e6202db62c84ee1d2246be",
      "parents": [
        "ac9a19745196388ae5d828c0be7a1d6e472101f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:33 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "block: add missing block_bio_complete() tracepoint\n\nbio completion didn\u0027t kick block_bio_complete TP.  Only dm was\nexplicitly triggering the TP on IO completion.  This makes\nblock_bio_complete TP useless for tracers which want to know about\nbios, and all other bio based drivers skip generating blktrace\ncompletion events.\n\nThis patch makes all bio completions via bio_endio() generate\nblock_bio_complete TP.\n\n* Explicit trace_block_bio_complete() invocation removed from dm and\n  the trace point is unexported.\n\n* @rq dropped from trace_block_bio_complete().  bios may fly around\n  w/o queue associated.  Verifying and accessing the assocaited queue\n  belongs to TP probes.\n\n* blktrace now gets both request and bio completions.  Make it ignore\n  bio completions if request completion path is happening.\n\nThis makes all bio based drivers generate blktrace completion events\nproperly and makes the block_bio_complete TP actually useful.\n\nv2: With this change, block_bio_complete TP could be invoked on sg\n    commands which have bio\u0027s with %NULL bi_bdev.  Update TP\n    assignment code to check whether bio-\u003ebi_bdev is %NULL before\n    dereferencing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nOriginal-patch-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Alasdair Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\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"
    }
  ],
  "next": "ef8ff74ed8dd9d4b3ba8cb9f2fc927a27c697a8b"
}
