)]}'
{
  "log": [
    {
      "commit": "83c2f912b43c3a7babbb6cb7ae2a5276c1ed2a3e",
      "tree": "eaa7f50dea154d9f19721db69c7adde64d48848f",
      "parents": [
        "f0ed5b9a28536b8be2f578a9450cfa42ab31ccf8",
        "172d1b0b73256551f100fc00c69e356d047103f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:26:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:26:35 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)\n  perf tools: Fix compile error on x86_64 Ubuntu\n  perf report: Fix --stdio output alignment when --showcpuutilization used\n  perf annotate: Get rid of field_sep check\n  perf annotate: Fix usage string\n  perf kmem: Fix a memory leak\n  perf kmem: Add missing closedir() calls\n  perf top: Add error message for EMFILE\n  perf test: Change type of \u0027-v\u0027 option to INCR\n  perf script: Add missing closedir() calls\n  tracing: Fix compile error when static ftrace is enabled\n  recordmcount: Fix handling of elf64 big-endian objects.\n  perf tools: Add const.h to MANIFEST to make perf-tar-src-pkg work again\n  perf tools: Add support for guest/host-only profiling\n  perf kvm: Do guest-only counting by default\n  perf top: Don\u0027t update total_period on process_sample\n  perf hists: Stop using \u0027self\u0027 for struct hist_entry\n  perf hists: Rename total_session to total_period\n  x86: Add counter when debug stack is used with interrupts enabled\n  x86: Allow NMIs to hit breakpoints in i386\n  x86: Keep current stack in NMI breakpoints\n  ...\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
      "tree": "502a8f9499bc1b4cb3300d666dab2d01a1921224",
      "parents": [
        "423d091dfe58d3109d84c408810a7cfa82f6f184",
        "9e183426bfb52bb44bf3c443d6587e4d02478603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (106 commits)\n  perf kvm: Fix copy \u0026 paste error in description\n  perf script: Kill script_spec__delete\n  perf top: Fix a memory leak\n  perf stat: Introduce get_ratio_color() helper\n  perf session: Remove impossible condition check\n  perf tools: Fix feature-bits rework fallout, remove unused variable\n  perf script: Add generic perl handler to process events\n  perf tools: Use for_each_set_bit() to iterate over feature flags\n  perf tools: Unify handling of features when writing feature section\n  perf report: Accept fifos as input file\n  perf tools: Moving code in some files\n  perf tools: Fix out-of-bound access to struct perf_session\n  perf tools: Continue processing header on unknown features\n  perf tools: Improve macros for struct feature_ops\n  perf: builtin-record: Document and check that mmap_pages must be a power of two.\n  perf: builtin-record: Provide advice if mmap\u0027ing fails with EPERM.\n  perf tools: Fix truncated annotation\n  perf script: look up thread using tid instead of pid\n  perf tools: Look up thread names for system wide profiling\n  perf tools: Fix comm for processes with named threads\n  ...\n"
    },
    {
      "commit": "f4ae40a6a50a98ac23d4b285f739455e926a473e",
      "tree": "c84d7393700bd85e5285a194f8c22d4d00e36b28",
      "parents": [
        "48176a973d65572e61d0ce95495e5072887e6fb6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 04:33:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:56 2012 -0500"
      },
      "message": "switch debugfs to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "38b78eb855409a05f9d370228bec1955e6878e08",
      "tree": "4f07483d49aaa53f7b6905a482f05ddcde4834de",
      "parents": [
        "762e1207889b3451c50d365b741af6f9ce958886"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 15 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:27:02 2011 -0500"
      },
      "message": "tracing: Factorize filter creation\n\nThere are four places where new filter for a given filter string is\ncreated, which involves several different steps.  This patch factors\nthose steps into create_[system_]filter() functions which in turn make\nuse of create_filter_{start|finish}() for common parts.\n\nThe only functional change is that if replace_filter_string() is\nrequested and fails, creation fails without any side effect instead of\nbeing ignored.\n\nNote that system filter is now installed after the processing is\ncomplete which makes freeing before and then restoring filter string\non error unncessary.\n\n-v2: Rebased to resolve conflict with 49aa29513e and updated both\n     create_filter() functions to always set *filterp instead of\n     requiring the caller to clear it to %NULL on entry.\n\nLink: http://lkml.kernel.org/r/1323988305-1469-2-git-send-email-tj@kernel.org\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "762e1207889b3451c50d365b741af6f9ce958886",
      "tree": "dcb1f4eacbddfa342181a29a97eb9b994922b009",
      "parents": [
        "2a85a37f168d2b4d74d493b578af4dc9032be92e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 22:01:00 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:26:49 2011 -0500"
      },
      "message": "tracing: Have stack tracing set filtered functions at boot\n\nAdd stacktrace_filter\u003d to the kernel command line that lets\nthe user pick specific functions to check the stack on.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2a85a37f168d2b4d74d493b578af4dc9032be92e",
      "tree": "26ed7136e9092e61ae693e117a540045ec5d54a0",
      "parents": [
        "d2d45c7a03a2b1a14159cbb665e9dd60991a7d4f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 21:57:44 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:26:35 2011 -0500"
      },
      "message": "ftrace: Allow access to the boot time function enabling\n\nChange set_ftrace_early_filter() to ftrace_set_early_filter()\nand make it a global function. This will allow other subsystems\nin the kernel to be able to enable function tracing at start\nup and reuse the ftrace function parsing code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d2d45c7a03a2b1a14159cbb665e9dd60991a7d4f",
      "tree": "3a4e1d9b928bc213b05eb3d4a93d46d2205a11a9",
      "parents": [
        "69a3083c4a7df0322d97bb2b43a33cb12af8131a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 14:44:09 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:25:57 2011 -0500"
      },
      "message": "tracing: Have stack_tracer use a separate list of functions\n\nThe stack_tracer is used to look at every function and check\nif the current stack is bigger than the last recorded max stack size.\nWhen a new max is found, then it saves that stack off.\n\nCurrently the stack tracer is limited by the global_ops of\nthe function tracer. As the stack tracer has nothing to do with\nthe ftrace function tracer, except that it uses it as its internal\nengine, the stack tracer should have its own list.\n\nA new file is added to the tracing debugfs directory called:\n\n  stack_trace_filter\n\nthat can be used to select which functions you want to check the stack\non.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "69a3083c4a7df0322d97bb2b43a33cb12af8131a",
      "tree": "96b0c48178e812819a2f8d8ccf4600997be41fbb",
      "parents": [
        "fc13cb0ce45296f331263a6034aa1814203e1ac3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 15:21:16 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:25:24 2011 -0500"
      },
      "message": "ftrace: Decouple hash items from showing filtered functions\n\nThe set_ftrace_filter shows \"hashed\" functions, which are functions\nthat are added with operations to them (like traceon and traceoff).\n\nAs other subsystems may be able to show what functions they are\nusing for function tracing, the hash items should no longer\nbe shown just because the FILTER flag is set. As they have nothing\nto do with other subsystems filters.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "fc13cb0ce45296f331263a6034aa1814203e1ac3",
      "tree": "2c66d6296ee01bcbd27cb9df4b72885339300ba6",
      "parents": [
        "06a51d9307380c78bb5c92e68fc80ad2c7d7f890"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 14:41:25 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:25:06 2011 -0500"
      },
      "message": "ftrace: Allow other users of function tracing to use the output listing\n\nThe function tracer is set up to allow any other subsystem (like perf)\nto use it. Ftrace already has a way to list what functions are enabled\nby the global_ops. It would be very helpful to let other users of\nthe function tracer to be able to use the same code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "06a51d9307380c78bb5c92e68fc80ad2c7d7f890",
      "tree": "e0f38e8780f92937e8f19f17b8bf9eff6bcc3137",
      "parents": [
        "c842e975520f8ab09e293cc92f51a1f396251fd5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 19:07:36 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:23:11 2011 -0500"
      },
      "message": "ftrace: Create ftrace_hash_empty() helper routine\n\nThere are two types of hashes in the ftrace_ops; one type\nis the filter_hash and the other is the notrace_hash. Either\none may be null, meaning it has no elements. But when elements\nare added, the hash is allocated.\n\nThroughout the code, a check needs to be made to see if a hash\nexists or the hash has elements, but the check if the hash exists\nis usually missing causing the possible \"NULL pointer dereference bug\".\n\nAdd a helper routine called \"ftrace_hash_empty()\" that returns\ntrue if the hash doesn\u0027t exist or its count is zero. As they mean\nthe same thing.\n\nLast-bug-reported-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c842e975520f8ab09e293cc92f51a1f396251fd5",
      "tree": "87102ee6a89cb30415927f43b7694e3ec5b127aa",
      "parents": [
        "5855fead9cc358adebd6bdeec202d040c623ae38"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 18:44:44 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:21:43 2011 -0500"
      },
      "message": "ftrace: Fix ftrace hash record update with notrace\n\nWhen disabling the \"notrace\" records, that means we want to trace them.\nIf the notrace_hash is zero, it means that we want to trace all\nrecords. But to disable a zero notrace_hash means nothing.\n\nThe check for the notrace_hash count was incorrect with:\n\n\tif (hash \u0026\u0026 !hash-\u003ecount)\n\t\treturn\n\nWith the correct comment above it that states that we do nothing\nif the notrace_hash has zero count. But !hash also means that\nthe notrace hash has zero count. I think this was done to\nprotect against dereferencing NULL. But if !hash is true, then\nwe go through the following loop without doing a single thing.\n\nFix it to:\n\n\tif (!hash || !hash-\u003ecount)\n\t\treturn;\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5855fead9cc358adebd6bdeec202d040c623ae38",
      "tree": "c95d272ff41b7873cc33feef3686ede3f020d4cd",
      "parents": [
        "68950619f8c82e468d8976130462617abea605a8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 19:27:42 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:20:50 2011 -0500"
      },
      "message": "ftrace: Use bsearch to find record ip\n\nNow that each set of pages in the function list are sorted by\nip, we can use bsearch to find a record within each set of pages.\nThis speeds up the ftrace_location() function by magnitudes.\n\nFor archs (like x86) that need to add a breakpoint at every function\nthat will be converted from a nop to a callback and vice versa,\nthe breakpoint callback needs to know if the breakpoint was for\nftrace or not. It requires finding the breakpoint ip within the\nrecords. Doing a linear search is extremely inefficient. It is\na must to be able to do a fast binary search to find these locations.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "68950619f8c82e468d8976130462617abea605a8",
      "tree": "88a2a4ae266b0bad4335c9bb803b7feb76d71c90",
      "parents": [
        "85ae32ae019bc1c2cc22e5f51fe0c9f2812ef68c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 17:06:45 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:19:58 2011 -0500"
      },
      "message": "ftrace: Sort the mcount records on each page\n\nSort records by ip locations of the ftrace mcount calls on each of the\nset of pages in the function list. This helps in localizing cache\nusuage when updating the function locations, as well as gives us\nthe ability to quickly find an ip location in the list.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "85ae32ae019bc1c2cc22e5f51fe0c9f2812ef68c",
      "tree": "38ce2528dd0af0190e61cbf1dcc9f6d0c4ac3cf6",
      "parents": [
        "a79008755497daff157f5294c02e3b940641cc11"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 16:30:31 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:19:03 2011 -0500"
      },
      "message": "ftrace: Replace record newlist with record page list\n\nAs new functions come in to be initalized from mcount to nop,\nthey are done by groups of pages. Whether it is the core kernel\nor a module. There\u0027s no need to keep track of these on a per record\nbasis.\n\nAt startup, and as any module is loaded, the functions to be\ntraced are stored in a group of pages and added to the function\nlist at the end. We just need to keep a pointer to the first\npage of the list that was added, and use that to know where to\nstart on the list for initializing functions.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a79008755497daff157f5294c02e3b940641cc11",
      "tree": "941e16ae559cbe82f371d07c09b03642bb6e83dd",
      "parents": [
        "3208230983a0ee3d95be22d463257e530c684956"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 16:23:44 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:18:30 2011 -0500"
      },
      "message": "ftrace: Allocate the mcount record pages as groups\n\nAllocate the mcount record pages as a group of pages as big\nas can be allocated and waste no more than a single page.\n\nGrouping the mcount pages as much as possible helps with cache\nlocality, as we do not need to redirect with descriptors as we\ncross from page to page. It also allows us to do more with the\nrecords later on (sort them with bigger benefits).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3208230983a0ee3d95be22d463257e530c684956",
      "tree": "fdba765e348c53a4fd65094ac17e66061f0b8932",
      "parents": [
        "c88fd8634ea68e74c7d19fd2621b4078fd22864c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 14:42:37 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:17:57 2011 -0500"
      },
      "message": "ftrace: Remove usage of \"freed\" records\n\nRecords that are added to the function trace table are\npermanently there, except for modules. By separating out the\nmodules to their own pages that can be freed in one shot\nwe can remove the \"freed\" flag and simplify some of the record\nmanagement.\n\nAnother benefit of doing this is that we can also move the\nrecords around; sort them.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c88fd8634ea68e74c7d19fd2621b4078fd22864c",
      "tree": "9d8bbc57d20eec9869a9655ff79cc1c4d6359b88",
      "parents": [
        "45959ee7aa645815a5ce303a0ea1e48a21e67c6a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Aug 16 09:53:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:16:58 2011 -0500"
      },
      "message": "ftrace: Allow archs to modify code without stop machine\n\nThe stop machine method to modify all functions in the kernel\n(some 20,000 of them) is the safest way to do so across all archs.\nBut some archs may not need this big hammer approach to modify code\non SMP machines, and can simply just update the code it needs.\n\nAdding a weak function arch_ftrace_update_code() that now does the\nstop machine, will also let any arch override this method.\n\nIf the arch needs to check the system and then decide if it can\navoid stop machine, it can still call ftrace_run_stop_machine() to\nuse the old method.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "30fb6aa74011dcf595f306ca2727254d708b786e",
      "tree": "cda3efc265f74c8d6496b2d976f528fcdc1cb81d",
      "parents": [
        "74eec26facadbe6dbc0621bc862892c915c4534f"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon Dec 05 18:22:48 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:09:14 2011 -0500"
      },
      "message": "ftrace: Fix unregister ftrace_ops accounting\n\nMultiple users of the function tracer can register their functions\nwith the ftrace_ops structure. The accounting within ftrace will\nupdate the counter on each function record that is being traced.\nWhen the ftrace_ops filtering adds or removes functions, the\nfunction records will be updated accordingly if the ftrace_ops is\nstill registered.\n\nWhen a ftrace_ops is removed, the counter of the function records,\nthat the ftrace_ops traces, are decremented. When they reach zero\nthe functions that they represent are modified to stop calling the\nmcount code.\n\nWhen changes are made, the code is updated via stop_machine() with\na command passed to the function to tell it what to do. There is an\nENABLE and DISABLE command that tells the called function to enable\nor disable the functions. But the ENABLE is really a misnomer as it\nshould just update the records, as records that have been enabled\nand now have a count of zero should be disabled.\n\nThe DISABLE command is used to disable all functions regardless of\ntheir counter values. This is the big off switch and is not the\ncomplement of the ENABLE command.\n\nTo make matters worse, when a ftrace_ops is unregistered and there\nis another ftrace_ops registered, neither the DISABLE nor the\nENABLE command are set when calling into the stop_machine() function\nand the records will not be updated to match their counter. A command\nis passed to that function that will update the mcount code to call\nthe registered callback directly if it is the only one left. This\nmeans that the ftrace_ops that is still registered will have its callback\ncalled by all functions that have been set for it as well as the ftrace_ops\nthat was just unregistered.\n\nHere\u0027s a way to trigger this bug. Compile the kernel with\nCONFIG_FUNCTION_PROFILER set and with CONFIG_FUNCTION_GRAPH not set:\n\n CONFIG_FUNCTION_PROFILER\u003dy\n # CONFIG_FUNCTION_GRAPH is not set\n\nThis will force the function profiler to use the function tracer instead\nof the function graph tracer.\n\n  # cd /sys/kernel/debug/tracing\n  # echo schedule \u003e set_ftrace_filter\n  # echo function \u003e current_tracer\n  # cat set_ftrace_filter\n schedule\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 692/68108025   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n      kworker/0:2-909   [000] ....   531.235574: schedule \u003c-worker_thread\n           \u003cidle\u003e-0     [001] .N..   531.235575: schedule \u003c-cpu_idle\n      kworker/0:2-909   [000] ....   531.235597: schedule \u003c-worker_thread\n             sshd-2563  [001] ....   531.235647: schedule \u003c-schedule_hrtimeout_range_clock\n\n  # echo 1 \u003e function_profile_enabled\n  # echo 0 \u003e function_porfile_enabled\n  # cat set_ftrace_filter\n schedule\n  # cat trace\n # tracer: function\n #\n # entries-in-buffer/entries-written: 159701/118821262   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [002] ...1   604.870655: local_touch_nmi \u003c-cpu_idle\n           \u003cidle\u003e-0     [002] d..1   604.870655: enter_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [002] d..1   604.870656: atomic_notifier_call_chain \u003c-enter_idle\n           \u003cidle\u003e-0     [002] d..1   604.870656: __atomic_notifier_call_chain \u003c-atomic_notifier_call_chain\n\nThe same problem could have happened with the trace_probe_ops,\nbut they are modified with the set_frace_filter file which does the\nupdate at closure of the file.\n\nThe simple solution is to change ENABLE to UPDATE and call it every\ntime an ftrace_ops is unregistered.\n\nLink: http://lkml.kernel.org/r/1323105776-26961-3-git-send-email-jolsa@redhat.com\n\nCc: stable@vger.kernel.org # 3.0+\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8eecf2248a45bf69f0625b23c003ad2ccd765ee",
      "tree": "170e96d6a6cf26da8751ec98f59c81adc28717e6",
      "parents": [
        "9b2e4f1880b789be1f24f9684f7a54b90310b5c0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Oct 02 11:01:15 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:25 2011 -0800"
      },
      "message": "trace: Allow ftrace_dump() to be called from modules\n\nAdd an EXPORT_SYMBOL_GPL() so that rcutorture can dump the trace buffer\nupon detection of an RCU error.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "cc991b83b3eb11b253dd932932fa0bfd09c7564a",
      "tree": "ab3b05fbc37a58741dbe5ccee45491100c13759c",
      "parents": [
        "b202952075f62603bea9bfb6ebc6b0420db11949",
        "39eaf7ef884dcc44f7ff1bac803ca2a1dcf43544"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 19:09:15 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 19:09:15 2011 +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"
    },
    {
      "commit": "d6c1c49de577fa292af2449817364b7d89b574d8",
      "tree": "e97cf88a318f50eb23c18d790e8b0bcf7bb47169",
      "parents": [
        "9dde9dc0a81c7aeb863b35121d09011f09b4897c",
        "ddf6e0e50723b62ac76ed18eb53e9417c6eefba7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 06:42:35 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 06:43:49 2011 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Add these cherry-picked commits so that future changes\n              on perf/core don\u0027t conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ddf6e0e50723b62ac76ed18eb53e9417c6eefba7",
      "tree": "afee7574ab5b3a8e3d907327e73c2785cd275abe",
      "parents": [
        "d06c27b22aa66e48e32f03f9387328a9af9b0625"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 04 20:32:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 05 13:28:47 2011 -0500"
      },
      "message": "ftrace: Fix hash record accounting bug\n\nIf the set_ftrace_filter is cleared by writing just whitespace to\nit, then the filter hash refcounts will be decremented but not\nupdated. This causes two bugs:\n\n1) No functions will be enabled for tracing when they all should be\n\n2) If the users clears the set_ftrace_filter twice, it will crash ftrace:\n\n------------[ cut here ]------------\nWARNING: at /home/rostedt/work/git/linux-trace.git/kernel/trace/ftrace.c:1384 __ftrace_hash_rec_update.part.27+0x157/0x1a7()\nModules linked in:\nPid: 2330, comm: bash Not tainted 3.1.0-test+ #32\nCall Trace:\n [\u003cffffffff81051828\u003e] warn_slowpath_common+0x83/0x9b\n [\u003cffffffff8105185a\u003e] warn_slowpath_null+0x1a/0x1c\n [\u003cffffffff810ba362\u003e] __ftrace_hash_rec_update.part.27+0x157/0x1a7\n [\u003cffffffff810ba6e8\u003e] ? ftrace_regex_release+0xa7/0x10f\n [\u003cffffffff8111bdfe\u003e] ? kfree+0xe5/0x115\n [\u003cffffffff810ba51e\u003e] ftrace_hash_move+0x2e/0x151\n [\u003cffffffff810ba6fb\u003e] ftrace_regex_release+0xba/0x10f\n [\u003cffffffff8112e49a\u003e] fput+0xfd/0x1c2\n [\u003cffffffff8112b54c\u003e] filp_close+0x6d/0x78\n [\u003cffffffff8113a92d\u003e] sys_dup3+0x197/0x1c1\n [\u003cffffffff8113a9a6\u003e] sys_dup2+0x4f/0x54\n [\u003cffffffff8150cac2\u003e] system_call_fastpath+0x16/0x1b\n---[ end trace 77a3a7ee73794a02 ]---\n\nLink: http://lkml.kernel.org/r/20111101141420.GA4918@debian\n\nReported-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c7c6ec8becaf742b223c7b491f4893014be23a07",
      "tree": "1eb23e1dd22ef56b298bc2f207d5d4999a0731cf",
      "parents": [
        "27b14b56af081ec7edeefb3a38b2c9577cc5ef48"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 04 10:45:23 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 05 13:28:45 2011 -0500"
      },
      "message": "ftrace: Remove force undef config value left for testing\n\nA forced undef of a config value was used for testing and was\naccidently left in during the final commit. This causes x86 to\nrun slower than needed while running function tracing as well\nas causes the function graph selftest to fail when DYNMAIC_FTRACE\nis not set. This is because the code in MCOUNT expects the ftrace\ncode to be processed with the config value set that happened to\nbe forced not set.\n\nThe forced config option was left in by:\n    commit 6331c28c962561aee59e5a493b7556a4bb585957\n    ftrace: Fix dynamic selftest failure on some archs\n\nLink: http://lkml.kernel.org/r/20111102150255.GA6973@debian\n\nCc: stable@vger.kernel.org\nReported-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "27b14b56af081ec7edeefb3a38b2c9577cc5ef48",
      "tree": "841e01c8d64fdf08b88c8a76de3272b4630ed145",
      "parents": [
        "cb59974742aea24adf6637eb0c4b8e7b48bca6fb"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 01 09:09:35 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 05 13:28:45 2011 -0500"
      },
      "message": "tracing: Restore system filter behavior\n\nThough not all events have field \u0027prev_pid\u0027, it was allowed to do this:\n\n  # echo \u0027prev_pid \u003d\u003d 100\u0027 \u003e events/sched/filter\n\nbut commit 75b8e98263fdb0bfbdeba60d4db463259f1fe8a2 (tracing/filter: Swap\nentire filter of events) broke it without any reason.\n\nLink: http://lkml.kernel.org/r/4EAF46CF.8040408@cn.fujitsu.com\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cb59974742aea24adf6637eb0c4b8e7b48bca6fb",
      "tree": "1f891849b3fa24d69c3517c3c3739964ecfb0ac9",
      "parents": [
        "dc440d10e1668b15fe704a23adb9b53fbbb24a44"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Oct 31 11:07:42 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 05 13:28:44 2011 -0500"
      },
      "message": "tracing: fix event_subsystem ref counting\n\nFix a bug introduced by e9dbfae5, which prevents event_subsystem from\never being released.\n\nRef_count was added to keep track of subsystem users, not for counting\nevents.  Subsystem is created with ref_count \u003d 1, so there is no need to\nincrement it for every event, we have nr_events for that.  Fix this by\ntouching ref_count only when we actually have a new user -\nsubsystem_open().\n\nCc: stable@vger.kernel.org\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1320052062-7846-1-git-send-email-idryomov@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d3d9acf646679c1981032b0985b386d12fccc60c",
      "tree": "68df9e100ae7304a1384160b5d1b068241f4d1fe",
      "parents": [
        "4a1dba72384193753e44e15d9d05a50be6587271"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 23 08:49:49 2011 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Dec 01 22:16:47 2011 -0500"
      },
      "message": "trace_events_filter: Use rcu_assign_pointer() when setting ftrace_event_call-\u003efilter\n\nftrace_event_call-\u003efilter is sched RCU protected but didn\u0027t use\nrcu_assign_pointer().  Use it.\n\nTODO: Add proper __rcu annotation to call-\u003efilter and all its users.\n\n-v2: Use RCU_INIT_POINTER() for %NULL clearing as suggested by Eric.\n\nLink: http://lkml.kernel.org/r/20111123164949.GA29639@google.com\n\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: stable@kernel.org # (2.6.39+)\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "39eaf7ef884dcc44f7ff1bac803ca2a1dcf43544",
      "tree": "323e858496ef9c587a3e9861dab863af5303f82f",
      "parents": [
        "77271ce4b2c0df0a76ad1cbb6a95b07e1f88c1ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 17 10:35:16 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 17 11:10:43 2011 -0500"
      },
      "message": "tracing: Add entries in buffer and total entries to default output header\n\nKnowing the number of event entries in the ring buffer compared\nto the total number that were written is useful information. The\nlatency format gives this information and there\u0027s no reason that the\ndefault format does not.\n\nThis information is now added to the default header, along with the\nnumber of online CPUs:\n\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 159836/64690869   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] ...2    49.442971: local_touch_nmi \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.442973: enter_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.442974: atomic_notifier_call_chain \u003c-enter_idle\n           \u003cidle\u003e-0     [000] d..2    49.442976: __atomic_notifier_call_chain \u003c-atomic_notifier\n\nThe above shows that the trace contains 159836 entries, but\n64690869 were written. One could figure out that there were\n64531033 entries that were dropped.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "77271ce4b2c0df0a76ad1cbb6a95b07e1f88c1ea",
      "tree": "fd46cc3c3128bd230ee9dcbd610bc0ca8719a63c",
      "parents": [
        "5d81e5cfb37a174e8ddc0413e2e70cdf05807ace"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 17 09:34:33 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 17 09:58:48 2011 -0500"
      },
      "message": "tracing: Add irq, preempt-count and need resched info to default trace output\n\nPeople keep asking how to get the preempt count, irq, and need resched info\nand we keep telling them to enable the latency format. Some developers think\nthat traces without this info is completely useless, and for a lot of tasks\nit is useless.\n\nThe first option was to enable the latency trace as the default format, but\nthe header for the latency format is pretty useless for most tracers and\nit also does the timestamp in straight microseconds from the time the trace\nstarted. This is sometimes more difficult to read as the default trace is\nseconds from the start of boot up.\n\nLatency format:\n\n # tracer: nop\n #\n # nop latency trace v1.1.5 on 3.2.0-rc1-test+\n # --------------------------------------------------------------------\n # latency: 0 us, #159771/64234230, CPU#1 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)\n #    -----------------\n #    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n #    -----------------\n #\n #                  _------\u003d\u003e CPU#\n #                 / _-----\u003d\u003e irqs-off\n #                | / _----\u003d\u003e need-resched\n #                || / _---\u003d\u003e hardirq/softirq\n #                ||| / _--\u003d\u003e preempt-depth\n #                |||| /     delay\n #  cmd     pid   ||||| time  |   caller\n #     \\   /      |||||  \\    |   /\n migratio-6       0...2 41778231us+: rcu_note_context_switch \u003c-__schedule\n migratio-6       0...2 41778233us : trace_rcu_utilization \u003c-rcu_note_context_switch\n migratio-6       0...2 41778235us+: rcu_sched_qs \u003c-rcu_note_context_switch\n migratio-6       0d..2 41778236us+: rcu_preempt_qs \u003c-rcu_note_context_switch\n migratio-6       0...2 41778238us : trace_rcu_utilization \u003c-rcu_note_context_switch\n migratio-6       0...2 41778239us+: debug_lockdep_rcu_enabled \u003c-__schedule\n\ndefault format:\n\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n      migration/0-6     [000]    50.025810: rcu_note_context_switch \u003c-__schedule\n      migration/0-6     [000]    50.025812: trace_rcu_utilization \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025813: rcu_sched_qs \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025815: rcu_preempt_qs \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025817: trace_rcu_utilization \u003c-rcu_note_context_switch\n      migration/0-6     [000]    50.025818: debug_lockdep_rcu_enabled \u003c-__schedule\n      migration/0-6     [000]    50.025820: debug_lockdep_rcu_enabled \u003c-__schedule\n\nThe latency format header has latency information that is pretty meaningless\nfor most tracers. Although some of the header is useful, and we can add that\nlater to the default format as well.\n\nWhat is really useful with the latency format is the irqs-off, need-resched\nhard/softirq context and the preempt count.\n\nThis commit adds the option irq-info which is on by default that adds this\ninformation:\n\n # tracer: nop\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] d..2    49.309305: cpuidle_get_driver \u003c-cpuidle_idle_call\n           \u003cidle\u003e-0     [000] d..2    49.309307: mwait_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000] d..2    49.309309: need_resched \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309310: test_ti_thread_flag \u003c-need_resched\n           \u003cidle\u003e-0     [000] d..2    49.309312: trace_power_start.constprop.13 \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309313: trace_cpu_idle \u003c-mwait_idle\n           \u003cidle\u003e-0     [000] d..2    49.309315: need_resched \u003c-mwait_idle\n\nIf a user wants the old format, they can disable the \u0027irq-info\u0027 option:\n\n # tracer: nop\n #\n #           TASK-PID   CPU#      TIMESTAMP  FUNCTION\n #              | |       |          |         |\n           \u003cidle\u003e-0     [000]     49.309305: cpuidle_get_driver \u003c-cpuidle_idle_call\n           \u003cidle\u003e-0     [000]     49.309307: mwait_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [000]     49.309309: need_resched \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309310: test_ti_thread_flag \u003c-need_resched\n           \u003cidle\u003e-0     [000]     49.309312: trace_power_start.constprop.13 \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309313: trace_cpu_idle \u003c-mwait_idle\n           \u003cidle\u003e-0     [000]     49.309315: need_resched \u003c-mwait_idle\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "efc96737bd82b508794d2b28061a12af4a3f7766",
      "tree": "e9fe4982967b74c0d25a35a2d7f7c62d8be98a47",
      "parents": [
        "1ec454baf1245df4fdb5dae728da3363630ce6de",
        "7e9a49ef542610609144d1afcd516dc3fafac4d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +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"
    },
    {
      "commit": "7e9a49ef542610609144d1afcd516dc3fafac4d6",
      "tree": "a8b3748cbbb2ab61998d4c8e2f8c055e0edda104",
      "parents": [
        "d4d34b981a5327eec956c6cb4cce397ce6f57279"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon Nov 07 16:08:49 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 13:48:35 2011 -0500"
      },
      "message": "tracing/latency: Fix header output for latency tracers\n\nIn case the the graph tracer (CONFIG_FUNCTION_GRAPH_TRACER) or even the\nfunction tracer (CONFIG_FUNCTION_TRACER) are not set, the latency tracers\ndo not display proper latency header.\n\nThe involved/fixed latency tracers are:\n        wakeup_rt\n        wakeup\n        preemptirqsoff\n        preemptoff\n        irqsoff\n\nThe patch adds proper handling of tracer configuration options for latency\ntracers, and displaying correct header info accordingly.\n\n* The current output (for wakeup tracer) with both graph and function\n  tracers disabled is:\n\n  # tracer: wakeup\n  #\n    \u003cidle\u003e-0       0d.h5    1us+:      0:120:R   + [000]     7:  0:R watchdog/0\n    \u003cidle\u003e-0       0d.h5    3us+: ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n    ...\n\n* The fixed output is:\n\n  # tracer: wakeup\n  #\n  # wakeup latency trace v1.1.5 on 3.1.0-tip+\n  # --------------------------------------------------------------------\n  # latency: 55 us, #4/4, CPU#0 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n  #    -----------------\n  #    | task: migration/0-6 (uid:0 nice:0 policy:1 rt_prio:99)\n  #    -----------------\n  #\n  #                  _------\u003d\u003e CPU#\n  #                 / _-----\u003d\u003e irqs-off\n  #                | / _----\u003d\u003e need-resched\n  #                || / _---\u003d\u003e hardirq/softirq\n  #                ||| / _--\u003d\u003e preempt-depth\n  #                |||| /     delay\n  #  cmd     pid   ||||| time  |   caller\n  #     \\   /      |||||  \\    |   /\n       cat-1129    0d..4    1us :   1129:120:R   + [000]     6:  0:R migration/0\n       cat-1129    0d..4    2us+: ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\n* The current output (for wakeup tracer) with only function\n  tracer enabled is:\n\n  # tracer: wakeup\n  #\n       cat-1140    0d..4    1us+:   1140:120:R   + [000]     6:  0:R migration/0\n       cat-1140    0d..4    2us : ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\n* The fixed output is:\n  # tracer: wakeup\n  #\n  # wakeup latency trace v1.1.5 on 3.1.0-tip+\n  # --------------------------------------------------------------------\n  # latency: 207 us, #109/109, CPU#1 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n  #    -----------------\n  #    | task: watchdog/1-12 (uid:0 nice:0 policy:1 rt_prio:99)\n  #    -----------------\n  #\n  #                  _------\u003d\u003e CPU#\n  #                 / _-----\u003d\u003e irqs-off\n  #                | / _----\u003d\u003e need-resched\n  #                || / _---\u003d\u003e hardirq/softirq\n  #                ||| / _--\u003d\u003e preempt-depth\n  #                |||| /     delay\n  #  cmd     pid   ||||| time  |   caller\n  #     \\   /      |||||  \\    |   /\n    \u003cidle\u003e-0       1d.h5    1us+:      0:120:R   + [001]    12:  0:R watchdog/1\n    \u003cidle\u003e-0       1d.h5    3us : ttwu_do_activate.clone.1 \u003c-try_to_wake_up\n\nLink: http://lkml.kernel.org/r/20111107150849.GE1807@m.brq.redhat.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d4d34b981a5327eec956c6cb4cce397ce6f57279",
      "tree": "a5ee3ca4103b2a987f369a15cd9f28798d0d91cf",
      "parents": [
        "49908a1b25d448d68fd26faca260e1850201575f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 04 20:32:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 13:48:05 2011 -0500"
      },
      "message": "ftrace: Fix hash record accounting bug\n\nIf the set_ftrace_filter is cleared by writing just whitespace to\nit, then the filter hash refcounts will be decremented but not\nupdated. This causes two bugs:\n\n1) No functions will be enabled for tracing when they all should be\n\n2) If the users clears the set_ftrace_filter twice, it will crash ftrace:\n\n------------[ cut here ]------------\nWARNING: at /home/rostedt/work/git/linux-trace.git/kernel/trace/ftrace.c:1384 __ftrace_hash_rec_update.part.27+0x157/0x1a7()\nModules linked in:\nPid: 2330, comm: bash Not tainted 3.1.0-test+ #32\nCall Trace:\n [\u003cffffffff81051828\u003e] warn_slowpath_common+0x83/0x9b\n [\u003cffffffff8105185a\u003e] warn_slowpath_null+0x1a/0x1c\n [\u003cffffffff810ba362\u003e] __ftrace_hash_rec_update.part.27+0x157/0x1a7\n [\u003cffffffff810ba6e8\u003e] ? ftrace_regex_release+0xa7/0x10f\n [\u003cffffffff8111bdfe\u003e] ? kfree+0xe5/0x115\n [\u003cffffffff810ba51e\u003e] ftrace_hash_move+0x2e/0x151\n [\u003cffffffff810ba6fb\u003e] ftrace_regex_release+0xba/0x10f\n [\u003cffffffff8112e49a\u003e] fput+0xfd/0x1c2\n [\u003cffffffff8112b54c\u003e] filp_close+0x6d/0x78\n [\u003cffffffff8113a92d\u003e] sys_dup3+0x197/0x1c1\n [\u003cffffffff8113a9a6\u003e] sys_dup2+0x4f/0x54\n [\u003cffffffff8150cac2\u003e] system_call_fastpath+0x16/0x1b\n---[ end trace 77a3a7ee73794a02 ]---\n\nLink: http://lkml.kernel.org/r/20111101141420.GA4918@debian\n\nReported-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8ee3c92b7f2751c392be2d8fc360a410480b8757",
      "tree": "60ebbd1d3dc66eda28f73cc08d19c0ccbd082cbf",
      "parents": [
        "e5e78d08f3ab3094783b8df08a5b6d1d1a56a58f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 04 10:45:23 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 11:02:33 2011 -0500"
      },
      "message": "ftrace: Remove force undef config value left for testing\n\nA forced undef of a config value was used for testing and was\naccidently left in during the final commit. This causes x86 to\nrun slower than needed while running function tracing as well\nas causes the function graph selftest to fail when DYNMAIC_FTRACE\nis not set. This is because the code in MCOUNT expects the ftrace\ncode to be processed with the config value set that happened to\nbe forced not set.\n\nThe forced config option was left in by:\n    commit 6331c28c962561aee59e5a493b7556a4bb585957\n    ftrace: Fix dynamic selftest failure on some archs\n\nLink: http://lkml.kernel.org/r/20111102150255.GA6973@debian\n\nCc: stable@vger.kernel.org\nReported-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "49aa29513ec995f201664cf6eee36e5326ed38bf",
      "tree": "261edda11ab8893c6b565561bb1c69cc714fca6c",
      "parents": [
        "ed0449af5373abd766c79fbf83254bebc996bd23"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 02 16:46:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 04 21:25:36 2011 -0400"
      },
      "message": "tracing: Add boiler plate for subsystem filter\n\nThe system filter can be used to set multiple event filters that\nexist within the system. But currently it displays the last filter\nwritten that does not necessarily correspond to the filters within\nthe system. The system filter itself is not used to filter any events.\nThe system filter is just a means to set filters of the events within\nit.\n\nBecause this causes an ambiguous state when the system filter reads\na filter string but the events within the system have different strings\nit is best to just show a boiler plate:\n\n ### global filter ###\n # Use this to set filters for multiple events.\n # Only events with the given fields will be affected.\n # If no events are modified, an error message will be displayed here.\n\nIf an error occurs while writing to the system filter, the system\nfilter will replace the boiler plate with the error message as it\ncurrently does.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ed0449af5373abd766c79fbf83254bebc996bd23",
      "tree": "e72b0cde1827e4558c8748e7a410086ba124ef7f",
      "parents": [
        "d631097577f6fe027f4903f62eabced6445d19bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 01 09:09:35 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 02 13:56:25 2011 -0400"
      },
      "message": "tracing: Restore system filter behavior\n\nThough not all events have field \u0027prev_pid\u0027, it was allowed to do this:\n\n  # echo \u0027prev_pid \u003d\u003d 100\u0027 \u003e events/sched/filter\n\nbut commit 75b8e98263fdb0bfbdeba60d4db463259f1fe8a2 (tracing/filter: Swap\nentire filter of events) broke it without any reason.\n\nLink: http://lkml.kernel.org/r/4EAF46CF.8040408@cn.fujitsu.com\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6e5fdeedca610df600aabc393c4b1f44b128fe49",
      "tree": "52a34c30bef1501f19c691a759b81b6f2603cd32",
      "parents": [
        "bdfa97bf7263657b83bc5b68567a3a60dde84c5b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:05 2011 -0400"
      },
      "message": "kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure\n\nThese files were getting \u003clinux/module.h\u003e via an implicit non-obvious\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "d631097577f6fe027f4903f62eabced6445d19bf",
      "tree": "42aacb1258942bcf51e4a2893f3303965997902b",
      "parents": [
        "c752d04066a36ae30b29795f3fa3f536292c1f8c"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Oct 31 11:07:42 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 31 13:59:23 2011 -0400"
      },
      "message": "tracing: fix event_subsystem ref counting\n\nFix a bug introduced by e9dbfae5, which prevents event_subsystem from\never being released.\n\nRef_count was added to keep track of subsystem users, not for counting\nevents.  Subsystem is created with ref_count \u003d 1, so there is no need to\nincrement it for every event, we have nr_events for that.  Fix this by\ntouching ref_count only when we actually have a new user -\nsubsystem_open().\n\nCc: stable@vger.kernel.org\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1320052062-7846-1-git-send-email-idryomov@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "56d82e000cdfb51aa92241d4682302f78c35cd92",
      "tree": "db011bf38930f2d0d0fa8a8f43e223fd03e25fad",
      "parents": [
        "9984de1a5a8a96275fcab818f7419af5a3c86e71"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 17:53:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Add \u003clinux/module.h\u003e to files using it implicitly\n\nThese files are doing things like module_put and try_module_get\nso they need to call out the module.h for explicit inclusion,\nrather than getting it via \u003clinux/device.h\u003e which we ideally want\nto remove the module.h inclusion from.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "7115e3fcf45514db7525a05365b10454ff7f345e",
      "tree": "17450e6337d559cc35dae6a7a73abab01ac63f00",
      "parents": [
        "1f6e05171bb5cc32a4d6437ab2269fc21d169ca7",
        "c752d04066a36ae30b29795f3fa3f536292c1f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:03:38 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:03:38 2011 +0200"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (121 commits)\n  perf symbols: Increase symbol KSYM_NAME_LEN size\n  perf hists browser: Refuse \u0027a\u0027 hotkey on non symbolic views\n  perf ui browser: Use libslang to read keys\n  perf tools: Fix tracing info recording\n  perf hists browser: Elide DSO column when it is set to just one DSO, ditto for threads\n  perf hists: Don\u0027t consider filtered entries when calculating column widths\n  perf hists: Don\u0027t decay total_period for filtered entries\n  perf hists browser: Honour symbol_conf.show_{nr_samples,total_period}\n  perf hists browser: Do not exit on tab key with single event\n  perf annotate browser: Don\u0027t change selection line when returning from callq\n  perf tools: handle endianness of feature bitmap\n  perf tools: Add prelink suggestion to dso update message\n  perf script: Fix unknown feature comment\n  perf hists browser: Apply the dso and thread filters when merging new batches\n  perf hists: Move the dso and thread filters from hist_browser\n  perf ui browser: Honour the xterm colors\n  perf top tui: Give color hints just on the percentage, like on --stdio\n  perf ui browser: Make the colors configurable and change the defaults\n  perf tui: Remove unneeded call to newtCls on startup\n  perf hists: Don\u0027t format the percentage on hist_entry__snprintf\n  ...\n\nFix up conflicts in arch/x86/kernel/kprobes.c manually.\n\nIngo\u0027s tree did the insane \"add volatile to const array\", which just\ndoesn\u0027t make sense (\"volatile const\"?).  But we could remove the const\n*and* make the array volatile to make doubly sure that gcc doesn\u0027t\noptimize it away..\n\nAlso fix up kernel/trace/ring_buffer.c non-data-conflicts manually: the\nreader_lock has been turned into a raw lock by the core locking merge,\nand there was a new user of it introduced in this perf core merge.  Make\nsure that new use also uses the raw accessor functions.\n"
    },
    {
      "commit": "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
      "tree": "88647d9dc50d634dee9cfeb7f354d620977a2f33",
      "parents": [
        "982653009b883ef1529089e3e6f1ae2fee41cbe2",
        "68cc3990a545dc0da221b4844dd8b9c06623a6c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:17:32 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:17:32 2011 +0200"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  rtmutex: Add missing rcu_read_unlock() in debug_rt_mutex_print_deadlock()\n  lockdep: Comment all warnings\n  lib: atomic64: Change the type of local lock to raw_spinlock_t\n  locking, lib/atomic64: Annotate atomic64_lock::lock as raw\n  locking, x86, iommu: Annotate qi-\u003eq_lock as raw\n  locking, x86, iommu: Annotate irq_2_ir_lock as raw\n  locking, x86, iommu: Annotate iommu-\u003eregister_lock as raw\n  locking, dma, ipu: Annotate bank_lock as raw\n  locking, ARM: Annotate low level hw locks as raw\n  locking, drivers/dca: Annotate dca_lock as raw\n  locking, powerpc: Annotate uic-\u003elock as raw\n  locking, x86: mce: Annotate cmci_discover_lock as raw\n  locking, ACPI: Annotate c3_lock as raw\n  locking, oprofile: Annotate oprofilefs lock as raw\n  locking, video: Annotate vga console lock as raw\n  locking, latencytop: Annotate latency_lock as raw\n  locking, timer_stats: Annotate table_lock as raw\n  locking, rwsem: Annotate inner lock as raw\n  locking, semaphores: Annotate inner lock as raw\n  locking, sched: Annotate thread_group_cputimer as raw\n  ...\n\nFix up conflicts in kernel/posix-cpu-timers.c manually: making\ncputimer-\u003ecputime a raw lock conflicted with the ABBA fix in commit\nbcd5cff7216f (\"cputimer: Cure lock inversion\").\n"
    },
    {
      "commit": "436fc280261dcfce5af38f08b89287750dc91cd2",
      "tree": "5a57ba115f7f9d19c0185673fa1bfba9dfc292da",
      "parents": [
        "9b5f8b31af57a8ce9e9f77864d9143b5e3304815"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 14 10:44:25 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 14 10:44:25 2011 -0400"
      },
      "message": "tracing: Fix returning of duplicate data after EOF in trace_pipe_raw\n\nThe trace_pipe_raw handler holds a cached page from the time the file\nis opened to the time it is closed. The cached page is used to handle\nthe case of the user space buffer being smaller than what was read from\nthe ring buffer. The left over buffer is held in the cache so that the\nnext read will continue where the data left off.\n\nAfter EOF is returned (no more data in the buffer), the index of\nthe cached page is set to zero. If a user app reads the page again\nafter EOF, the check in the buffer will see that the cached page\nis less than page size and will return the cached page again. This\nwill cause reading the trace_pipe_raw again after EOF to return\nduplicate data, making the output look like the time went backwards\nbut instead data is just repeated.\n\nThe fix is to not reset the index right after all data is read\nfrom the cache, but to reset it after all data is read and more\ndata exists in the ring buffer.\n\nCc: stable \u003cstable@kernel.org\u003e\nReported-by: Jeremy Eder \u003cjeder@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9b5f8b31af57a8ce9e9f77864d9143b5e3304815",
      "tree": "fad2ac950e2b326cec325014016c2135403b3bf2",
      "parents": [
        "910e94dd0cc5abacebf0bd5ffd859f61b9583857"
      ],
      "author": {
        "name": "Geunsik Lim",
        "email": "geunsik.lim@samsung.com",
        "time": "Fri Aug 12 14:30:22 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 14 10:41:33 2011 -0400"
      },
      "message": "ftrace: Fix README to state tracing_on to start/stop tracing\n\ntracing_enabled option is deprecated.\nTo start/stop tracing, write to /sys/kernel/debug/tracing/tracing_on\nwithout tracing_enabled. This patch is based on Linux 3.1.0-rc1\n\nSigned-off-by: Geunsik Lim \u003cgeunsik.lim@samsung.com\u003e\nLink: http://lkml.kernel.org/r/1313127022-23830-1-git-send-email-leemgs1@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "910e94dd0cc5abacebf0bd5ffd859f61b9583857",
      "tree": "7cb33f3f89f5fcdaa4dd4f5f19bb946ff495e9ac",
      "parents": [
        "177e2163fe2a5951c1d0531baa4bc1f135c6b7b4",
        "d696b58ca2c3ca76e784ef89a7e0453d9b7ab187"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 12 17:14:47 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 12 17:14:47 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://github.com/rostedt/linux into perf/core\n"
    },
    {
      "commit": "d696b58ca2c3ca76e784ef89a7e0453d9b7ab187",
      "tree": "e5f02a13dc8fdec22e9223189122e5938e9ce77e",
      "parents": [
        "e0a413f619ef8bc366dafc6f8221674993b8d85f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 22 11:50:27 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 11 09:13:53 2011 -0400"
      },
      "message": "tracing: Do not allocate buffer for trace_marker\n\nWhen doing intense tracing, the kmalloc inside trace_marker can\nintroduce side effects to what is being traced.\n\nAs trace_marker() is used by userspace to inject data into the\nkernel ring buffer, it needs to do so with the least amount\nof intrusion to the operations of the kernel or the user space\napplication.\n\nAs the ring buffer is designed to write directly into the buffer\nwithout the need to make a temporary buffer, and userspace already\nwent through the hassle of knowing how big the write will be,\nwe can simply pin the userspace pages and write the data directly\ninto the buffer. This improves the impact of tracing via trace_marker\ntremendously!\n\nThanks to Peter Zijlstra and Thomas Gleixner for pointing out the\nuse of get_user_pages_fast() and kmap_atomic().\n\nSuggested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e0a413f619ef8bc366dafc6f8221674993b8d85f",
      "tree": "a6696b0e7ef5422490bdbcc28d385c031d3e4eb8",
      "parents": [
        "e36de1de4a5f95b7cb3e5c37d10e6bbb91833ef0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 29 21:26:16 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 11 09:13:25 2011 -0400"
      },
      "message": "tracing: Warn on output if the function tracer was found corrupted\n\nAs the function tracer is very intrusive, lots of self checks are\nperformed on the tracer and if something is found to be strange\nit will shut itself down keeping it from corrupting the rest of the\nkernel. This shutdown may still allow functions to be traced, as the\ntracing only stops new modifications from happening. Trying to stop\nthe function tracer itself can cause more harm as it requires code\nmodification.\n\nAlthough a WARN_ON() is executed, a user may not notice it. To help\nthe user see that something isn\u0027t right with the tracing of the system\na big warning is added to the output of the tracer that lets the user\nknow that their data may be incomplete.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "02ca1521ad404cf566e0075848f80d064c0a0503",
      "tree": "11989ae5bfc1e32f355cc0bb0a64cb7ae801ed78",
      "parents": [
        "9d3ec7a0c41d010153c9d20577cb1bcf9c4f65df"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Tue Oct 04 19:44:38 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 10 15:13:03 2011 -0400"
      },
      "message": "ftrace/kprobes: Fix not to delete probes if in use\n\nFix kprobe-tracer not to delete a probe if the probe is in use.\nIn that case, delete operation will return -EBUSY.\n\nThis bug can cause a kernel panic if enabled probes are deleted\nduring perf record.\n\n(Add some probes on functions)\nsh-4.2# perf probe --del probe:\\*\nsh-4.2# exit\n(kernel panic)\n\nThis is originally reported on the fedora bugzilla:\n\n https://bugzilla.redhat.com/show_bug.cgi?id\u003d742383\n\nI\u0027ve also checked that this problem doesn\u0027t happen on\ntracepoints when module removing because perf event\nlocks target module.\n\n$ sudo ./perf record -e xfs:\\* -aR sh\nsh-4.2# rmmod xfs\nERROR: Module xfs is in use\nsh-4.2# exit\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.203 MB perf.data (~8862 samples) ]\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: stable@kernel.org\nLink: http://lkml.kernel.org/r/20111004104438.14591.6553.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d727b60659a1173eb4142a5fc521ce67c28b34e1",
      "tree": "793d0fc86ecf98331024db5c86bc271cc72aa2d2",
      "parents": [
        "3ee72ca99288f1de95ec9c570e43f531c8799f06",
        "2a5306cc5f383b0e7414c75e458111afd4a563a4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:16:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:16:55 2011 +0200"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into pm-for-linus\n\n* pm-runtime:\n  PM / Tracing: build rpm-traces.c only if CONFIG_PM_RUNTIME is set\n  PM / Runtime: Replace dev_dbg() with trace_rpm_*()\n  PM / Runtime: Introduce trace points for tracing rpm_* functions\n  PM / Runtime: Don\u0027t run callbacks under lock for power.irq_safe set\n  USB: Add wakeup info to debugging messages\n  PM / Runtime: pm_runtime_idle() can be called in atomic context\n  PM / Runtime: Add macro to test for runtime PM events\n  PM / Runtime: Add might_sleep() to runtime PM functions\n"
    },
    {
      "commit": "2a5306cc5f383b0e7414c75e458111afd4a563a4",
      "tree": "0725cb2cf142f1bb52eb93cf0cce77f3798b2f72",
      "parents": [
        "c3dc2f14622a06488f11452b6efd1e02c5a8548b"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Thu Sep 29 22:07:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 29 22:07:23 2011 +0200"
      },
      "message": "PM / Tracing: build rpm-traces.c only if CONFIG_PM_RUNTIME is set\n\nDo not build kernel/trace/rpm-traces.c if CONFIG_PM_RUNTIME is not\nset, which avoids a build failure.\n\n[rjw: Added the changelog and modified the subject slightly.]\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "53b615ccca567ada1931eb04ad0614ac150c14a3",
      "tree": "f09512d0dabaeff71b9ee66c26ca02cae2947873",
      "parents": [
        "ad3c36a534bc7b945d7bffdda1c62e13bf93489a"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Tue Sep 27 22:53:27 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 22:53:27 2011 +0200"
      },
      "message": "PM / Runtime: Introduce trace points for tracing rpm_* functions\n\nThis patch introduces 3 trace points to prepare for tracing\nrpm_idle/rpm_suspend/rpm_resume functions, so we can use these\ntrace points to replace the current dev_dbg().\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e36de1de4a5f95b7cb3e5c37d10e6bbb91833ef0",
      "tree": "69eab1dc497ec8cb25dfbe6bd98da7656a50c878",
      "parents": [
        "6249687f76b69cc0b2ad34636f4a18d693ef3262"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 22 11:11:51 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 22 11:11:51 2011 -0400"
      },
      "message": "tracing: Fix preemptirqsoff tracer to not stop at preempt off\n\nIf irqs are disabled when preemption count reaches zero, the\npreemptirqsoff tracer should not flag that as the end.\n\nWhen interrupts are enabled and preemption count is not zero\nthe preemptirqsoff correctly continues its tracing.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6249687f76b69cc0b2ad34636f4a18d693ef3262",
      "tree": "9c007b85738eb86f113a9a6de1e35129532e5f54",
      "parents": [
        "c64e148a3be3cb786534ad38298c25c833116c26"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 19 11:35:58 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 19 11:35:58 2011 -0400"
      },
      "message": "tracing: Add a counter clock for those that do not trust clocks\n\nWhen debugging tight race conditions, it can be helpful to have a\nsynchronized tracing method. Although in most cases the global clock\nprovides this functionality, if timings is not the issue, it is more\ncomforting to know that the order of events really happened in a precise\norder.\n\nInstead of using a clock, add a \"counter\" that is simply an incrementing\natomic 64bit counter that orders the events as they are perceived to\nhappen.\n\nThe trace_clock_counter() is added from the attempt by Peter Zijlstra\ntrying to convert the trace_clock_global() to it. I took Peter\u0027s counter\ncode and made trace_clock_counter() instead, and added it to the choice\nof clocks. Just echo counter \u003e /debug/tracing/trace_clock to activate\nit.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nRequested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-By: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5389f6fad27019f2ba78f1b332f719ec05f12a42",
      "tree": "01b9511a75c147808f48a7f4408bf2e35b12623d",
      "parents": [
        "740969f91e950b64a18fdd0a25164cdee042abf0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 25 17:13:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:11:52 2011 +0200"
      },
      "message": "locking, tracing: Annotate tracing locks as raw\n\nThe tracing locks can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c64e148a3be3cb786534ad38298c25c833116c26",
      "tree": "e75fb98c0699858a32f8c713ccb3c701e01523f8",
      "parents": [
        "f81ab074c30234b07c8309c542cafd07bed721f7"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue Aug 16 14:46:16 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 30 12:27:45 2011 -0400"
      },
      "message": "trace: Add ring buffer stats to measure rate of events\n\nThe stats file under per_cpu folder provides the number of entries,\noverruns and other statistics about the CPU ring buffer. However, the\nnumbers do not provide any indication of how full the ring buffer is in\nbytes compared to the overall size in bytes. Also, it is helpful to know\nthe rate at which the cpu buffer is filling up.\n\nThis patch adds an entry \"bytes: \" in printed stats for per_cpu ring\nbuffer which provides the actual bytes consumed in the ring buffer. This\nfield includes the number of bytes used by recorded events and the\npadding bytes added when moving the tail pointer to next page.\n\nIt also adds the following time stamps:\n\"oldest event ts:\" - the oldest timestamp in the ring buffer\n\"now ts:\"  - the timestamp at the time of reading\n\nThe field \"now ts\" provides a consistent time snapshot to the userspace\nwhen being read. This is read from the same trace clock used by tracing\nevent timestamps.\n\nTogether, these values provide the rate at which the buffer is filling\nup, from the formula:\nbytes / (now_ts - oldest_event_ts)\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1313531179-9323-3-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f81ab074c30234b07c8309c542cafd07bed721f7",
      "tree": "58ec049e4f63d0f8a0b696195cf77da2b6d04b01",
      "parents": [
        "86b6ef21b80ac6565d172cdab4384404de007eea"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue Aug 16 14:46:15 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 30 12:27:44 2011 -0400"
      },
      "message": "trace: Add a new readonly entry to report total buffer size\n\nThe current file \"buffer_size_kb\" reports the size of per-cpu buffer and\nnot the overall memory allocated which could be misleading. A new file\n\"buffer_total_size_kb\" adds up all the enabled CPU buffer sizes and\nreports it. This is only a readonly entry.\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1313531179-9323-2-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "86b6ef21b80ac6565d172cdab4384404de007eea",
      "tree": "5156d0d78b4cb0fbbd58ce2281c19f9bba6864f6",
      "parents": [
        "1d0e78e380cd2802aa603a50e08220dfc681141c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Aug 22 09:41:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 30 12:27:07 2011 -0400"
      },
      "message": "tracing: Add preempt disable for filter self test\n\nThe self testing for event filters does not really need preemption\ndisabled as there are no races at the time of testing, but the functions\nit calls uses rcu_dereference_sched() which will complain if preemption\nis not disabled.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1d0e78e380cd2802aa603a50e08220dfc681141c",
      "tree": "909fd3f4d39ca719f29eb6f5690ba171528c4399",
      "parents": [
        "f30120fce1efaa426f340a354d5ace36dab59f0e"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:54 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:59 2011 -0400"
      },
      "message": "tracing/filter: Add startup tests for events filter\n\nAdding automated tests running as late_initcall. Tests are\ncompiled in with CONFIG_FTRACE_STARTUP_TEST option.\n\nAdding test event \"ftrace_test_filter\" used to simulate\nfilter processing during event occurance.\n\nString filters are compiled and tested against several\ntest events with different values.\n\nAlso testing that evaluation of explicit predicates is ommited\ndue to the lazy filter evaluation.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-11-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f30120fce1efaa426f340a354d5ace36dab59f0e",
      "tree": "03a819877897ec8f40f0f889a8cd3659ba056926",
      "parents": [
        "96bc293a97e7f1651977976be7dd42031f6d8ea3"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:53 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:58 2011 -0400"
      },
      "message": "tracing/filter: Change filter_match_preds function to use walk_pred_tree\n\nChanging filter_match_preds function to use unified predicates tree\nprocessing.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-10-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "96bc293a97e7f1651977976be7dd42031f6d8ea3",
      "tree": "e243a1c53c24835574085426ee3b9021a1c15360",
      "parents": [
        "1b797fe5aaac11e60fce1592119d0517e95aba95"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:52 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:57 2011 -0400"
      },
      "message": "tracing/filter: Change fold_pred function to use walk_pred_tree\n\nChanging fold_pred_tree function to use unified predicates tree\nprocessing.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-9-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1b797fe5aaac11e60fce1592119d0517e95aba95",
      "tree": "276dd2cfff0e2ec8a62c2f63662f55e52822aa1f",
      "parents": [
        "c00b060f36e1238816ebcf2c8cccd5e9fa068980"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:51 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:56 2011 -0400"
      },
      "message": "tracing/filter: Change fold_pred_tree function to use walk_pred_tree\n\nChanging fold_pred_tree function to use unified predicates tree\nprocessing.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-8-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c00b060f36e1238816ebcf2c8cccd5e9fa068980",
      "tree": "cd9762a0c956d80edd556001178bd5426106d81e",
      "parents": [
        "f03f5979945c573801c25ba3089ef17c4d7edc61"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:50 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:55 2011 -0400"
      },
      "message": "tracing/filter: Change count_leafs function to use walk_pred_tree\n\nChanging count_leafs function to use unified predicates tree\nprocessing.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-7-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f03f5979945c573801c25ba3089ef17c4d7edc61",
      "tree": "d26c45bd4c7fd26e2a635bf08612a1e09d8038c5",
      "parents": [
        "3f78f935e7fec3067b7990f9e4d324e1de70f79c"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:49 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:54 2011 -0400"
      },
      "message": "tracing/filter: Unify predicate tree walking, change check_pred_tree function to use it\n\nAdding walk_pred_tree function to be used for walking throught\nthe filter predicates.\n\nFor each predicate the callback function is called, allowing\nusers to add their own functionality or customize their way\nthrough the filter predicates.\n\nChanging check_pred_tree function to use walk_pred_tree.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-6-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3f78f935e7fec3067b7990f9e4d324e1de70f79c",
      "tree": "a8152f5be2e5fb72b51baf872bd36ffa1d9d4dcf",
      "parents": [
        "61aaef55300088e12d7f853adeea65d1aa1562db"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:48 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:53 2011 -0400"
      },
      "message": "tracing/filter: Simplify tracepoint event lookup\n\nWe dont need to perform lookup through the ftrace_events list,\ninstead we can use the \u0027tp_event\u0027 field.\n\nEach perf_event contains tracepoint event field \u0027tp_event\u0027, which\ngot initialized during the tracepoint event initialization.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-5-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "61aaef55300088e12d7f853adeea65d1aa1562db",
      "tree": "2f902bf96330b9727ec3d82b9ff92b83cb79636c",
      "parents": [
        "9d96cd1743547f07a8a6c51a3f7741cfca0a0bee"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:47 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:52 2011 -0400"
      },
      "message": "tracing/filter: Remove field_name from filter_pred struct\n\nThe field_name was used just for finding event\u0027s fields. This way we\ndon\u0027t need to care about field_name allocation/free.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-4-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9d96cd1743547f07a8a6c51a3f7741cfca0a0bee",
      "tree": "b013bf238a63661eccb7134b0e9631ff09464a47",
      "parents": [
        "81570d9caaad46a056580c9af078c5c55e6c764f"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:46 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:51 2011 -0400"
      },
      "message": "tracing/filter: Separate predicate init and filter addition\n\nMaking the code cleaner by having one function to fully prepare\nthe predicate (create_pred), and another to add the predicate to\nthe filter (filter_add_pred).\n\nAs a benefit, this way the dry_run flag stays only inside the\nreplace_preds function and is not passed deeper.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-3-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "81570d9caaad46a056580c9af078c5c55e6c764f",
      "tree": "7a0684a47659215b5714c4de64e5147c5be1c2a4",
      "parents": [
        "2f3aa7a06f6f48d6f78a90595b17e6beafa7abf6"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Aug 11 16:25:45 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 19 14:35:51 2011 -0400"
      },
      "message": "tracing/filter: Use static allocation for filter predicates\n\nDon\u0027t dynamically allocate filter_pred struct, use static memory.\nThis way we can get rid of the code managing the dynamic filter_pred\nstruct object.\n\nThe create_pred function integrates create_logical_pred function.\nThis way the static predicate memory is returned only from\none place.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1313072754-4620-2-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5ccc38740a283aba81a00e92941310d0c1aeb2ee",
      "tree": "ba7d725947975a9391e085bd1d5958b004bfdc3e",
      "parents": [
        "0c3bef612881ee6216a36952ffaabfc35b83545c",
        "b53d1ed734a2b9af8da115b836b658daa7d47a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block: (23 commits)\n  Revert \"cfq: Remove special treatment for metadata rqs.\"\n  block: fix flush machinery for stacking drivers with differring flush flags\n  block: improve rq_affinity placement\n  blktrace: add FLUSH/FUA support\n  Move some REQ flags to the common bio/request area\n  allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH\n  xen/blkback: Make description more obvious.\n  cfq-iosched: Add documentation about idling\n  block: Make rq_affinity \u003d 1 work as expected\n  block: swim3: fix unterminated of_device_id table\n  block/genhd.c: remove useless cast in diskstats_show()\n  drivers/cdrom/cdrom.c: relax check on dvd manufacturer value\n  drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse\n  bsg-lib: add module.h include\n  cfq-iosched: Reduce linked group count upon group destruction\n  blk-throttle: correctly determine sync bio\n  loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other\n  loop: add BLK_DEV_LOOP_MIN_COUNT\u003d%i to allow distros 0 pre-allocated loop devices\n  loop: add management interface for on-demand device allocation\n  loop: replace linked list of allocated devices with an idr index\n  ...\n"
    },
    {
      "commit": "c09c47caedc9854d59378d6e34c989e51cfdd2b4",
      "tree": "ad7de20c08092cdf1cbbb83625a76acab3b0e2ce",
      "parents": [
        "8e4bf84474960e832b56293c9b0674c88b5b05ce"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Aug 11 10:36:05 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Aug 11 10:36:05 2011 +0200"
      },
      "message": "blktrace: add FLUSH/FUA support\n\nAdd FLUSH/FUA support to blktrace. As FLUSH precedes WRITE and/or\nFUA follows WRITE, use the same \u0027F\u0027 flag for both cases and\ndistinguish them by their (relative) position. The end results\nlook like (other flags might be shown also):\n\n - WRITE:            W\n - WRITE_FLUSH:      FW\n - WRITE_FUA:        WF\n - WRITE_FLUSH_FUA:  FWF\n\nNote that we reuse TC_BARRIER due to lack of bit space of act_mask\nso that the older versions of blktrace tools will report flush\nrequests as barriers from now on.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3a301d7c1c68fd96bbcf82db82d9508918e0dc22",
      "tree": "c1fc544070e5b85bbdabe7a0bdd4b5859378e7a3",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Aug 08 21:39:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 10 20:36:32 2011 -0400"
      },
      "message": "tracing: Clean up tb_fmt to not give faulty compile warning\n\ngcc incorrectly states that the variable \"fmt\" is uninitialized when\nCC_OPITMIZE_FOR_SIZE is set.\n\nInstead of just blindly setting fmt to NULL, the code is cleaned up\na little to be a bit easier for humans to follow, as well as gcc\nto know the variables are initialized.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3272cab4063467410802367a8d69f06c65b2a866",
      "tree": "1c665f8572b0aab2a5343d32b5eaa6713669b04f",
      "parents": [
        "f629299b544b6cc12b4e3e85fec96f4ce5809482",
        "140d0b2108faebc77c6523296e211e509cb9f5f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 05 10:32:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 05 10:33:55 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: Include most of the merge window trees, to do fixes on top.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f629299b544b6cc12b4e3e85fec96f4ce5809482",
      "tree": "b803333c4780dab5ca2badefc00043ff32da8f2f",
      "parents": [
        "08a4a43fc407d780bdde36d98f89c0dbb2a6be6b"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Jul 24 23:15:42 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 25 09:37:21 2011 +0200"
      },
      "message": "trace events: Update version number reference to new 3.x scheme for EVENT_POWER_TRACING_DEPRECATED\n\nWhat was scheduled to be 2.6.41 is now going to be 3.1 .\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1107250929370.8080@swampdragon.chaosbits.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "40bcea7bbe8fe452a2d272e2ffd3dea281eec9ff",
      "tree": "aedb6d02e53e3cf84cc32fd81db84032cee205e1",
      "parents": [
        "492f73a303b488ffd67097b2351d54aa6e6c7c73",
        "14a8fd7ceea6915c613746203d6e9a2bf273f16c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:32:40 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:32:40 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "492f73a303b488ffd67097b2351d54aa6e6c7c73",
      "tree": "6e6c16fbd628bb5eb577cfc70a488ca286563e58",
      "parents": [
        "e08fbb78f03fe2c4f88824faf6f51ce6af185e11",
        "f7bc8b61f65726ff98f52e286b28e294499d7a08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:29:14 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:29:21 2011 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: pick up the latest fixes - they won\u0027t make v3.0.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f6878a3d707b947603e09d95df0c3a98987e3a4",
      "tree": "aa707653884ae1a7eac99c1b3c772c2eb89eb642",
      "parents": [
        "614243181050436785f5a621749a7da2336a7916"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:27:03 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:45:32 2011 -0400"
      },
      "message": "tracing/kprobe: Update symbol reference when loading module\n\nSince the address of a module-local variable can only be\nsolved after the target module is loaded, the symbol\nfetch-argument should be updated when loading target\nmodule.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072703.6528.75042.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "614243181050436785f5a621749a7da2336a7916",
      "tree": "d64445cc0bc14420b993e82bd4bb4723ea8e34fa",
      "parents": [
        "bc81d48d13d8839fae6833c95794c403b2133f36"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:56 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:17:14 2011 -0400"
      },
      "message": "tracing/kprobes: Support module init function probing\n\nTo support probing module init functions, kprobe-tracer allows\nuser to define a probe on non-existed function when it is given\nwith a module name. This also enables user to set a probe on\na function on a specific module, even if a same name (but different)\nfunction is locally defined in another module.\n\nThe module name must be in the front of function name and separated\nby a \u0027:\u0027. e.g. btrfs:btrfs_init_sysfs\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072656.6528.89970.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1538f888f1e793de04e0f90372352ac1b05833cf",
      "tree": "42c064993df39faf3f285e276f588fc2518016f2",
      "parents": [
        "7143f168e2aa4bc7f8a8bcfe46d8dc52f7be869a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:44 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:10:58 2011 -0400"
      },
      "message": "tracing/kprobes: Merge trace probe enable/disable functions\n\nMerge redundant enable/disable functions into enable_trace_probe()\nand disable_trace_probe().\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072644.6528.26910.stgit@fedora15\n\n[ converted kprobe selftest to use  enable_trace_probe ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f7bc8b61f65726ff98f52e286b28e294499d7a08",
      "tree": "88ef0c943d27aa9f69824d87faa990731cc2ebfe",
      "parents": [
        "04da85b86188f224cc9b391b5bdd92a3ba20ffcf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "message": "ftrace: Fix regression where ftrace breaks when modules are loaded\n\nEnabling function tracer to trace all functions, then load a module and\nthen disable function tracing will cause ftrace to fail.\n\nThis can also happen by enabling function tracing on the command line:\n\n  ftrace\u003dfunction\n\nand during boot up, modules are loaded, then you disable function tracing\nwith \u0027echo nop \u003e current_tracer\u0027 you will trigger a bug in ftrace that\nwill shut itself down.\n\nThe reason is, the new ftrace code keeps ref counts of all ftrace_ops that\nare registered for tracing. When one or more ftrace_ops are registered,\nall the records that represent the functions that the ftrace_ops will\ntrace have a ref count incremented. If this ref count is not zero,\nwhen the code modification runs, that function will be enabled for tracing.\nIf the ref count is zero, that function will be disabled from tracing.\n\nTo make sure the accounting was working, FTRACE_WARN_ON()s were added\nto updating of the ref counts.\n\nIf the ref count hits its max (\u003e 2^30 ftrace_ops added), or if\nthe ref count goes below zero, a FTRACE_WARN_ON() is triggered which\ndisables all modification of code.\n\nSince it is common for ftrace_ops to trace all functions in the kernel,\ninstead of creating \u003e 20,000 hash items for the ftrace_ops, the hash\ncount is just set to zero, and it represents that the ftrace_ops is\nto trace all functions. This is where the issues arrise.\n\nIf you enable function tracing to trace all functions, and then add\na module, the modules function records do not get the ref count updated.\nWhen the function tracer is disabled, all function records ref counts\nare subtracted. Since the modules never had their ref counts incremented,\nthey go below zero and the FTRACE_WARN_ON() is triggered.\n\nThe solution to this is rather simple. When modules are loaded, and\ntheir functions are added to the the ftrace pool, look to see if any\nftrace_ops are registered that trace all functions. And for those,\nupdate the ref count for the module function records.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7143f168e2aa4bc7f8a8bcfe46d8dc52f7be869a",
      "tree": "cd13a0d2524b9ef4c6f807d01912147539c924b8",
      "parents": [
        "f91298709790b9a483752ca3c967845537df2af3"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:36 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 17:44:43 2011 -0400"
      },
      "message": "tracing/kprobes: Rename probe_* to trace_probe_*\n\nRename probe_* to trace_probe_* for avoiding namespace\nconfliction. This also fixes improper names of find_probe_event()\nand cleanup_all_probes() to find_trace_probe() and\nrelease_all_trace_probes() respectively.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110627072636.6528.60374.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4a9bd3f134decd6d16ead8d288342d57aad486be",
      "tree": "ca9eca5fcbe93dc8a433d839221505ad8fba5296",
      "parents": [
        "259032bfe379281bf7cba512b7705bdb4ce41db5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "message": "tracing: Have dynamic size event stack traces\n\nCurrently the stack trace per event in ftace is only 8 frames.\nThis can be quite limiting and sometimes useless. Especially when\nthe \"ignore frames\" is wrong and we also use up stack frames for\nthe event processing itself.\n\nChange this to be dynamic by adding a percpu buffer that we can\nwrite a large stack frame into and then copy into the ring buffer.\n\nFor interrupts and NMIs that come in while another event is being\nprocess, will only get to use the 8 frame stack. That should be enough\nas the task that it interrupted will have the full stack frame anyway.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6331c28c962561aee59e5a493b7556a4bb585957",
      "tree": "33292a3127aa831ee8ec2394e790bc2a8817beee",
      "parents": [
        "072126f4529196f71a97960248bca54fd4554c2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:11:02 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:25:09 2011 -0400"
      },
      "message": "ftrace: Fix dynamic selftest failure on some archs\n\nArchs that do not implement CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST, will\nfail the dynamic ftrace selftest.\n\nThe function tracer has a quick \u0027off\u0027 variable that will prevent\nthe call back functions from being called. This variable is called\nfunction_trace_stop. In x86, this is implemented directly in the mcount\nassembly, but for other archs, an intermediate function is used called\nftrace_test_stop_func().\n\nIn dynamic ftrace, the function pointer variable ftrace_trace_function is\nused to update the caller code in the mcount caller. But for archs that\ndo not have CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST set, it only calls\nftrace_test_stop_func() instead, which in turn calls __ftrace_trace_function.\n\nWhen more than one ftrace_ops is registered, the function it calls is\nftrace_ops_list_func(), which will iterate over all registered ftrace_ops\nand call the callbacks that have their hash matching.\n\nThe issue happens when two ftrace_ops are registered for different functions\nand one is then unregistered. The __ftrace_trace_function is then pointed\nto the remaining ftrace_ops callback function directly. This mean it will\nbe called for all functions that were registered to trace by both ftrace_ops\nthat were registered.\n\nThis is not an issue for archs with CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST,\nbecause the update of ftrace_trace_function doesn\u0027t happen until after all\nfunctions have been updated, and then the mcount caller is updated. But\nfor those archs that do use the ftrace_test_stop_func(), the update is\nimmediate.\n\nThe dynamic selftest fails because it hits this situation, and the\nftrace_ops that it registers fails to only trace what it was suppose to\nand instead traces all other functions.\n\nThe solution is to delay the setting of __ftrace_trace_function until\nafter all the functions have been updated according to the registered\nftrace_ops. Also, function_trace_stop is set during the update to prevent\nfunction tracing from calling code that is caused by the function tracer\nitself.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "072126f4529196f71a97960248bca54fd4554c2d",
      "tree": "cb1275288f49b59e4643abb85855ad6889aba94f",
      "parents": [
        "41fb61c2d08107ce96a5dcb3a6289b2afd3e135c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:08:31 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:10:05 2011 -0400"
      },
      "message": "ftrace: Update filter when tracing enabled in set_ftrace_filter()\n\nCurrently, if set_ftrace_filter() is called when the ftrace_ops is\nactive, the function filters will not be updated. They will only be updated\nwhen tracing is disabled and re-enabled.\n\nUpdate the functions immediately during set_ftrace_filter().\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "41fb61c2d08107ce96a5dcb3a6289b2afd3e135c",
      "tree": "ca3ae1796ca1d3f01f2bb62eba1fbc93db1affae",
      "parents": [
        "4376cac66778b25e599be3f5d54f33f58ba8ead7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:03:44 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:00:50 2011 -0400"
      },
      "message": "ftrace: Balance records when updating the hash\n\nWhenever the hash of the ftrace_ops is updated, the record counts\nmust be balance. This requires disabling the records that are set\nin the original hash, and then enabling the records that are set\nin the updated hash.\n\nMoving the update into ftrace_hash_move() removes the bug where the\nhash was updated but the records were not, which results in ftrace\ntriggering a warning and disabling itself because the ftrace_ops filter\nis updated while the ftrace_ops was registered, and then the failure\nhappens when the ftrace_ops is unregistered.\n\nThe current code will not trigger this bug, but new code will.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4376cac66778b25e599be3f5d54f33f58ba8ead7",
      "tree": "9cf05820586f140bafcde67cd2cd80a4391ef7eb",
      "parents": [
        "e4a3f541f0b67fdad98b326c851dfe7f4b6b6dad"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jun 24 23:28:13 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 22:39:38 2011 -0400"
      },
      "message": "ftrace: Do not disable interrupts for modules in mcount update\n\nWhen I mounted an NFS directory, it caused several modules to be loaded. At the\ntime I was running the preemptirqsoff tracer, and it showed the following\noutput:\n\n# tracer: preemptirqsoff\n#\n# preemptirqsoff latency trace v1.1.5 on 2.6.33.9-rt30-mrg-test\n# --------------------------------------------------------------------\n# latency: 1177 us, #4/4, CPU#3 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)\n#    -----------------\n#    | task: modprobe-19370 (uid:0 nice:0 policy:0 rt_prio:0)\n#    -----------------\n#  \u003d\u003e started at: ftrace_module_notify\n#  \u003d\u003e ended at:   ftrace_module_notify\n#\n#\n#                  _------\u003d\u003e CPU#\n#                 / _-----\u003d\u003e irqs-off\n#                | / _----\u003d\u003e need-resched\n#                || / _---\u003d\u003e hardirq/softirq\n#                ||| / _--\u003d\u003e preempt-depth\n#                |||| /_--\u003d\u003e lock-depth\n#                |||||/     delay\n#  cmd     pid   |||||| time  |   caller\n#     \\   /      ||||||   \\   |   /\nmodprobe-19370   3d....    0us!: ftrace_process_locs \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1176us : ftrace_process_locs \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1178us : trace_hardirqs_on \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1178us : \u003cstack trace\u003e\n \u003d\u003e ftrace_process_locs\n \u003d\u003e ftrace_module_notify\n \u003d\u003e notifier_call_chain\n \u003d\u003e __blocking_notifier_call_chain\n \u003d\u003e blocking_notifier_call_chain\n \u003d\u003e sys_init_module\n \u003d\u003e system_call_fastpath\n\nThat\u0027s over 1ms that interrupts are disabled on a Real-Time kernel!\n\nLooking at the cause (being the ftrace author helped), I found that the\ninterrupts are disabled before the code modification of mcounts into nops. The\ninterrupts only need to be disabled on start up around this code, not when\nmodules are being loaded.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e4a3f541f0b67fdad98b326c851dfe7f4b6b6dad",
      "tree": "e93b858ab3313374d23c4ebadc5077816f1894f2",
      "parents": [
        "e08fbb78f03fe2c4f88824faf6f51ce6af185e11"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 14 19:02:29 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 22:26:27 2011 -0400"
      },
      "message": "tracing: Still trace filtered irq functions when irq trace is disabled\n\nIf a function is set to be traced by the set_graph_function, but the\noption funcgraph-irqs is zero, and the traced function happens to be\ncalled from a interrupt, it will not be traced.\n\nThe point of funcgraph-irqs is to not trace interrupts when we are\npreempted by an irq, not to not trace functions we want to trace that\nhappen to be *in* a irq.\n\nLuckily the current-\u003etrace_recursion element is perfect to add a flag\nto help us be able to trace functions within an interrupt even when\nwe are not tracing interrupts that preempt the trace.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "43dd61c9a09bd413e837df829e6bfb42159be52a",
      "tree": "613b8ceaf798c87a4fac4ff66dc2ac0e13c3e46b",
      "parents": [
        "40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 07 11:09:22 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:30:08 2011 -0400"
      },
      "message": "ftrace: Fix regression of :mod:module function enabling\n\nThe new code that allows different utilities to pick and choose\nwhat functions they trace broke the :mod: hook that allows users\nto trace only functions of a particular module.\n\nThe reason is that the :mod: hook bypasses the hash that is setup\nto allow individual users to trace their own functions and uses\nthe global hash directly. But if the global hash has not been\nset up, it will cause a bug:\n\necho \u0027*:mod:radeon\u0027 \u003e /sys/kernel/debug/set_ftrace_filter\n\nproduces:\n\n [drm:drm_mode_getfb] *ERROR* invalid framebuffer id\n [drm:radeon_crtc_page_flip] *ERROR* failed to reserve new rbo buffer before flip\n BUG: unable to handle kernel paging request at ffffffff8160ec90\n IP: [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n PGD 1a05067 PUD 1a09063 PMD 80000000016001e1\n Oops: 0003 [#1] SMP Jul  7 04:02:28 phyllis kernel: [55303.858604] CPU 1\n Modules linked in: cryptd aes_x86_64 aes_generic binfmt_misc rfcomm bnep ip6table_filter hid radeon r8169 ahci libahci mii ttm drm_kms_helper drm video i2c_algo_bit intel_agp intel_gtt\n\n Pid: 10344, comm: bash Tainted: G        WC  3.0.0-rc5 #1 Dell Inc. Inspiron N5010/0YXXJJ\n RIP: 0010:[\u003cffffffff810d9136\u003e]  [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n RSP: 0018:ffff88003a96bda8  EFLAGS: 00010246\n RAX: ffff8801301735c0 RBX: ffffffff8160ec80 RCX: 0000000000306ee0\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880137c92940\n RBP: ffff88003a96bdb8 R08: ffff880137c95680 R09: 0000000000000000\n R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff81c9df78\n R13: ffff8801153d1000 R14: 0000000000000000 R15: 0000000000000000\n FS: 00007f329c18a700(0000) GS:ffff880137c80000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: ffffffff8160ec90 CR3: 000000003002b000 CR4: 00000000000006e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process bash (pid: 10344, threadinfo ffff88003a96a000, task ffff88012fcfc470)\n Stack:\n  0000000000000fd0 00000000000000fc ffff88003a96be38 ffffffff810d92f5\n  ffff88011c4c4e00 ffff880000000000 000000000b69f4d0 ffffffff8160ec80\n  ffff8800300e6f06 0000000081130295 0000000000000282 ffff8800300e6f00\n Call Trace:\n  [\u003cffffffff810d92f5\u003e] match_records+0x155/0x1b0\n  [\u003cffffffff810d940c\u003e] ftrace_mod_callback+0xbc/0x100\n  [\u003cffffffff810dafdf\u003e] ftrace_regex_write+0x16f/0x210\n  [\u003cffffffff810db09f\u003e] ftrace_filter_write+0xf/0x20\n  [\u003cffffffff81166e48\u003e] vfs_write+0xc8/0x190\n  [\u003cffffffff81167001\u003e] sys_write+0x51/0x90\n  [\u003cffffffff815c7e02\u003e] system_call_fastpath+0x16/0x1b\n Code: 48 8b 33 31 d2 48 85 f6 75 33 49 89 d4 4c 03 63 08 49 8b 14 24 48 85 d2 48 89 10 74 04 48 89 42 08 49 89 04 24 4c 89 60 08 31 d2\n RIP [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n  RSP \u003cffff88003a96bda8\u003e\n CR2: ffffffff8160ec90\n ---[ end trace a5d031828efdd88e ]---\n\nReported-by: Brian Marete \u003cmarete@toshnix.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe",
      "tree": "88b61ccc46994332d6f59cc1e6b2848fffc9a990",
      "parents": [
        "e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 14:32:51 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:22:29 2011 -0400"
      },
      "message": "tracing: Have \"enable\" file use refcounts like the \"filter\" file\n\nThe \"enable\" file for the event system can be removed when a module\nis unloaded and the event system only has events from that module.\nAs the event system nr_events count goes to zero, it may be freed\nif its ref_count is also set to zero.\n\nLike the \"filter\" file, the \"enable\" file may be opened by a task and\nreferenced later, after a module has been unloaded and the events for\nthat event system have been removed.\n\nAlthough the \"filter\" file referenced the event system structure,\nthe \"enable\" file only references a pointer to the event system\nname. Since the name is freed when the event system is removed,\nit is possible that an access to the \"enable\" file may reference\na freed pointer.\n\nUpdate the \"enable\" file to use the subsystem_open() routine that\nthe \"filter\" file uses, to keep a reference to the event system\nstructure while the \"enable\" file is opened.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02",
      "tree": "2a389b9c6a5fe08d4fb3a9ca96e753244963e1d9",
      "parents": [
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 11:36:06 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:19:18 2011 -0400"
      },
      "message": "tracing: Fix bug when reading system filters on module removal\n\nThe event system is freed when its nr_events is set to zero. This happens\nwhen a module created an event system and then later the module is\nremoved. Modules may share systems, so the system is allocated when\nit is created and freed when the modules are unloaded and all the\nevents under the system are removed (nr_events set to zero).\n\nThe problem arises when a task opened the \"filter\" file for the\nsystem. If the module is unloaded and it removed the last event for\nthat system, the system structure is freed. If the task that opened\nthe filter file accesses the \"filter\" file after the system has\nbeen freed, the system will access an invalid pointer.\n\nBy adding a ref_count, and using it to keep track of what\nis using the event system, we can free it after all users\nare finished with the event system.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "931da6137e8e8c622f59251e8b645467aea293f1",
      "tree": "2169cbd29d5d9a4cbc7104b2a744a95ba746c50d",
      "parents": [
        "5d67be97f8903d05ce53597fb5f3bc25a45e8026",
        "1fd8df2c3970c9e7e4e262354154ee39e58bdd7c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "1fd8df2c3970c9e7e4e262354154ee39e58bdd7c",
      "tree": "640fbc584af8870917ea6d1fab4da49d299038ad",
      "parents": [
        "c624d33f61cd05241e85b906311f0b712fdb0f32"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Wed Jun 08 16:09:34 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:53 2011 -0400"
      },
      "message": "tracing/kprobes: Fix kprobe-tracer to support stack trace\n\nFix to support kernel stack trace correctly on kprobe-tracer.\nSince the execution path of kprobe-based dynamic events is different\nfrom other tracepoint-based events, normal ftrace_trace_stack() doesn\u0027t\nwork correctly. To fix that, this introduces ftrace_trace_stack_regs()\nwhich traces stack via pt_regs instead of current stack register.\n\ne.g.\n\n # echo p schedule+4 \u003e /sys/kernel/debug/tracing/kprobe_events\n # echo 1 \u003e /sys/kernel/debug/tracing/options/stacktrace\n # echo 1 \u003e /sys/kernel/debug/tracing/events/kprobes/enable\n # head -n 20 /sys/kernel/debug/tracing/trace\n            bash-2968  [000] 10297.050245: p_schedule_4: (schedule+0x4/0x4ca)\n            bash-2968  [000] 10297.050247: \u003cstack trace\u003e\n \u003d\u003e schedule_timeout\n \u003d\u003e n_tty_read\n \u003d\u003e tty_read\n \u003d\u003e vfs_read\n \u003d\u003e sys_read\n \u003d\u003e system_call_fastpath\n     kworker/0:1-2940  [000] 10297.050265: p_schedule_4: (schedule+0x4/0x4ca)\n     kworker/0:1-2940  [000] 10297.050266: \u003cstack trace\u003e\n \u003d\u003e worker_thread\n \u003d\u003e kthread\n \u003d\u003e kernel_thread_helper\n            sshd-1132  [000] 10297.050365: p_schedule_4: (schedule+0x4/0x4ca)\n            sshd-1132  [000] 10297.050365: \u003cstack trace\u003e\n \u003d\u003e sysret_careful\n\nNote: Even with this fix, the first entry will be skipped\nif the probe is put on the function entry area before\nthe frame pointer is set up (usually, that is 4 bytes\n (push %bp; mov %sp %bp) on x86), because stack unwinder\ndepends on the frame pointer.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110608070934.17777.17116.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d7ec4bfed6c97405c6417970ba06c439e08ab8e3",
      "tree": "35272bc4262f70243382d085787765c5e83d6736",
      "parents": [
        "22fe9b54d859e53bfbbbdc1a0a77a82bc453927c"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue Jun 07 17:01:42 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:51 2011 -0400"
      },
      "message": "ring-buffer: Set __GFP_NORETRY flag for ring buffer allocating process\n\nThe tracing ring buffer is allocated from kernel memory. While\nallocating a large chunk of memory, OOM might happen which destabilizes\nthe system. Thus random processes might get killed during the\nallocation.\n\nThis patch adds __GFP_NORETRY flag to the ring buffer allocation calls\nto make it fail more gracefully if the system will not be able to\ncomplete the allocation request.\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1307491302-9236-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "22fe9b54d859e53bfbbbdc1a0a77a82bc453927c",
      "tree": "4aec2d069decbe0786ad5474908f5bbe49732ad4",
      "parents": [
        "749230b06a753a22f6ed96e5dd60815d6ab12865"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Tue Jun 07 21:58:27 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:50 2011 -0400"
      },
      "message": "tracing: Convert to kstrtoul_from_user\n\nThis patch replaces the code for getting an unsigned long from a\nuserspace buffer by a simple call to kstroul_from_user.\nThis makes it easier to read and less error prone.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1307476707-14762-1-git-send-email-peterhuewe@gmx.de\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "749230b06a753a22f6ed96e5dd60815d6ab12865",
      "tree": "32aa2fb64a4fe4c7a9effee21f379486703ecd28",
      "parents": [
        "199abfab40389963b397c2982222e68ea782b2cf"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:51 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:49 2011 -0400"
      },
      "message": "tracing, function_graph: Add context-info support for function_graph tracer\n\nThe function_graph tracer does not follow global context-info option.\nAdding TRACE_ITER_CONTEXT_INFO trace_flags check to enable it.\n\nWith following commands:\n\t# echo function_graph \u003e ./current_tracer\n\t# echo 0 \u003e options/context-info\n\t# cat trace\n\nThis is what it looked like before:\n# tracer: function_graph\n#\n#     TIME        CPU  DURATION                  FUNCTION CALLS\n#      |          |     |   |                     |   |   |   |\n 1)   0.079 us    |          } /* __vma_link_rb */\n 1)   0.056 us    |          copy_page_range();\n 1)               |          security_vm_enough_memory() {\n...\n\nThis is what it looks like now:\n# tracer: function_graph\n#\n  } /* update_ts_time_stats */\n  timekeeping_max_deferment();\n...\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-6-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "199abfab40389963b397c2982222e68ea782b2cf",
      "tree": "4b3707a3c8266f151ed1cd72be286ccc7dc16b81",
      "parents": [
        "f56e7f8efb4ec200364f690a9902713410e24d47"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:50 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:49 2011 -0400"
      },
      "message": "tracing, function_graph: Remove lock-depth from latency trace\n\nThe lock_depth was removed in commit\ne6e1e25 tracing: Remove lock_depth from event entry\n\nRemoving the lock_depth info from function_graph latency header.\n\nWith following commands:\n\t# echo function_graph \u003e ./current_tracer\n\t# echo 1 \u003e options/latency-format\n\t# cat trace\n\nThis is what it looked like before:\n# tracer: function_graph\n#\n# function_graph latency trace v1.1.5 on 3.0.0-rc1-tip+\n# --------------------------------------------------------------------\n# latency: 0 us, #59756/311298, CPU#0 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n#    -----------------\n#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n#    -----------------\n#\n#      _-----\u003d\u003e irqs-off\n#     / _----\u003d\u003e need-resched\n#    | / _---\u003d\u003e hardirq/softirq\n#    || / _--\u003d\u003e preempt-depth\n#    ||| / _-\u003d\u003e lock-depth\n#    |||| /\n# CPU|||||  DURATION                  FUNCTION CALLS\n# |  |||||   |   |                     |   |   |   |\n 0)  ....  0.068 us    |    } /* __rcu_read_unlock */\n...\n\nThis is what it looks like now:\n# tracer: function_graph\n#\n# function_graph latency trace v1.1.5 on 3.0.0-rc1-tip+\n# --------------------------------------------------------------------\n# latency: 0 us, #59747/1744610, CPU#0 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:2)\n#    -----------------\n#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n#    -----------------\n#\n#      _-----\u003d\u003e irqs-off\n#     / _----\u003d\u003e need-resched\n#    | / _---\u003d\u003e hardirq/softirq\n#    || / _--\u003d\u003e preempt-depth\n#    ||| /\n# CPU||||  DURATION                  FUNCTION CALLS\n# |  ||||   |   |                     |   |   |   |\n 0)  ..s.  1.641 us    |  } /* __rcu_process_callbacks */\n...\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-5-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f56e7f8efb4ec200364f690a9902713410e24d47",
      "tree": "f8708b5a7f82be989b987fbf190a55054dd41c7b",
      "parents": [
        "ffeb80fc30acbf6bd51cb47a1815f621a9d017dc"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:49 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:48 2011 -0400"
      },
      "message": "tracing, function: Fix trace header to follow context-info option\n\nThe header display of function tracer does not follow\nthe context-info option, so field names are displayed even\nif this option is off.\n\nAdded check for TRACE_ITER_CONTEXT_INFO trace_flags.\n\nWith following commands:\n\t# echo function \u003e ./current_tracer\n\t# echo 0 \u003e options/context-info\n\t# cat trace\n\nThis is what it looked like before:\n# tracer: function\n#\n#           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n#              | |       |          |         |\nadd_preempt_count \u003c-schedule\nrcu_note_context_switch \u003c-schedule\n...\n\nThis is what it looks like now:\n# tracer: function\n#\n_raw_spin_unlock_irqrestore \u003c-hrtimer_try_to_cancel\n...\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-4-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ffeb80fc30acbf6bd51cb47a1815f621a9d017dc",
      "tree": "0291039ad5bc7f652d15157616ea2a77b7294638",
      "parents": [
        "321e68b095addc473ca52ced9acfa59be88f76e6"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:48 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:47 2011 -0400"
      },
      "message": "tracing, function_graph: Merge overhead and duration display functions\n\nFunctions print_graph_overhead() and print_graph_duration() displays\ndata for one field - DURATION.\n\nI merged them into single function print_graph_duration(),\nand added a way to display the empty parts of the field.\n\nThis way the print_graph_irq() function can use this column to display\nthe IRQ signs if needed and the DURATION field details stays inside\nthe print_graph_duration() function.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-3-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "321e68b095addc473ca52ced9acfa59be88f76e6",
      "tree": "43fed76c347373b651692b275f4152dcaf72eb21",
      "parents": [
        "84c15027a7f2fbd7f1180d7cbb60e41abbbaedd2"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Jun 03 16:58:47 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:47 2011 -0400"
      },
      "message": "tracing, function_graph: Remove dependency of abstime and duration fields on latency\n\nThe display of absolute time and duration fields is based on the\nlatency field. This was added during the irqsoff/wakeup tracers\ngraph support changes.\n\nIt\u0027s causing confusion in what fields will be displayed for the\nfunction_graph tracer itself. So I\u0027m removing this depency, and\nadding absolute time and duration fields to the preemptirqsoff\npreemptoff irqsoff wakeup tracers.\n\nWith following commands:\n\t# echo function_graph \u003e ./current_tracer\n\t# cat trace\n\nThis is what it looked like before:\n# tracer: function_graph\n#\n#     TIME        CPU  DURATION                  FUNCTION CALLS\n#      |          |     |   |                     |   |   |   |\n 0)   0.068 us    |          } /* page_add_file_rmap */\n 0)               |          _raw_spin_unlock() {\n...\n\nThis is what it looks like now:\n# tracer: function_graph\n#\n# CPU  DURATION                  FUNCTION CALLS\n# |     |   |                     |   |   |   |\n 0)   0.068 us    |                } /* add_preempt_count */\n 0)   0.993 us    |              } /* vfsmount_lock_local_lock */\n...\n\nFor preemptirqsoff preemptoff irqsoff wakeup tracers,\nthis is what it looked like before:\nSNIP\n#                       _-----\u003d\u003e irqs-off\n#                      / _----\u003d\u003e need-resched\n#                     | / _---\u003d\u003e hardirq/softirq\n#                     || / _--\u003d\u003e preempt-depth\n#                     ||| / _-\u003d\u003e lock-depth\n#                     |||| /\n# CPU  TASK/PID       |||||  DURATION                  FUNCTION CALLS\n# |     |    |        |||||   |   |                     |   |   |   |\n 1)    \u003cidle\u003e-0    |  d..1  0.000 us    |  acpi_idle_enter_simple();\n...\n\nThis is what it looks like now:\nSNIP\n#\n#                                       _-----\u003d\u003e irqs-off\n#                                      / _----\u003d\u003e need-resched\n#                                     | / _---\u003d\u003e hardirq/softirq\n#                                     || / _--\u003d\u003e preempt-depth\n#                                     ||| /\n#     TIME        CPU  TASK/PID       ||||  DURATION                  FUNCTION CALLS\n#      |          |     |    |        ||||   |   |                     |   |   |   |\n   19.847735 |   1)    \u003cidle\u003e-0    |  d..1  0.000 us    |  acpi_idle_enter_simple();\n...\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1307113131-10045-2-git-send-email-jolsa@redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bd38c0e6f98326132a691d73b2056b426423c638",
      "tree": "4e7f9a0efcfdb23e564db51da275fd9234ffa84f",
      "parents": [
        "cf30cf67d6c7592c670ec946d89fc15ee0deb0eb"
      ],
      "author": {
        "name": "Paul McQuade",
        "email": "tungstentide@gmail.com",
        "time": "Tue May 31 20:51:55 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:45 2011 -0400"
      },
      "message": "ftrace: Fixed an include coding style issue\n\nRemoved \u003casm/ftrace.h\u003e because \u003clinux/ftrace.h\u003e was already declared.\nBraces of struct\u0027s coding style fixed.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul McQuade \u003ctungstentide@gmail.com\u003e\nLink: http://lkml.kernel.org/r/4DE59711.3090900@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cf30cf67d6c7592c670ec946d89fc15ee0deb0eb",
      "tree": "f86ca612b255ee8570e2fd6198e066ea8cf33fe0",
      "parents": [
        "4f271a2a60c748599b30bb4dafff30d770439b96"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 14 22:44:07 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:45 2011 -0400"
      },
      "message": "tracing: Add disable_on_free option\n\nAdd a trace option to disable tracing on free. When this option is\nset, a write into the free_buffer file will not only shrink the\nring buffer down to zero, but it will also disable tracing.\n\nCc: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4f271a2a60c748599b30bb4dafff30d770439b96",
      "tree": "4b6aa671e0fbe3e81a423a551ce5aa1032725e2b",
      "parents": [
        "7ea5906405a1f3fc1c0033dfd7e02f2cfd1de5e5"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Mon Jun 13 17:51:57 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:48:37 2011 -0400"
      },
      "message": "tracing: Add a proc file to stop tracing and free buffer\n\nThe proc file entry buffer_size_kb is used to set the size of tracing\nbuffer. The memory to expand the buffer size is kernel memory. Consider\na use case where tracing is handled by a user space utility, which acts\nas a gate keeper for tracing requests. In an OOM condition, tracing is\nconsidered a low priority task and if the utility gets killed the ring\nbuffer memory cannot be released back to the kernel.\n\nThis patch adds a proc file called \"free_buffer\" whose purpose is to\nstop tracing and free up the ring buffer when it is closed.\n\nThe user space process can then set the desired size in buffer_size_kb\nfile and open the fd to the \"free_buffer\" file. Under OOM condition, if\nthe process gets killed, the kernel closes the file descriptor. The\nrelease handler stops the tracing and releases the kernel memory\nautomatically.\n\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nLink: http://lkml.kernel.org/r/1308012717-11148-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7ea5906405a1f3fc1c0033dfd7e02f2cfd1de5e5",
      "tree": "f75e962db25ccd3efa81e1fc69ce3e60d228c7a6",
      "parents": [
        "e7e2ee89a9dbf48d70a922d5625cd7320a27cbff"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Tue May 03 17:56:42 2011 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 22:04:39 2011 -0400"
      },
      "message": "tracing: Use NUMA allocation for per-cpu ring buffer pages\n\nThe tracing ring buffer is a group of per-cpu ring buffers where\nallocation and logging is done on a per-cpu basis. The events that are\ngenerated on a particular CPU are logged in the corresponding buffer.\nThis is to provide wait-free writes between CPUs and good NUMA node\nlocality while accessing the ring buffer.\n\nHowever, the allocation routines consider NUMA locality only for buffer\npage metadata and not for the actual buffer page. This causes the pages\nto be allocated on the NUMA node local to the CPU where the allocation\nroutine is running at the time.\n\nThis patch fixes the problem by using a NUMA node specific allocation\nroutine so that the pages are allocated from a NUMA node local to the\nlogging CPU.\n\nI tested with the getuid_microbench from autotest. It is a simple binary\nthat calls getuid() in a loop and measures the average time for the\nsyscall to complete. The following command was used to test:\n$ getuid_microbench 1000000\n\nCompared the numbers found on kernel with and without this patch and\nfound that logging latency decreases by 30-50 ns/call.\ntracing with non-NUMA allocation - 569 ns/call\ntracing with NUMA allocation     - 512 ns/call\n\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nLink: http://lkml.kernel.org/r/1304470602-20366-1-git-send-email-vnagarnaik@google.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "e7e2ee89a9dbf48d70a922d5625cd7320a27cbff"
}
