)]}'
{
  "log": [
    {
      "commit": "868baf07b1a259f5f3803c1dc2777b6c358f83cf",
      "tree": "a97caf3db1095ceb806ba53ba7d88d47a153e1b8",
      "parents": [
        "862b6f62bf0cd768910b087f6d051f420206c4d6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 10 21:26:13 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 11 16:23:33 2011 -0500"
      },
      "message": "ftrace: Fix memory leak with function graph and cpu hotplug\n\nWhen the fuction graph tracer starts, it needs to make a special\nstack for each task to save the real return values of the tasks.\nAll running tasks have this stack created, as well as any new\ntasks.\n\nOn CPU hot plug, the new idle task will allocate a stack as well\nwhen init_idle() is called. The problem is that cpu hotplug does\nnot create a new idle_task. Instead it uses the idle task that\nexisted when the cpu went down.\n\nftrace_graph_init_task() will add a new ret_stack to the task\nthat is given to it. Because a clone will make the task\nhave a stack of its parent it does not check if the task\u0027s\nret_stack is already NULL or not. When the CPU hotplug code\nstarts a CPU up again, it will allocate a new stack even\nthough one already existed for it.\n\nThe solution is to treat the idle_task specially. In fact, the\nfunction_graph code already does, just not at init_idle().\nInstead of using the ftrace_graph_init_task() for the idle task,\nwhich that function expects the task to be a clone, have a\nseparate ftrace_graph_init_idle_task(). Also, we will create a\nper_cpu ret_stack that is used by the idle task. When we call\nftrace_graph_init_idle_task() it will check if the idle task\u0027s\nret_stack is NULL, if it is, then it will assign it the per_cpu\nret_stack.\n\nReported-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "907f27840985fe6a0c62e43cd4702c6e04b4bcc7",
      "tree": "1023e32295a25e0602aef4bab14f41b97975f6bd",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Mon Sep 27 19:04:53 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:22 2010 -0400"
      },
      "message": "tracing/trivial: Remove cast from void*\n\nUnnecessary cast from void* in assignment.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "3aabae7d9dfaed60effe93662f02c19bafc18537",
      "tree": "af94cdd69add07601d9f3f5988dfc1dc255e3886",
      "parents": [
        "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
        "57c072c7113f54f9512624d6c665db6184448782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +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": "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
      "tree": "e1f635e807691cb634fd63478861938592f226fa",
      "parents": [
        "b304d0441a4118fadd4c3f16e4dc600c271030b5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 14 22:19:46 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 22:19:46 2010 -0400"
      },
      "message": "tracing: Remove leftover FTRACE_ENABLE/DISABLE_MCOUNT enums\n\nThe enums for FTRACE_ENABLE_MCOUNT and FTRACE_DISABLE_MCOUNT were\nused as commands to ftrace_run_update_code(). But these commands\nwere used by the old nasty ftrace daemon that has long been slain.\n\nThis is a clean up patch to remove the references to these enums\nand simplify the code a little.\n\nReported-by: Wu Zhangjin \u003cwuzhangjin@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "57c072c7113f54f9512624d6c665db6184448782",
      "tree": "c005a9325d308763bd1763853395c7b13010b5e3",
      "parents": [
        "98c4fd046f07156ca6055677e8f03d4280be16c1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 14 11:21:11 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 15:14:20 2010 -0400"
      },
      "message": "tracing: Fix reading of set_ftrace_filter across lists\n\nIf we do:\n\n # cd /sys/kernel/debug\n # echo \u0027do_IRQ:traceon schedule:traceon sys_write:traceon\u0027 \u003e \\\n    set_ftrace_filter\n # cat set_ftrace_filter\n\nWe get the following output:\n\n #### all functions enabled ####\n sys_write:traceon:unlimited\n schedule:traceon:unlimited\n do_IRQ:traceon:unlimited\n\nThis outputs two lists. One is the fact that all functions are\ncurrently enabled for function tracing, the other has three probed\nfunctions, which happen to have \u0027traceon\u0027 as their commands.\n\nCurrently, when reading the first list (functions enabled) the\nseq_file code will receive a \"NULL\" from the t_next() function\ncausing it to exit early. This makes \"read()\" from userspace stop\nreading the code at this boarder. Although read is allowed to do this,\nsome (broken) applications might consider this an end of file and\nstop early.\n\nThis patch adds the start of the second list to t_next() when it\nfinishes the first list. It is a simple change and gives the\nset_ftrace_filter file nicer reading ability.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "98c4fd046f07156ca6055677e8f03d4280be16c1",
      "tree": "bf461479713dbbaf79b0bf1a50a3ba0f30a2f17c",
      "parents": [
        "4aeb69672d011fac5c8df671f3ca89f7987c104e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Sep 10 11:47:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 14:46:01 2010 -0400"
      },
      "message": "tracing: Keep track of set_ftrace_filter position and allow lseek again\n\nThis patch keeps track of the index within the elements of\nset_ftrace_filter and if the position goes backwards, it nicely\nresets and starts from the beginning again.\n\nThis allows for lseek and pread to work properly now.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4aeb69672d011fac5c8df671f3ca89f7987c104e",
      "tree": "d2a96af23b9d6ac742725bb17aafe3d4b377cb6a",
      "parents": [
        "2bccfffd1538f3523847583213567e2f7ce00926"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 09 10:00:28 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 11:42:30 2010 -0400"
      },
      "message": "tracing: Replace typecasted void pointer in set_ftrace_filter code\n\nThe set_ftrace_filter uses seq_file and reads from two lists. The\npointer returned by t_next() can either be of type struct dyn_ftrace\nor struct ftrace_func_probe. If there is a bug (there was one)\nthe wrong pointer may be used and the reference can cause an oops.\n\nThis patch makes t_next() and friends only return the iterator structure\nwhich now has a pointer of type struct dyn_ftrace and struct\nftrace_func_probe. The t_show() can now test if the pointer is NULL or\nnot and if the pointer exists, it is guaranteed to be of the correct type.\n\nNow if there\u0027s a bug, only wrong data will be shown but not an oops.\n\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2bccfffd1538f3523847583213567e2f7ce00926",
      "tree": "7062e0bfc46f66efa2ec3231a6c718a901a0a80c",
      "parents": [
        "bfa88ea7ee9e6b4fd673e45a8cc0a8e0b7ef4761"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 09 08:43:22 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 11:42:29 2010 -0400"
      },
      "message": "tracing: Do not reset *pos in set_ftrace_filter\n\nAfter the filtered functions are read, the probed functions are read\nfrom the hash in set_ftrace_filter. When the hashed probed functions\nare read, the *pos passed in is reset. Instead of modifying the pos\ngiven to the read function, just record the pos where the filtered\nfunctions ended and subtract from that.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "df09162550fbb53354f0c88e85b5d0e6129ee9cc",
      "tree": "e8ba6014c442cf72d587948733f8c29e0d330925",
      "parents": [
        "5e11637e2c929e34dcc0fbbfb48bdb638937701a"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Thu Sep 09 16:34:59 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 09 22:43:49 2010 -0400"
      },
      "message": "tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread\n\nBe sure to avoid entering t_show() with FTRACE_ITER_HASH set without\nhaving properly started the iterator to iterate the hash.  This case is\ndegenerate and, as discovered by Robert Swiecki, can cause t_hash_show()\nto misuse a pointer.  This causes a NULL ptr deref with possible security\nimplications.  Tracked as CVE-2010-3079.\n\nCc: Robert Swiecki \u003cswiecki@google.com\u003e\nCc: Eugene Teo \u003ceugene@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9c55cb12c1c172e2d51e85fbb5a4796ca86b77e7",
      "tree": "0f86d1e27fbfc31cba108e71643d686315468db9",
      "parents": [
        "4177c42a6301a34c20038ec2771a33dcc30bb338"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Sep 08 11:20:37 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 08 12:08:01 2010 -0400"
      },
      "message": "tracing: Do not allow llseek to set_ftrace_filter\n\nReading the file set_ftrace_filter does three things.\n\n1) shows whether or not filters are set for the function tracer\n2) shows what functions are set for the function tracer\n3) shows what triggers are set on any functions\n\n3 is independent from 1 and 2.\n\nThe way this file currently works is that it is a state machine,\nand as you read it, it may change state. But this assumption breaks\nwhen you use lseek() on the file. The state machine gets out of sync\nand the t_show() may use the wrong pointer and cause a kernel oops.\n\nLuckily, this will only kill the app that does the lseek, but the app\ndies while holding a mutex. This prevents anyone else from using the\nset_ftrace_filter file (or any other function tracing file for that matter).\n\nA real fix for this is to rewrite the code, but that is too much for\na -rc release or stable. This patch simply disables llseek on the\nset_ftrace_filter() file for now, and we can do the proper fix for the\nnext major release.\n\nReported-by: Robert Swiecki \u003cswiecki@google.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Tavis Ormandy \u003ctaviso@google.com\u003e\nCc: Eugene Teo \u003ceugene@redhat.com\u003e\nCc: vendor-sec@lst.de\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3aaba20f26f58843e8f20611e5c0b1c06954310f",
      "tree": "ad15d7aa21af465ddf6091eb490d84312089f245",
      "parents": [
        "fa66f07aa1f0950e1dc78b7ab39728b3f8aa77a1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 23 16:50:12 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 31 16:46:23 2010 -0400"
      },
      "message": "tracing: Fix a race in function profile\n\nWhile we are reading trace_stat/functionX and someone just\ndisabled function_profile at that time, we can trigger this:\n\n\tdivide error: 0000 [#1] PREEMPT SMP\n\t...\n\tEIP is at function_stat_show+0x90/0x230\n\t...\n\nThis fix just takes the ftrace_profile_lock and checks if\nrec-\u003ecounter is 0. If it\u0027s 0, we know the profile buffer\nhas been reset.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4C723644.4040708@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5168ae50a66e3ff7184c2b16d661bd6d70367e50",
      "tree": "2fb21fc3bd346e4f589605d940dfb1bacac30bf5",
      "parents": [
        "d1f74e20b5b064a130cd0743a256c2d3cfe84010"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 03 09:36:50 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 03 19:32:38 2010 -0400"
      },
      "message": "tracing: Remove ftrace_preempt_disable/enable\n\nThe ftrace_preempt_disable/enable functions were to address a\nrecursive race caused by the function tracer. The function tracer\ntraces all functions which makes it easily susceptible to recursion.\nOne area was preempt_enable(). This would call the scheduler and\nthe schedulre would call the function tracer and loop.\n(So was it thought).\n\nThe ftrace_preempt_disable/enable was made to protect against recursion\ninside the scheduler by storing the NEED_RESCHED flag. If it was\nset before the ftrace_preempt_disable() it would not call schedule\non ftrace_preempt_enable(), thinking that if it was set before then\nit would have already scheduled unless it was already in the scheduler.\n\nThis worked fine except in the case of SMP, where another task would set\nthe NEED_RESCHED flag for a task on another CPU, and then kick off an\nIPI to trigger it. This could cause the NEED_RESCHED to be saved at\nftrace_preempt_disable() but the IPI to arrive in the the preempt\ndisabled section. The ftrace_preempt_enable() would not call the scheduler\nbecause the flag was already set before entring the section.\n\nThis bug would cause a missed preemption check and cause lower latencies.\n\nInvestigating further, I found that the recusion caused by the function\ntracer was not due to schedule(), but due to preempt_schedule(). Now\nthat preempt_schedule is completely annotated with notrace, the recusion\nno longer is an issue.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "38516ab59fbc5b3bb278cf5e1fe2867c70cff32e",
      "tree": "904476d7780a27001281b9cb93c7959128f9a1d7",
      "parents": [
        "53da59aa6dd881fd0bbdd058a8a299d90ce9dd1d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 20 17:04:50 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 09:50:34 2010 -0400"
      },
      "message": "tracing: Let tracepoints have data passed to tracepoint callbacks\n\nThis patch adds data to be passed to tracepoint callbacks.\n\nThe created functions from DECLARE_TRACE() now need a mandatory data\nparameter. For example:\n\nDECLARE_TRACE(mytracepoint, int value, value)\n\nWill create the register function:\n\nint register_trace_mytracepoint((void(*)(void *data, int value))probe,\n                                void *data);\n\nAs the first argument, all callbacks (probes) must take a (void *data)\nparameter. So a callback for the above tracepoint will look like:\n\nvoid myprobe(void *data, int value)\n{\n}\n\nThe callback may choose to ignore the data parameter.\n\nThis change allows callbacks to register a private data pointer along\nwith the function probe.\n\n\tvoid mycallback(void *data, int value);\n\n\tregister_trace_mytracepoint(mycallback, mydata);\n\nThen the mycallback() will receive the \"mydata\" as the first parameter\nbefore the args.\n\nA more detailed example:\n\n  DECLARE_TRACE(mytracepoint, TP_PROTO(int status), TP_ARGS(status));\n\n  /* In the C file */\n\n  DEFINE_TRACE(mytracepoint, TP_PROTO(int status), TP_ARGS(status));\n\n  [...]\n\n       trace_mytracepoint(status);\n\n  /* In a file registering this tracepoint */\n\n  int my_callback(void *data, int status)\n  {\n\tstruct my_struct my_data \u003d data;\n\t[...]\n  }\n\n  [...]\n\tmy_data \u003d kmalloc(sizeof(*my_data), GFP_KERNEL);\n\tinit_my_data(my_data);\n\tregister_trace_mytracepoint(my_callback, my_data);\n\nThe same callback can also be registered to the same tracepoint as long\nas the data registered is different. Note, the data must also be used\nto unregister the callback:\n\n\tunregister_trace_mytracepoint(my_callback, my_data);\n\nBecause of the data parameter, tracepoints declared this way can not have\nno args. That is:\n\n  DECLARE_TRACE(mytracepoint, TP_PROTO(void), TP_ARGS());\n\nwill cause an error.\n\nIf no arguments are needed, a new macro can be used instead:\n\n  DECLARE_TRACE_NOARGS(mytracepoint);\n\nSince there are no arguments, the proto and args fields are left out.\n\nThis is part of a series to make the tracepoint footprint smaller:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4914025\t1088868\t 861512\t6864405\t 68be15\tvmlinux.class\n4918492\t1084612\t 861512\t6864616\t 68bee8\tvmlinux.tracepoint\n\nAgain, this patch also increases the size of the kernel, but\nlays the ground work for decreasing it.\n\n v5: Fixed net/core/drop_monitor.c to handle these updates.\n\n v4: Moved the DECLARE_TRACE() DECLARE_TRACE_NOARGS out of the\n     #ifdef CONFIG_TRACE_POINTS, since the two are the same in both\n     cases. The __DECLARE_TRACE() is what changes.\n     Thanks to Frederic Weisbecker for pointing this out.\n\n v3: Made all register_* functions require data to be passed and\n     all callbacks to take a void * parameter as its first argument.\n     This makes the calling functions comply with C standards.\n\n     Also added more comments to the modifications of DECLARE_TRACE().\n\n v2: Made the DECLARE_TRACE() have the ability to pass arguments\n     and added a new DECLARE_TRACE_NOARGS() for tracepoints that\n     do not need any arguments.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "23e117fa44429cc054cb27d5621d64e4ced91e52",
      "tree": "a4b9d0902b9c6f009b2c297515221c1b9bed3af8",
      "parents": [
        "668eb65f092902eb7dd526af73d4a7f025a94612",
        "a93d2f1744206827ccf416e2cdc5018aa503314e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 14 09:29:52 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 09:29:52 2010 -0400"
      },
      "message": "Merge branch \u0027sched/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-4\n"
    },
    {
      "commit": "27a9da6538ee18046d7bff8e36a9f783542c54c3",
      "tree": "9f9944ca8742ec52f7e4a674f7475fc0378abdb8",
      "parents": [
        "48652ced1533c3372f996a0d83b6e73b1f1c9381"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 04 20:36:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:28:17 2010 +0200"
      },
      "message": "sched: Remove rq argument to the tracepoints\n\nstruct rq isn\u0027t visible outside of sched.o so its near useless to\nexpose the pointer, also there are no users of it, so remove it.\n\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1272997616.1642.207.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37e44bc50d91df1fe7edcf6f02fe168c6d802e64",
      "tree": "40058a2b27e94400dc4345ba13b334fb732ae532",
      "parents": [
        "e330b3bcd83199dd63a819d8d12e40f9edae6c77"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 27 21:04:24 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 21:04:24 2010 -0400"
      },
      "message": "tracing: Fix sleep time function profiling\n\nWhen sleep_time is off the function profiler ignores the time that a task\nis scheduled out. When the task is scheduled out a timestamp is taken.\nWhen the task is scheduled back in, the timestamp is compared to the\ncurrent time and the saved calltimes are adjusted accordingly.\n\nBut when stopping the function profiler, the sched switch hook that\ndoes this adjustment was stopped before shutting down the tracer.\nThis allowed some tasks to not get their timestamps set when they\nscheduled out. When the function profiler started again, this would\nskew the times of the scheduler functions.\n\nThis patch moves the stopping of the sched switch to after the function\nprofiler is stopped. It also ignores zero set calltimes, which may\nhappen on start up.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e330b3bcd83199dd63a819d8d12e40f9edae6c77",
      "tree": "45d488ed1f112db14ca180af5f4d2d09515a1f09",
      "parents": [
        "07271aa42d13378e67ebd79ea9ca1c4a5e2ad46f"
      ],
      "author": {
        "name": "Chase Douglas",
        "email": "chase.douglas@canonical.com",
        "time": "Mon Apr 26 14:02:05 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 18:23:15 2010 -0400"
      },
      "message": "tracing: Show sample std dev in function profiling\n\nWhen combined with function graph tracing the ftrace function profiler\nalso prints the average run time of functions. While this gives us some\ngood information, it doesn\u0027t tell us anything about the variance of the\nrun times of the function. This change prints out the s^2 sample\nstandard deviation alongside the average.\n\nThis change adds one entry to the profile record structure. This\nincreases the memory footprint of the function profiler by 1/3 on a\n32-bit system, and by 1/5 on a 64-bit system when function graphing is\nenabled, though the memory is only allocated when the profiler is turned\non. During the profiling, one extra line of code adds the squared\ncalltime to the new record entry, so this should not adversly affect\nperformance.\n\nNote that the square of the sample standard deviation is printed because\nthere is no sqrt implementation for unsigned long long in the kernel.\n\nSigned-off-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nLKML-Reference: \u003c1272304925-2436-1-git-send-email-chase.douglas@canonical.com\u003e\n\n[ fixed comment about ns^2 -\u003e us^2 conversion ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "4e3eaddd142e2142c048c5052a0a9d2604fccfc6",
      "tree": "5bc45a286502e54e790c54948f22364c5afd9d89",
      "parents": [
        "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
        "b97c4bc16734a2e597dac7f91ee9eb78f4aeef9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking: Make sparse work with inline spinlocks and rwlocks\n  x86/mce: Fix RCU lockdep splats\n  rcu: Increase RCU CPU stall timeouts if PROVE_RCU\n  ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n  rcu: Suppress RCU lockdep warnings during early boot\n  rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n  rcu: Suppress __mpol_dup() false positive from RCU lockdep\n  rcu: Make rcu_read_lock_sched_held() handle !PREEMPT\n  rcu: Add control variables to lockdep_rcu_dereference() diagnostics\n  rcu, cgroup: Relax the check in task_subsys_state() as early boot is now handled by lockdep-RCU\n  rcu: Use wrapper function instead of exporting tasklist_lock\n  sched, rcu: Fix rcu_dereference() for RCU-lockdep\n  rcu: Make task_subsys_state() RCU-lockdep checks handle boot-time use\n  rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU\n  x86/gart: Unexport gart_iommu_aperture\n\nFix trivial conflicts in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "ea14eb714041d40fcc5180b5a586034503650149",
      "tree": "a7cb72753c85cf79ac6fa31863d65d2f081e0823",
      "parents": [
        "52fbe9cde7fdb5c6fac196d7ebd2d92d05ef3cd4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:41:23 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:28:02 2010 -0500"
      },
      "message": "function-graph: Init curr_ret_stack with ret_stack\n\nIf the graph tracer is active, and a task is forked but the allocating of\nthe processes graph stack fails, it can cause crash later on.\n\nThis is due to the temporary stack being NULL, but the curr_ret_stack\nvariable is copied from the parent. If it is not -1, then in\nftrace_graph_probe_sched_switch() the following:\n\n\tfor (index \u003d next-\u003ecurr_ret_stack; index \u003e\u003d 0; index--)\n\t\tnext-\u003eret_stack[index].calltime +\u003d timestamp;\n\nWill cause a kernel OOPS.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "915a0b575fdb2376135ed9334b3ccb1eb51db622",
      "tree": "12070fc07897e0cd9170aeb351a96923d44d7813",
      "parents": [
        "e02c4fd3142dfb9412531bbfabd510a2a7c6ea46",
        "0e95017355dcf43031da6d0e360a748717e56df1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "3f379b03fbfddd20536389a85c6456f8233d1f8d",
      "tree": "2847590a23aa0d72e799bd6d65a8a794abb565ac",
      "parents": [
        "54dbf96c921513bf98484a20ef366d51944a4c4d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Mar 05 15:03:25 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:38:01 2010 +0100"
      },
      "message": "ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n\nReplace the calls to read_barrier_depends() in\nftrace_list_func() with rcu_dereference_raw() to improve\nreadability.  The reason that we use rcu_dereference_raw() here\nis that removed entries are never freed, instead they are simply\nleaked.  This is one of a very few cases where use of\nrcu_dereference_raw() is the long-term right answer.  And I\ndon\u0027t yet know of any others.  ;-)\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1267830207-9474-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "801c29fd1fdeb84f60241beb445ff5db154450ae",
      "tree": "ce6d2cf95d86c7863393914b5ba37c90b56b44e9",
      "parents": [
        "ae1f30384baef4056438d81b305a6a5199b0d16c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 05 20:02:19 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:00:30 2010 -0500"
      },
      "message": "function-graph: Fix unused reference to ftrace_set_func()\n\nThe declaration of ftrace_set_func() is at the start of the ftrace.c file\nand wrapped with a #ifdef CONFIG_FUNCTION_GRAPH condition. If function\ngraph tracing is enabled but CONFIG_DYNAMIC_FTRACE is not, a warning\nabout that function being declared static and unused is given.\n\nThis really should have been placed within the CONFIG_FUNCTION_GRAPH\ncondition that uses ftrace_set_func().\n\nMoving the declaration down fixes the warning and makes the code cleaner.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6556a6743549defc32e5f90ee2cb1ecd833a44c3",
      "tree": "622306583d4a3c13235a8bfc012854c125c597f1",
      "parents": [
        "e0d272429a34ff143bfa04ee8e29dd4eed2964c7",
        "1dd2980d990068e20045b90c424518cc7f3657ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (172 commits)\n  perf_event, amd: Fix spinlock initialization\n  perf_event: Fix preempt warning in perf_clock()\n  perf tools: Flush maps on COMM events\n  perf_events, x86: Split PMU definitions into separate files\n  perf annotate: Handle samples not at objdump output addr boundaries\n  perf_events, x86: Remove superflous MSR writes\n  perf_events: Simplify code by removing cpu argument to hw_perf_group_sched_in()\n  perf_events, x86: AMD event scheduling\n  perf_events: Add new start/stop PMU callbacks\n  perf_events: Report the MMAP pgoff value in bytes\n  perf annotate: Defer allocating sym_priv-\u003ehist array\n  perf symbols: Improve debugging information about symtab origins\n  perf top: Use a macro instead of a constant variable\n  perf symbols: Check the right return variable\n  perf/scripts: Tag syscall_name helper as not yet available\n  perf/scripts: Add perf-trace-python Documentation\n  perf/scripts: Remove unnecessary PyTuple resizes\n  perf/scripts: Add syscall tracing scripts\n  perf/scripts: Add Python scripting engine\n  perf/scripts: Remove check-perf-trace from listed scripts\n  ...\n\nFix trivial conflict in tools/perf/util/probe-event.c\n"
    },
    {
      "commit": "64b9fb5704a479d98a59f2a1d45d3331a8f847f8",
      "tree": "2b1052b05fa7615c817894bc9802bc5bb2af7ac1",
      "parents": [
        "83f0d53993b2967e54186468b0fc4321447f68f1",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.33\u0027 into tracing/core\n\nConflicts:\n\tscripts/recordmcount.pl\n\nMerge reason: Merge up to v2.6.33.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7c6b1fe9f942c1a30585ec2210a09dfff238506",
      "tree": "de7780b1b6cff9c8f33c9de1240a0b19bea9aa94",
      "parents": [
        "ede55c9d78101fef0d8e620940a5163f14b02f29"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 10 15:43:04 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 11 14:32:38 2010 -0500"
      },
      "message": "ftrace: Allow to remove a single function from function graph filter\n\nI don\u0027t see why we can only clear all functions from the filter.\n\nAfter patching:\n\n  # echo sys_open \u003e set_graph_function\n  # echo sys_close \u003e\u003e set_graph_function\n  # cat set_graph_function\n  sys_open\n  sys_close\n  # echo \u0027!sys_close\u0027 \u003e\u003e set_graph_function\n  # cat set_graph_function\n  sys_open\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B726388.2000408@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f24bb999d2b9f2950e5cac5b69bffedf73c24ea4",
      "tree": "2c595d1c4c34f06eda309fd3770e3a7fb9ffba8a",
      "parents": [
        "4554dbcb85a4ed2abaa2b6fa15649b796699ec89"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:25 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace: Remove record freezing\n\nRemove record freezing. Because kprobes never puts probe on\nftrace\u0027s mcount call anymore, it doesn\u0027t need ftrace to check\nwhether kprobes on it.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100202214925.4694.73469.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cfa19780d61740f65790c5bae363b759d7c96fa",
      "tree": "cc7a8277a9f04c1bd613efe03c7d6d16cd18dc96",
      "parents": [
        "615d0ebbc782b67296e3226c293f520f93f93515"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:11 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace/alternatives: Introducing *_text_reserved functions\n\nIntroducing *_text_reserved functions for checking the text\naddress range is partially reserved or not. This patch provides\nchecking routines for x86 smp alternatives and dynamic ftrace.\nSince both functions modify fixed pieces of kernel text, they\nshould reserve and protect those from other dynamic text\nmodifier, like kprobes.\n\nThis will also be extended when introducing other subsystems\nwhich modify fixed pieces of kernel text. Dynamic text modifiers\nshould avoid those.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c20100202214911.4694.16587.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "751e9983ee276cb150e8812b1d995f6035a63878",
      "tree": "7f9abfa2ea11bcc2ccfa9922af17811d5020fa69",
      "parents": [
        "b82a4045f7962483a78a874343dc6e31b79c96c1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 14 10:53:02 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 14 22:38:03 2010 -0500"
      },
      "message": "ftrace: Fix MATCH_END_ONLY function filter\n\nFor \u0027*foo\u0027 pattern, we should allow any string ending with\n\u0027foo\u0027, but ftrace filter incorrectly disallows strings\nlike bar_foo_foo:\n\n  # echo \u0027*io\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter | grep \u0027req_bio_endio\u0027\n  # cat available_filter_functions | grep \u0027req_bio_endio\u0027\n  req_bio_endio\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B4E870E.6060607@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "91baf6285be7282cfa487de92f836c50749dffb9",
      "tree": "766544ebcc24fecf177eba5bd8be475cf3516eef",
      "parents": [
        "313254a9400d388b46150c0f355e216418a2f598"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:15:45 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:26 2009 +0100"
      },
      "message": "function-graph: Allow writing the same val to set_graph_function\n\n# echo \u0027do_open\u0027 \u003e set_graph_function\n # echo \u0027do_open\u0027 \u003e\u003e set_graph_function\n bash: echo: write error: Invalid argument\n\nMake it valid to write the same value to set_graph_function,\nwhich is consistent with set_ftrace_filter interface.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-reference: \u003c4B1DC4E1.1060303@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "313254a9400d388b46150c0f355e216418a2f598",
      "tree": "190c360ad60b27763e2f95dc5cf8fa9068d3d71e",
      "parents": [
        "311d16da575f53c3367099579736c1d233efe0dc"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:15:30 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:26 2009 +0100"
      },
      "message": "ftrace: Call trace_parser_clear() properly\n\nI found a weird behavior:\n\n  # echo \u0027fuse:*\u0027 \u003e set_ftrace_filter\n  bash: echo: write error: Invalid argument\n  # cat set_ftrace_filter\n  fuse_dev_fasync\n  fuse_dev_poll\n  fuse_copy_do\n\nWe should call trace_parser_clear() no matter ftrace_process_regex()\nreturns 0 or -errno, otherwise we will actually take the unaccepted\nrecords from ftrace_regex_release().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4B1DC4D2.3000406@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "311d16da575f53c3367099579736c1d233efe0dc",
      "tree": "6fea069fc00f50afac428021989d037f0bb0162f",
      "parents": [
        "3b8e4273814a7f9e9a74ece517d9206fea919aaa"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:15:11 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:25 2009 +0100"
      },
      "message": "ftrace: Return EINVAL when writing invalid val to set_ftrace_filter\n\nCurrently it doesn\u0027t warn user on invald value:\n\n # echo nonexist_symbol \u003e set_ftrace_filter\nor:\n # echo \u0027nonexist_symbol:mod:fuse\u0027 \u003e set_ftrace_filter\n\nBetter make it return failure.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4B1DC4BF.2070003@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1",
      "tree": "3cec6d72a450735fe6b8ed996c7399f57c05a5cb",
      "parents": [
        "7a797cdcca2b3c0031e580203f18d6c9483aaec5",
        "b8007ef7422270864eae523cb38d7522a53a94d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:36 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (40 commits)\n  tracing: Separate raw syscall from syscall tracer\n  ring-buffer-benchmark: Add parameters to set produce/consumer priorities\n  tracing, function tracer: Clean up strstrip() usage\n  ring-buffer benchmark: Run producer/consumer threads at nice +19\n  tracing: Remove the stale include/trace/power.h\n  tracing: Only print objcopy version warning once from recordmcount\n  tracing: Prevent build warning: \u0027ftrace_graph_buf\u0027 defined but not used\n  ring-buffer: Move access to commit_page up into function used\n  tracing: do not disable interrupts for trace_clock_local\n  ring-buffer: Add multiple iterations between benchmark timestamps\n  kprobes: Sanitize struct kretprobe_instance allocations\n  tracing: Fix to use __always_unused attribute\n  compiler: Introduce __always_unused\n  tracing: Exit with error if a weak function is used in recordmcount.pl\n  tracing: Move conditional into update_funcs() in recordmcount.pl\n  tracing: Add regex for weak functions in recordmcount.pl\n  tracing: Move mcount section search to front of loop in recordmcount.pl\n  tracing: Fix objcopy revision check in recordmcount.pl\n  tracing: Check absolute path of input file in recordmcount.pl\n  tracing: Correct the check for number of arguments in recordmcount.pl\n  ...\n"
    },
    {
      "commit": "457dc928f586f3f4b930206965e6db270034e97e",
      "tree": "db1ff1d43058451cc42f6499f495e68d1a37e335",
      "parents": [
        "98e4833ba3c314c99dc364012fba6ac894230ad0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 11:03:28 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 11:04:07 2009 +0100"
      },
      "message": "tracing, function tracer: Clean up strstrip() usage\n\nClean up strstrip() usage - which also addresses this build warning:\n\n  kernel/trace/ftrace.c: In function \u0027ftrace_pid_write\u0027:\n  kernel/trace/ftrace.c:3004: warning: ignoring return value of \u0027strstrip\u0027, declared with attribute warn_unused_result\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6060f46819f313d34a8c8151390cda509c23389",
      "tree": "96ec1c80695498d73172b3c2ef7df585b9d28e4f",
      "parents": [
        "5a50e33cc916f6a81cb96f0f24f6a88c9ab78b79"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 05 11:16:17 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 17 11:05:49 2009 -0500"
      },
      "message": "tracing: Prevent build warning: \u0027ftrace_graph_buf\u0027 defined but not used\n\nPrevent build warning when CONFIG_FUNCTION_GRAPH_TRACER is not set.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AF24381.5060307@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ed146b25942b428f8e8056587b7638ce76573c2f",
      "tree": "36b3355b5d53057accb92000ee5b3986d5a05a8b",
      "parents": [
        "f7112949f6a4cd6883d66c882d568c2197321de6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 03 08:55:38 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 04 01:42:10 2009 -0500"
      },
      "message": "ftrace: Fix unmatched locking in ftrace_regex_write()\n\nWhen a command is passed to the set_ftrace_filter, then\nthe ftrace_regex_lock is still held going back to user space.\n\n # echo \u0027do_open : foo\u0027 \u003e set_ftrace_filter\n (still holding ftrace_regex_lock when returning to user space!)\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AEF7F8A.3080300@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9de09ace8d518141a4375e1d216ab64db4377799",
      "tree": "da8e7a77f4ea91eb3bb73fc6da72ecf8c99e1c16",
      "parents": [
        "1beee96bae0daf7f491356777c3080cc436950f5",
        "6d3f1e12f46a2f9a1bb7e7aa433df8dd31ce5647"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 29 09:02:15 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 29 09:02:20 2009 +0100"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/core\n\nMerge reason: Pick up fixes and move base from -rc1 to -rc5.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf8517cf905b5cd31d5790250b9ac39f7cb8aa53",
      "tree": "22796f676ce955ec204ece1485dac6e93d1aeb3e",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Oct 23 19:36:16 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 24 11:07:49 2009 +0200"
      },
      "message": "tracing: Update *ppos instead of filp-\u003ef_pos\n\nInstead of directly updating filp-\u003ef_pos we should update the *ppos\nargument. The filp-\u003ef_pos gets updated within the file_pos_write()\nfunction called from sys_write().\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20091023233646.399670810@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06f43d66ec36388056f5c697bf1e67c0e0a1645c",
      "tree": "04b8735f670570d146c0c12bb403effc94e14346",
      "parents": [
        "459c6d15a0c52bae43842ff2cd0dd41aa7de9b7f"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 20:43:39 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 20:43:39 2009 +0200"
      },
      "message": "ftrace: Copy ftrace_graph_filter boot param using strlcpy\n\nWe are using strncpy in the wrong way to copy the ftrace_graph_filter\nboot param because we pass the buffer size instead of the max string\nsize it can contain (buffer size - 1). The end result might not be\nNULL terminated as we are abusing the max string size.\n\nLets use strlcpy() instead.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5cb084bb1f3fd4dcdaf7e4cf564994346ec8f783",
      "tree": "0faf55a8a91ff69ae7cd0dff349dc5fbe27a53da",
      "parents": [
        "756d17ee7ee4fbc8238bdf97100af63e6ac441ef"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Oct 13 16:33:53 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 14 08:13:54 2009 +0200"
      },
      "message": "tracing: Enable records during the module load\n\nI was debuging some module using \"function\" and \"function_graph\"\ntracers and noticed, that if you load module after you enabled\ntracing, the module\u0027s hooks will convert only to NOP instructions.\n\nThe attached patch enables modules\u0027 hooks if there\u0027s function trace\nallready on, thus allowing to trace module functions.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20091013203425.896285120@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "756d17ee7ee4fbc8238bdf97100af63e6ac441ef",
      "tree": "d0b794f4964be5689fc1bd64302969405000e18b",
      "parents": [
        "194ec34184869f0de1cf255c924fc5299e1b3d27"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Tue Oct 13 16:33:52 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 14 08:13:53 2009 +0200"
      },
      "message": "tracing: Support multiple pids in set_pid_ftrace file\n\nAdding the possibility to set more than 1 pid in the set_pid_ftrace\nfile, thus allowing to trace more than 1 independent processes.\n\nUsage:\n\n sh-4.0# echo 284 \u003e ./set_ftrace_pid\n sh-4.0# cat ./set_ftrace_pid\n 284\n sh-4.0# echo 1 \u003e\u003e ./set_ftrace_pid\n sh-4.0# echo 0 \u003e\u003e ./set_ftrace_pid\n sh-4.0# cat ./set_ftrace_pid\n swapper tasks\n 1\n 284\n sh-4.0# echo 4 \u003e ./set_ftrace_pid\n sh-4.0# cat ./set_ftrace_pid\n 4\n sh-4.0# echo \u003e ./set_ftrace_pid\n sh-4.0# cat ./set_ftrace_pid\n no pid\n sh-4.0#\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20091013203425.565454612@goodmis.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1bac0497ef9af8d933860672223e38bd6ac4934a",
      "tree": "8e569b0e7ed977a4659002632362855cc245990f",
      "parents": [
        "2c96c142e941041973faab20ca3b82d57f435c5e",
        "bf7c5b43a12614847b83f507fb169ad30640e406"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 13 12:03:08 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 13 12:03:08 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into tracing/core\n"
    },
    {
      "commit": "2c96c142e941041973faab20ca3b82d57f435c5e",
      "tree": "45188f0ecb3f4bb7408a7219f8fcd041d500235a",
      "parents": [
        "3c355863fb32070a2800f41106519c5c3038623a",
        "8ad807318fcd62aba0e18c7c7fbfcc1af3fcdbab"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 13 09:24:51 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 13 09:24:59 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/core\n\nMerge reason: Pick up tracing/filters fix from the urgent queue,\n              we will queue up dependent patches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "369bc18f9a6c4e2686204c1d7476ab684a720968",
      "tree": "84606ab4244907d10b60fb091f2d2e23024ebbae",
      "parents": [
        "3c355863fb32070a2800f41106519c5c3038623a"
      ],
      "author": {
        "name": "Stefan Assmann",
        "email": "sassmann@redhat.com",
        "time": "Mon Oct 12 22:17:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 12 22:17:21 2009 +0200"
      },
      "message": "ftrace: add kernel command line graph function filtering\n\nAdd a command line parameter to allow limiting the function graphs\nthat are traced on boot up from the given top-level callers , when\nftrace\u003dfunction_graph is specified.\n\nThis patch adds the following command line option:\nftrace_graph_filter\u003dfunction-list\n\nWhere function-list is a comma separated list of functions to filter.\n\n[fweisbec@gmail.com: picked the documentation changes from the v2 patch]\n\nSigned-off-by: Stefan Assmann \u003csassmann@redhat.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4AD2DEB9.2@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "f17f36bb1c006818441b84cf65a6decf3e59942b",
      "tree": "865b308feea81c3c399669e9ec191a4cdad3265b",
      "parents": [
        "b924f9599dfd4a604761e84b1e920e480fb57f66",
        "8f6e8a314ab37cadd72da5ace9027f2d04aba854"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 12:06:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 12:06:09 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: user local buffer variable for trace branch tracer\n  tracing: fix warning on kernel/trace/trace_branch.c andtrace_hw_branches.c\n  ftrace: check for failure for all conversions\n  tracing: correct module boundaries for ftrace_release\n  tracing: fix transposed numbers of lock_depth and preempt_count\n  trace: Fix missing assignment in trace_ctxwake_*\n  tracing: Use free_percpu instead of kfree\n  tracing: Check total refcount before releasing bufs in profile_enable failure\n"
    },
    {
      "commit": "3279ba37db5d65c4ab0dcdee3b211ccb85bb563f",
      "tree": "e0051b9110b15187c4aaaa980749ab829f2e8427",
      "parents": [
        "e7247a15ff3bbdab0a8b402dffa1171e5c05a8e0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 07 16:57:56 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 07 17:22:24 2009 -0400"
      },
      "message": "ftrace: check for failure for all conversions\n\nDue to legacy code from back when the dynamic tracer used a daemon,\nonly core kernel code was checking for failures. This is no longer\nthe case. We must check for failures any time we perform text modifications.\n\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e7247a15ff3bbdab0a8b402dffa1171e5c05a8e0",
      "tree": "139c26b2abd8ea5dd55ee6a4d43622bb24a0ee6a",
      "parents": [
        "829b876dfc94ea8be3a47e200d06f1f217bb104f"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Wed Oct 07 19:00:35 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 07 15:52:09 2009 -0400"
      },
      "message": "tracing: correct module boundaries for ftrace_release\n\nWhen the module is about the unload we release its call records.\nThe ftrace_release function was given wrong values representing\nthe module core boundaries, thus not releasing its call records.\n\nPlus making ftrace_release function module specific.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1254934835-363-3-git-send-email-jolsa@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0aa73ba1c4e1ad1d51a29e0df95ccd9f746918b6",
      "tree": "f0714ddcd02812b4fbe3b5405df9e4068f5587e2",
      "parents": [
        "925936ebf35a95c290e010b784c962164e6728f3",
        "33974093c024f08caadd2fc71a83bd811ed1831d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 01 11:20:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 01 11:20:48 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/core\n\nMerge reason: Pick up latest fixes and update to latest upstream.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33974093c024f08caadd2fc71a83bd811ed1831d",
      "tree": "412ce703796e403697ea00a0d29296b21068f4b0",
      "parents": [
        "84d88d5d4efc37dfb8a93a4a58d8a227ee86ffa4"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matthew.fleming@imgtec.com",
        "time": "Mon Sep 28 16:43:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 01 08:19:24 2009 +0200"
      },
      "message": "tracing: Fix infinite recursion in ftrace_update_pid_func()\n\nWhen CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST is enabled\n__ftrace_trace_function contains the current trace function, not\nftrace_trace_function.\n\nIn ftrace_update_pid_func() we currently incorrectly assign the\nvalue of ftrace_trace_function to __ftrace_trace_funcion before\nreturning.\n\nWithout this patch it is possible to execute an infinite recursion\nwhereby ftrace_test_stop_func() calls __ftrace_trace_function,\nwhich was assigned ftrace_test_stop_func() in\nftrace_update_pid_func().\n\nSigned-off-by: Matt Fleming \u003cmatthew.fleming@imgtec.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1254152581-18347-1-git-send-email-matt@console-pimps.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4187e7e9f1294afdcb3be5d00aa74412a1c2ded8",
      "tree": "1d4b3447cb2a7407d97e51ee5c48069d6b92c9e3",
      "parents": [
        "5bb241b325d7d91bc4ec0b394f31dffb17fe7978",
        "115e8a288252ef748f34f8b7c1115c563d702eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  modules, tracing: Remove stale struct marker signature from module_layout()\n  tracing/workqueue: Use %pf in workqueue trace events\n  tracing: Fix a comment and a trivial format issue in tracepoint.h\n  tracing: Fix failure path in ftrace_regex_open()\n  tracing: Fix failure path in ftrace_graph_write()\n  tracing: Check the return value of trace_get_user()\n  tracing: Fix off-by-one in trace_get_user()\n"
    },
    {
      "commit": "3f6fe06dbf67b46d36fedec502300e04dffeb67a",
      "tree": "3879fe89257ded94190ad8f1835f0320eb19f610",
      "parents": [
        "1889d20922d14a97b2099fa4d47587217c0ba48b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 24 21:31:51 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 24 21:40:13 2009 +0200"
      },
      "message": "tracing/filters: Unify the regex parsing helpers\n\nThe filter code has stolen the regex parsing function from ftrace to\nget the regex support.\nWe have duplicated this code, so factorize it in the filter area and\nmake it generally available, as the filter code is the most suited to\nhost this feature.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79fe249c8368be35c9ca05982e80c68e959505e1",
      "tree": "cfb0b12a3d189fde435db4cab817b740c14517f3",
      "parents": [
        "1eb90f138b3fb4cc15f3acec94aa788e846269f7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Sep 22 13:54:28 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 10:28:57 2009 +0200"
      },
      "message": "tracing: Fix failure path in ftrace_regex_open()\n\nDon\u0027t forget to free trace_parser if seq_open() returned failure.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4AB86694.4040803@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1eb90f138b3fb4cc15f3acec94aa788e846269f7",
      "tree": "d5e361214065598094d9b4ec71b3591edeaa74e5",
      "parents": [
        "4ba7978e98a3ff92cebfb0f31a02c309e3ffa1fe"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Sep 22 13:52:57 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 10:28:56 2009 +0200"
      },
      "message": "tracing: Fix failure path in ftrace_graph_write()\n\nDon\u0027t call trace_parser_put() on uninitialized trace_parser.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4AB86639.3000003@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ba7978e98a3ff92cebfb0f31a02c309e3ffa1fe",
      "tree": "47d8b3b0927a7413fabcc634023b45350f344d89",
      "parents": [
        "3c235a337e205da0f614e456be72881483dcde6e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Sep 22 13:52:20 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 10:28:55 2009 +0200"
      },
      "message": "tracing: Check the return value of trace_get_user()\n\nReturn immediately if trace_get_user() returned failure.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4AB86614.7020803@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4ec5e0c2681b8cf99ddabf118705847f7460f19",
      "tree": "d345e9d6037d7652184b780f49f31e19eba61061",
      "parents": [
        "0efb4d20723d58edbad29d1ff98a86b631adb5e6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Sep 18 14:06:28 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 19 11:26:54 2009 -0400"
      },
      "message": "function-graph: use ftrace_graph_funcs directly\n\nNo need to store ftrace_graph_funcs in file-\u003eprivate.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AB32364.7020602@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b375a11a239e9e1cac40c7f3ff28b343d9f7ac51",
      "tree": "c69d29112ac9eb3689ddac166df65d06b268ad6d",
      "parents": [
        "91adcd2c4b104a8ce2973e6e84b01fd48735ffc6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 17 00:05:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 17 15:53:40 2009 -0400"
      },
      "message": "tracing: switch function prints from %pf to %ps\n\nFor direct function pointers (like what mcount provides) PowerPC64\nrequires the use of %ps, otherwise nothing is printed.\n\nThis patch converts all prints of functions retrieved through mcount\nto use the %ps format from the %pf.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b36461da2a0389149d7f88f3cbc05a30d1db9faa",
      "tree": "c9a4a6414185474e106d538705089a3fa3506a45",
      "parents": [
        "fe832a3a48737b24f95fab202b1c67fb588b071d"
      ],
      "author": {
        "name": "Atsushi Tsuji",
        "email": "a-tsuji@bk.jp.nec.com",
        "time": "Tue Sep 15 19:06:30 2009 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 16 09:08:54 2009 -0400"
      },
      "message": "tracing: Fix minor bugs for __unregister_ftrace_function_probe\n\nFix the condition of strcmp for \"*\".\nAlso fix NULL pointer dereference when glob is NULL.\n\nSigned-off-by: Atsushi Tsuji \u003ca-tsuji@bk.jp.nec.com\u003e\nLKML-Reference: \u003c4AAF6726.5090905@bk.jp.nec.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "689fd8b65d669b96d612ccc37d6fb87bf7ed6907",
      "tree": "d94d478c2f52440a048244a1fc7ee6beec25e88c",
      "parents": [
        "489663644c35d50a20f58d468a7cbc705e6a29ce"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Fri Sep 11 17:29:29 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 11 15:20:18 2009 -0400"
      },
      "message": "tracing: trace parser support for function and graph\n\nConvert the writing to \u0027set_graph_function\u0027, \u0027set_ftrace_filter\u0027\nand \u0027set_ftrace_notrace\u0027 to use the generic trace_parser\n\u0027trace_get_user\u0027 function.\n\nRemoved FTRACE_ITER_CONT flag, since it\u0027s not needed after this change.\n\nMinor fix in set_graph_function display - g_show function.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1252682969-3366-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ed011b22ce567eabefa9ea571d3721c10ecd0553",
      "tree": "c7aee6684613075c772388a99a9137014549434e",
      "parents": [
        "85bac32c4a52c592b857f2c360cc5ec93a097d70",
        "e07cccf4046978df10f2e13fe2b99b2f9b3a65db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 06 06:11:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 06 06:11:42 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc9\u0027 into tracing/core\n\nMerge reason: move from -rc5 to -rc9.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eda1e328556565e211b7450250e40d6de751563a",
      "tree": "a0d4d6c056f3c4452a9a7d0e4b9af52e7a2d089d",
      "parents": [
        "f2d84b65b9778e8a35dd904f7d3993f0a60c9756"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Aug 11 17:29:04 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 18 20:39:48 2009 -0400"
      },
      "message": "tracing: handle broken names in ftrace filter\n\nIf one filter item (for set_ftrace_filter and set_ftrace_notrace) is being\nsetup by more than 1 consecutive writes (FTRACE_ITER_CONT flag), it won\u0027t\nbe handled corretly.\n\nI used following program to test/verify:\n\n[snip]\n#include \u003cstdio.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstring.h\u003e\n\nint main(int argc, char **argv)\n{\n        int fd, i;\n        char *file \u003d argv[1];\n\n        if (-1 \u003d\u003d (fd \u003d open(file, O_WRONLY))) {\n                perror(\"open failed\");\n                return -1;\n        }\n\n        for(i \u003d 0; i \u003c (argc - 2); i++) {\n                int len \u003d strlen(argv[2+i]);\n                int cnt, off \u003d 0;\n\n                while(len) {\n                        cnt \u003d write(fd, argv[2+i] + off, len);\n                        len -\u003d cnt;\n                        off +\u003d cnt;\n                }\n        }\n\n        close(fd);\n        return 0;\n}\n[snip]\n\nbefore change:\nsh-4.0# echo \u003e ./set_ftrace_filter\nsh-4.0# /test ./set_ftrace_filter \"sys\" \"_open \"\nsh-4.0# cat ./set_ftrace_filter\n#### all functions enabled ####\nsh-4.0#\n\nafter change:\nsh-4.0# echo \u003e ./set_ftrace_notrace\nsh-4.0# test ./set_ftrace_notrace \"sys\" \"_open \"\nsh-4.0# cat ./set_ftrace_notrace\nsys_open\nsh-4.0#\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c20090811152904.GA26065@jolsa.lab.eng.brq.redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3be04b471b95b870bd129a138463756629e86f3f",
      "tree": "056a6f2ecf5be83c0441ebe9357f16bc1f91cd0c",
      "parents": [
        "2fc5f0cff4cf1c4cd336d0f61f11bca6eeee1d84"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 17 16:54:03 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 17 11:25:10 2009 +0200"
      },
      "message": "ftrace: Simplify seqfile code\n\nUse seq_release_private().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A891AAB.8090701@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89034bc2c7b839702c00a704e79d112737f98be0",
      "tree": "e65b1f3d4c751baa840efc81bc4734f089379eb3",
      "parents": [
        "fb82ad719831db58e9baa4c67015aae3fe27e7e3",
        "85dfd81dc57e8183a277ddd7a56aa65c96f3f487"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/trace_events_filter.c\n\nWe use the tracing/core version.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8650ae32ef7045e763825dee6256dde7f331bb85",
      "tree": "546a07e4c5b6fc731b48604769392a671c1fb18e",
      "parents": [
        "4c739ff043e5787d97c9691d62cabf7a29e75a9d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 22 23:29:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 10:07:18 2009 -0400"
      },
      "message": "tracing: only truncate ftrace files when O_TRUNC is set\n\nThe current code will truncate the ftrace files contents if O_APPEND\nis not set and the file is opened in write mode. This is incorrect.\nIt should only truncate the file if O_TRUNC is set. Otherwise\nif one of these files is opened by a C program with fopen \"r+\",\nit will incorrectly truncate the file.\n\nReported-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "87827111a5538633b18e5c641ced673c4c2bb6ce",
      "tree": "46249db51a7f94e31948f48b07efbbbc5de3e7c3",
      "parents": [
        "d8cc1ab793993c886c62abf77c93287df33ffd8b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 23 11:29:11 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 23 09:53:23 2009 -0400"
      },
      "message": "function-graph: Fix seqfile memory leak\n\nEvery time we cat set_graph_function, we leak memory allocated\nby seq_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A67D907.2010500@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "566b0aaf798a0dddfc455d1a5b05c424c6686c65",
      "tree": "ce8e8bfb62986ba4e5ba1b1d7d729c83aeb74387",
      "parents": [
        "45bceffc3013bda7d2ebc7802e9b153b674e2d44"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Thu Jul 16 21:44:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:21:16 2009 +0200"
      },
      "message": "tracing: Remove unused fields/variables\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1247773468-11594-2-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45bceffc3013bda7d2ebc7802e9b153b674e2d44",
      "tree": "222d7dd8fd300925cbf12cdc0fba5bee2528997e",
      "parents": [
        "6f2f3cf00ee32f75ba007a46bab88a54d68a5deb",
        "78af08d90b8f745044b1274430bc4bc6b2b27aca"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:19:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 12:20:01 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on an older, pre-rc1 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f2f3cf00ee32f75ba007a46bab88a54d68a5deb",
      "tree": "89aaab40d502c84e135b7e9e72b20bb7d498bc8c",
      "parents": [
        "79173bf556417a737e9d2e096e0788452ec30a61"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 16 14:21:08 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 17 01:45:51 2009 -0400"
      },
      "message": "tracing/function: Cleanup for function tracer\n\nWe can directly use %pf input format instead of kallsyms_lookup()\nand %s input format\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "64fbcd162819bddaf0d99e78b16371b655aa5dee",
      "tree": "abc34dd23386f13675502455d99d868b9b63173e",
      "parents": [
        "da706d8bc833e7153622435560422e653bdb2e94"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jul 15 12:32:15 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 17 00:37:53 2009 -0400"
      },
      "message": "tracing/function: Simplify __ftrace_replace_code()\n\nRewrite the __ftrace_replace_code() function, simplify it, but don\u0027t\nchange the code\u0027s logic.\n\nFirst, we get the state we want to set, if the record has the same\nstate, then do nothing, otherwise enable/disable it.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6ab5d668b131d3c5416f6df1d3ca95b82d4fe8a2",
      "tree": "dc5cd05361845a431c1388f83f913e4610a2dfca",
      "parents": [
        "d0b6e04a4cd8360e3c9c419f7c30a3081a0c142a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 04 00:55:45 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 13 11:01:10 2009 +0200"
      },
      "message": "tracing/function-profiler: do not free per cpu variable stat\n\nThe per cpu variable stat is freeded if we fail to allocate a name\non start up. This was due to stat at first being allocated in the\ninitial design. But since then, it has become a static per cpu variable\nbut the free on error was not removed.\n\nAlso added __init annotation to the function that this is in.\n\n[ Impact: prevent possible memory corruption on low mem at boot up ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a32c7765e2796395aec49f699bd25c407155e9c5",
      "tree": "6d46f223a177ada92c6f47c36ba2e51cd6041037",
      "parents": [
        "0296e4254f3318e0dcad9706fa1daf8e5addc1e9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jun 26 16:55:51 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 20:48:39 2009 +0200"
      },
      "message": "tracing: Fix stack tracer sysctl handling\n\nThis made my machine completely frozen:\n\n  # echo 1 \u003e /proc/sys/kernel/stack_tracer_enabled\n  # echo 2 \u003e /proc/sys/kernel/stack_tracer_enabled\n\nThe cause is register_ftrace_function() was called twice.\n\nAlso fix ftrace_enabled sysctl, though seems nothing bad happened\nas I tested it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A448D17.9010305@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0296e4254f3318e0dcad9706fa1daf8e5addc1e9",
      "tree": "7568f2372564b45fa79bbcdd36273999cae0de8c",
      "parents": [
        "1155de47cd66d0c496d5a6fb2223e980ef1285b2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jun 26 11:15:37 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 09:25:42 2009 +0200"
      },
      "message": "ftrace: Fix the output of profile\n\nThe first entry of the ftrace profile was always skipped when\nreading trace_stat/functionX.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A443D59.4080307@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d82d62444f87e5993af2fa82ed636b2206e052ea",
      "tree": "701f28de7def6c58d80db72a462171cab013b514",
      "parents": [
        "694ce0a544fba37a60025a6803ee6265be8a2a22"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:54 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Fix t_hash_start()\n\nWhen the output of set_ftrace_filter is larger than PAGE_SIZE,\nt_hash_start() will be called the 2nd time, and then we start\nfrom the head of a hlist, which is wrong and causes some entries\nto be outputed twice.\n\nThe worse is, if the hlist is large enough, reading set_ftrace_filter\nwon\u0027t stop but in a dead loop.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41876E.2060407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "694ce0a544fba37a60025a6803ee6265be8a2a22",
      "tree": "a6debd92de0dcf7b42dc129402ca793c540091ae",
      "parents": [
        "85951842a1020669f0a9eb0f0d1853b41341f097"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:19 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Don\u0027t manipulate @pos in t_start()\n\nIt\u0027s rather confusing that in t_start(), in some cases @pos is\nincremented, and in some cases it\u0027s decremented and then incremented.\n\nThis patch rewrites t_start() in a much more general way.\n\nThus we fix a bug that if ftrace_filtered \u003d\u003d 1, functions have tracer\nhooks won\u0027t be printed, because the branch is always unreachable:\n\nstatic void *t_start(...)\n{\n\t...\n\tif (!p)\n\t\treturn t_hash_start(m, pos);\n\treturn p;\n}\n\nBefore:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n\nAfter:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n  sys_write:traceon:count\u003d4\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41874B.4090507@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85951842a1020669f0a9eb0f0d1853b41341f097",
      "tree": "799bba3e78b7424761901dacf3290ce05b9cb9ed",
      "parents": [
        "f129e965bef40c6153e4fe505f1e408286213424"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:00 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:52 2009 +0200"
      },
      "message": "ftrace: Don\u0027t increment @pos in g_start()\n\nIt\u0027s wrong to increment @pos in g_start(). It causes some entries\nlost when reading set_graph_function, if the output of the file\nis larger than PAGE_SIZE.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418738.7090401@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ea1a153a4fb435c22e9988784bb476671286112",
      "tree": "0f13f65f1bb8edae5a2906d22a209ff013e283ec",
      "parents": [
        "c85a17e22695969aa24a7ffa40cf26d6e6fcfd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "message": "tracing/urgent: warn in case of ftrace_start_up inbalance\n\nPrevent from further ftrace_start_up inbalances so that we avoid\nfuture nop patching omissions with dynamic ftrace.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d",
      "tree": "50b5f4e2b9f138da57f76eca44fdcc80a2fcd428",
      "parents": [
        "862366118026a358882eefc70238dbcc3db37aac",
        "84047e360af0394ac5861d433f26bbcf30f77dd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:58:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:58:10 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  function-graph: always initialize task ret_stack\n  function-graph: move initialization of new tasks up in fork\n  function-graph: add memory barriers for accessing task\u0027s ret_stack\n  function-graph: enable the stack after initialization of other variables\n  function-graph: only allocate init tasks if it was not already done\n\nManually fix trivial conflict in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "84047e360af0394ac5861d433f26bbcf30f77dd1",
      "tree": "55848e2ca4856a64b348a57ecca495c2f065aa0f",
      "parents": [
        "f7e8b616ed1cc6f790b82324bce8a2a60295e5c2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 16:51:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 16:51:55 2009 -0400"
      },
      "message": "function-graph: always initialize task ret_stack\n\nOn creating a new task while running the function graph tracer, if\nwe fail to allocate the ret_stack, and then fail the fork, the\ncode will free the parent ret_stack. This is because the child\nduplicated the parent and currently points to the parent\u0027s ret_stack.\n\nThis patch always initializes the task\u0027s ret_stack to NULL.\n\n[ Impact: prevent crash of parent on low memory during fork ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c01624a2a40f8a4ddf6449b65c9b1c418d0e72",
      "tree": "eeff81aa0fa56ba1f2c180d4ec6e64cb31af898e",
      "parents": [
        "82310a3272d5a2a7652f5649ad8a55f58c8f74d9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 14:01:19 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 14:42:17 2009 -0400"
      },
      "message": "function-graph: add memory barriers for accessing task\u0027s ret_stack\n\nThe code that handles the tasks ret_stack allocation for every task\nassumes that only an interrupt can cause issues (even though interrupts\nare disabled).\n\nIn reality, the code is allocating the ret_stack for tasks that may be\nrunning on other CPUs and there are not efficient memory barriers to\nhandle this case.\n\n[ Impact: prevent crash due to using of uninitialized ret_stack variables ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "82310a3272d5a2a7652f5649ad8a55f58c8f74d9",
      "tree": "c909c7a3f1fd3430f64be1d4aa8aff84fdf45b04",
      "parents": [
        "179c498ae2998461fe436437a74dc29036fc7dcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 12:26:07 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 14:41:50 2009 -0400"
      },
      "message": "function-graph: enable the stack after initialization of other variables\n\nThe function graph tracer checks if the task_struct has ret_stack defined\nto know if it is OK or not to use it. The initialization is done for\nall tasks by one process, but the idle tasks use the same initialization\nused by new tasks.\n\nIf an interrupt happens on an idle task that just had the ret_stack\ncreated, but before the rest of the initialization took place, then\nwe can corrupt the return address of the functions.\n\nThis patch moves the setting of the task_struct\u0027s ret_stack to after\nthe other variables have been initialized.\n\n[ Impact: prevent kernel panic on idle task when starting function graph ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "179c498ae2998461fe436437a74dc29036fc7dcc",
      "tree": "7794227a9cc45c2ec22d3e3b3062a96d34e8b0b9",
      "parents": [
        "88fc86c283d9c3854e67e4155808027bc2519eb6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 02 12:03:19 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 02 12:03:19 2009 -0400"
      },
      "message": "function-graph: only allocate init tasks if it was not already done\n\nWhen the function graph tracer is enabled, it calls the initialization\nneeded for the init tasks that would be called on all created tasks.\n\nThe problem is that this is called every time the function graph tracer\nis enabled, and the ret_stack is allocated for the idle tasks each time.\nThus, the old ret_stack is lost and a memory leak is created.\n\nThis is also dangerous because if an interrupt happened on another CPU\nwith the init task and the ret_stack is replaced, we then lose all the\nreturn pointers for the interrupt, and a crash would take place.\n\n[ Impact: fix memory leak and possible crash due to race ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0f6ce3de4ef6ff940308087c49760d068851c1a7",
      "tree": "26a732ee4dd5b0f5612f0385893ec483c6ba4ab3",
      "parents": [
        "112f38a7e36e9d688b389507136bf3af3e6d159b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 01 21:51:28 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:26:23 2009 -0400"
      },
      "message": "ftrace: do not profile functions when disabled\n\nA race was found that if one were to enable and disable the function\nprofiler repeatedly, then the system can panic. This was because a profiled\nfunction may be preempted just before disabling interrupts. While\nthe profiler is disabled and then reenabled, the preempted function\ncould start again, and access the hash as it is being initialized.\n\nThis just adds a check in the irq disabled part to check if the profiler\nis enabled, and if it is not then it will just exit.\n\nWhen the system is disabled, the profile_enabled variable is cleared\nbefore calling the unregistering of the function profiler. This\nunregistering calls stop machine which also acts as a synchronize schedule.\n\n[ Impact: fix panic in enabling/disabling function profiler ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2af15d6a44b871ad4c2a651302374cde8f335480",
      "tree": "39f06d511e3e1d1970fe4571128549c1c26230c1",
      "parents": [
        "f2aebaee653a35b01c3665de2cbb1e31456b8ea8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 13:37:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:10 2009 -0400"
      },
      "message": "ftrace: add kernel command line function filtering\n\nWhen using ftrace\u003dfunction on the command line to trace functions\non boot up, one can not filter out functions that are commonly called.\n\nThis patch adds two new ftrace command line commands.\n\n  ftrace_notrace\u003dfunction-list\n  ftrace_filter\u003dfunction-list\n\nWhere function-list is a comma separated list of functions to filter.\nThe ftrace_notrace will make the functions listed not be included\nin the function tracing, and ftrace_filter will only trace the functions\nlisted.\n\nThese two act the same as the debugfs/tracing/set_ftrace_notrace and\ndebugfs/tracing/set_ftrace_filter respectively.\n\nThe simple glob expressions that are allowed by the filter files can also\nbe used by the command line interface.\n\n\tftrace_notrace\u003drcu*,*lock,*spin*\n\nWill not trace any function that starts with rcu, ends with lock, or has\nthe word spin in it.\n\nNote, if the self tests are enabled, they may interfere with the filtering\nset by the command lines.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "24ed0c4bfc7d2d7507bb9d50f7f3bbdcd85d76dd",
      "tree": "954ff0ff7f4249ec7a2e9e9233bb4d8e0670f9ce",
      "parents": [
        "1079cac0f4eb7d968395378b1625979d4c818dd6"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sun May 17 15:31:38 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 10:24:13 2009 +0200"
      },
      "message": "tracing: fix check for return value of register_module_notifier\n\nreturn zero should be correct, so fix it.\n\n[ Impact: eliminate incorrect syslog message ]\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1242545498-7285-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2",
      "tree": "8bbc46895be623a78316230362e94969dbb02135",
      "parents": [
        "f3948f8857ef5de239f28a61dddb1554a0ae4c2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:24:06 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 16:59:15 2009 +0200"
      },
      "message": "ftrace: use module notifier for function tracer\n\nThe hooks in the module code for the function tracer must be called\nbefore any of that module code runs. The function tracer hooks\nmodify the module (replacing calls to mcount to nops). If the code\nis executed while the change occurs, then the CPU can take a GPF.\n\nTo handle the above with a bit of paranoia, I originally implemented\nthe hooks as calls directly from the module code.\n\nAfter examining the notifier calls, it looks as though the start up\nnotify is called before any of the module\u0027s code is executed. This makes\nthe use of the notify safe with ftrace.\n\nOnly the startup notify is required to be \"safe\". The shutdown simply\nremoves the entries from the ftrace function list, and does not modify\nany code.\n\nThis change has another benefit. It removes a issue with a reverse dependency\nin the mutexes of ftrace_lock and module_mutex.\n\n[ Impact: fix lock dependency bug, cleanup ]\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ad8d75fff811a6a230f7f43b05a6483099349533",
      "tree": "764f75c0785b29067b141719b6e8000f005da7fd",
      "parents": [
        "ecda8ae02a08ef065ff387f5cb2a2d4999da2408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 14 19:39:12 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 22:05:43 2009 -0400"
      },
      "message": "tracing/events: move trace point headers into include/trace/events\n\nImpact: clean up\n\nCreate a sub directory in include/trace called events to keep the\ntrace point headers in their own separate directory. Only headers that\ndeclare trace points should be defined in this directory.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "597af81537654097b67fd7a0c92775e66d4a86fe",
      "tree": "e258b2ce6e6027609a3aa488b697e189872d9cf7",
      "parents": [
        "5452af664f6fba26b80eb2c8c4ceae2999d5cf56"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 03 15:24:12 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:43:08 2009 +0200"
      },
      "message": "function-graph: use int instead of atomic for ftrace_graph_active\n\nImpact: cleanup\n\nThe variable ftrace_graph_active is only modified under the\nftrace_lock mutex, thus an atomic is not necessary for modification.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5452af664f6fba26b80eb2c8c4ceae2999d5cf56",
      "tree": "08fb64bfc3242ad96b65719a55424db729585f17",
      "parents": [
        "a5dec5573f3c7e63f2f9b5852b9759ea342a5ff9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 27 00:25:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:43:07 2009 +0200"
      },
      "message": "tracing/ftrace: factorize the tracing files creation\n\nImpact: cleanup\n\nMost of the tracing files creation follow the same pattern:\n\nret \u003d debugfs_create_file(...)\nif (!ret)\n\tpr_warning(\"Couldn\u0027t create ... entry\\n\")\n\nUnify it!\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1238109938-11840-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "93776a8ec746cf9d32c36e5a5b23d28d8be28826",
      "tree": "6c472ae9f709246ee5268e1d71559d07839fb965",
      "parents": [
        "34886c8bc590f078d4c0b88f50d061326639198d",
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:47:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:47:45 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: update to upstream tracing facilities\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2aad1b76e6b0cc5a2e5d9b95a9f356ddddbfa8a9",
      "tree": "80ac6be0f1502079a50f8b1b4ffcc5e0586791e8",
      "parents": [
        "8b54e45b0005875f59cb8b1c44d429a161d5f245"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 30 11:11:28 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 14:47:42 2009 +0200"
      },
      "message": "function-graph: allow unregistering twice\n\nImpact: fix to permanent disabling of function graph tracer\n\nThere should be nothing to prevent a tracer from unregistering a\nfunction graph callback more than once. This can simplify error paths.\n\nBut currently, the counter does not account for mulitple unregistering\nof the function graph callback. If it happens, the function graph\ntracer will be permanently disabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34886c8bc590f078d4c0b88f50d061326639198d",
      "tree": "5119877f332b554bb0c777cdb926e6a49f866d9b",
      "parents": [
        "318e0a73c9e41b9a17241829bcd0605a39b87cb9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 21:00:47 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 21:03:36 2009 -0400"
      },
      "message": "tracing: add average time in function to function profiler\n\nShow the average time in the function (Time / Hit)\n\n  Function                               Hit    Time            Avg\n  --------                               ---    ----            ---\n  mwait_idle                              51    140326.6 us     2751.503 us\n  smp_apic_timer_interrupt                47    3517.735 us     74.845 us\n  schedule                                10    2738.754 us     273.875 us\n  __schedule                              10    2732.857 us     273.285 us\n  hrtimer_interrupt                       47    1896.104 us     40.342 us\n  irq_exit                                56    1711.833 us     30.568 us\n  __run_hrtimer                           47    1315.589 us     27.991 us\n  tick_sched_timer                        47    1138.690 us     24.227 us\n  do_softirq                              56    1116.829 us     19.943 us\n  __do_softirq                            56    1066.932 us     19.052 us\n  do_IRQ                                   9    926.153 us      102.905 us\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "318e0a73c9e41b9a17241829bcd0605a39b87cb9",
      "tree": "230bd849953f60d12003fd5b9fecfd151ebb468b",
      "parents": [
        "fb9fb015e92123fa3a8e0c2e2fff491d4a56b470"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 20:06:34 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 21:03:17 2009 -0400"
      },
      "message": "tracing: remove on the fly allocator from function profiler\n\nImpact: safer code\n\nThe on the fly allocator for the function profiler was to save\nmemory. But at the expense of stability. Although it survived several\ntests, allocating from the function tracer is just too risky, just\nto save space.\n\nThis patch removes the allocator and simply allocates enough entries\nat start up.\n\nEach function gets a profiling structure of 40 bytes. With an average\nof 20K functions, and this is for each CPU, we have 800K per online\nCPU. This is not too bad, at least for non-embedded.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2a4efa42450762cbfa5c5712aa4cc9f06924c9fd",
      "tree": "70af0a079541af99dec634fc89ce317dee2f1a33",
      "parents": [
        "759ee0915dd713361e72facb78b66600b5712d65"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Wed Mar 25 12:06:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 17:45:36 2009 -0400"
      },
      "message": "ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n\n \"Because when we call ftrace_free_rec we change the rec-\u003eip to point to the\n  next record in the chain. Something is very wrong if rec-\u003eip \u003e\u003d s \u0026\u0026\n  rec-\u003eip \u003c e and the record is already free.\"\n\n \"Note, use FTRACE_WARN_ON() macro. This way it shuts down ftrace if it is\n  hit and helps to avoid further damage later.\"\n                   -- Steven Rostedt \u003crostedt@goodmis.org\u003e\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "fb9fb015e92123fa3a8e0c2e2fff491d4a56b470",
      "tree": "8fb33ea3001a1450fbd260c6928df22c543c614a",
      "parents": [
        "a2a16d6a3156ef7309ca7328a20c35df9418e670"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 13:26:41 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 25 13:26:41 2009 -0400"
      },
      "message": "tracing: clean up tracing profiler\n\nIngo Molnar suggested clean ups for the profiling code. This patch\nmakes those updates.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "a2a16d6a3156ef7309ca7328a20c35df9418e670",
      "tree": "8f21d9c56eb34f9bd1057929661c96d04329dd69",
      "parents": [
        "cafb168a1c92e4c9e1731fe3d666c39611762c49"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:17:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:11 2009 -0400"
      },
      "message": "function-graph: add option to calculate graph time or not\n\ngraph time is the time that a function is executing another function.\nThus if function A calls B, if graph-time is set, then the time for\nA includes B. This is the default behavior. But if graph-time is off,\nthen the time spent executing B is subtracted from A.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "cafb168a1c92e4c9e1731fe3d666c39611762c49",
      "tree": "536d4bb6d33499d746ffb674126d2983e5d6e361",
      "parents": [
        "0706f1c48ca8a7ab478090b4e38f2e578ae2bfe0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 20:50:39 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:10 2009 -0400"
      },
      "message": "tracing: make the function profiler per cpu\n\nImpact: speed enhancement\n\nBy making the function profiler record in per cpu data we not only\nget better readings, avoid races, we also do not have to take any\nlocks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0706f1c48ca8a7ab478090b4e38f2e578ae2bfe0",
      "tree": "26b79090f8e7e62796bb871ff089d04799919855",
      "parents": [
        "493762fc534c71d11d489f872c4b4a2c61173668"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 23 23:12:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:09 2009 -0400"
      },
      "message": "tracing: adding function timings to function profiler\n\nIf the function graph trace is enabled, the function profiler will\nuse it to take the timing of the functions.\n\n cat /debug/tracing/trace_stat/functions\n\n  Function                               Hit    Time\n  --------                               ---    ----\n  mwait_idle                             127    183028.4 us\n  schedule                                26    151997.7 us\n  __schedule                              31    151975.1 us\n  sys_wait4                                2    74080.53 us\n  do_wait                                  2    74077.80 us\n  sys_newlstat                           138    39929.16 us\n  do_path_lookup                         179    39845.79 us\n  vfs_lstat_fd                           138    39761.97 us\n  user_path_at                           153    39469.58 us\n  path_walk                              179    39435.76 us\n  __link_path_walk                       189    39143.73 us\n[...]\n\nNote the times are skewed due to the function graph tracer not taking\ninto account schedules.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    }
  ],
  "next": "493762fc534c71d11d489f872c4b4a2c61173668"
}
