)]}'
{
  "log": [
    {
      "commit": "9bdeb7b5d34f197dea7859d24475943395ffea5e",
      "tree": "f2db04f16f95ac713bb35d9c0dc8626a294d6d60",
      "parents": [
        "73bd9c72a29be1e8de008186eea55d333a938804"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Aug 15 00:40:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:42 2008 -0700"
      },
      "message": "kexec jump: __ftrace_enabled_save/restore\n\nAdd __ftrace_enabled_save/restore, used to disable ftrace for a while.\nNow, this is used by kexec jump, which need a version without lock, for\ngeneral situation, a locked version should be used.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2bb6a3d85ef3124cd336403a95abc0540d3fbe2",
      "tree": "3048f355cc3ca814222ba34943c9a8f735e7a5e6",
      "parents": [
        "26bc83f4cb911a0b4dabfe23b700aaf3235f2955"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:21 2008 +0200"
      },
      "message": "ftrace: add ftrace_kill_atomic\n\nIt has been suggested that I add a way to disable the function tracer\non an oops. This code adds a ftrace_kill_atomic. It is not meant to be\nused in normal situations. It will disable the ftrace tracer, but will\nnot perform the nice shutdown that requires scheduling.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ecea656d1d5e912d2f3d332657ea4a6d8380f891",
      "tree": "fd139cdd762230bf4e55a1341ba29e2b309968b1",
      "parents": [
        "785656a41f9a9c0e843a23d1ae05d900b5158f8f"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sat Jun 21 23:47:53 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:10:58 2008 +0200"
      },
      "message": "ftrace: freeze kprobe\u0027d records\n\nLet records identified as being kprobe\u0027d be marked as \"frozen\". The trouble\nwith records which have a kprobe installed on their mcount call-site is\nthat they don\u0027t get updated. So if such a function which is currently being\ntraced gets its tracing disabled due to a new filter rule (or because it\nwas added to the notrace list) then it won\u0027t be updated and continue being\ntraced. This patch allows scanning of all frozen records during tracing to\ncheck if they should be traced.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "395a59d0f8e86bb39cd700c3d185d30c670bb958",
      "tree": "1558e635efcede901c5dbe9acd625d475db5b369",
      "parents": [
        "f34bfb1beef8a17ba3d46b60f8fa19ffedc1ed8d"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sat Jun 21 23:47:27 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:10:56 2008 +0200"
      },
      "message": "ftrace: store mcount address in rec-\u003eip\n\nRecord the address of the mcount call-site. Currently all archs except sparc64\nrecord the address of the instruction following the mcount call-site. Some\ngeneral cleanups are entailed. Storing mcount addresses in rec-\u003eip enables\nlooking them up in the kprobe hash table later on to check if they\u0027re kprobe\u0027d.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: davem@davemloft.net\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0eb967012ea15e6e8cfab483d9fa37bc602d400c",
      "tree": "0e9c026a2d83f313cdc3f9f235d58ff522cee090",
      "parents": [
        "e0773410247f1e5fc6f7c52a4c5f3c6c9873d527"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sun Jun 01 21:47:30 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 11:56:57 2008 +0200"
      },
      "message": "ftrace: prevent freeing of all failed updates\n\nPrevent freeing of records which cause problems and correspond to function from\ncore kernel text. A new flag, FTRACE_FL_CONVERTED is used to mark a record\nas \"converted\". All other records are patched lazily to NOPs. Failed records\nnow also remain on frace_hash table. Each invocation of ftrace_record_ip now\nchecks whether the traced function has ever been recorded (including past\nfailures) and doesn\u0027t re-record it again.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad90c0e3ce8d20d6873b57e36181ef6d7a0097fe",
      "tree": "34af559928f9f2403c72156b672578d28f790a4f",
      "parents": [
        "76094a2cf46e4ab776055d4086615b884408568c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 27 20:48:37 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 02 12:50:04 2008 +0200"
      },
      "message": "ftrace: user update and disable dynamic ftrace daemon\n\nIn dynamic ftrace, the mcount function starts off pointing to a stub\nfunction that just returns.\n\nOn start up, the call to the stub is modified to point to a \"record_ip\"\nfunction. The job of the record_ip function is to add the function to\na pre-allocated hash list. If the function is already there, it simply is\nignored, otherwise it is added to the list.\n\nLater, a ftraced daemon wakes up and calls kstop_machine if any functions\nhave been recorded, and changes the calls to the recorded functions to\na simple nop.  If no functions were recorded, the daemon goes back to sleep.\n\nThe daemon wakes up once a second to see if it needs to update any newly\nrecorded functions into nops.  Usually it does not, but if a lot of code\nhas been executed for the first time in the kernel, the ftraced daemon\nwill call kstop_machine to update those into nops.\n\nThe problem currently is that there\u0027s no way to stop the daemon from doing\nthis, and it can cause unneeded latencies (800us which for some is bothersome).\n\nThis patch adds a new file /debugfs/tracing/ftraced_enabled. If the daemon\nis active, reading this will return \"enabled\\n\" and \"disabled\\n\" when the\ndaemon is not running. To disable the daemon, the user can echo \"0\" or\n\"disable\" into this file, and \"1\" or \"enable\" to re-enable the daemon.\n\nSince the daemon is used to convert the functions into nops to increase\nthe performance of the system, I also added that anytime something is\nwritten into the ftraced_enabled file, kstop_machine will run if there\nare new functions that have been detected that need to be converted.\n\nThis way the user can disable the daemon but still be able to control the\nconversion of the mcount calls to nops by simply,\n\n  \"echo 0 \u003e /debugfs/tracing/ftraced_enabled\"\n\nwhen they need to do more conversions.\n\nTo see the number of converted functions:\n\n  \"cat /debugfs/tracing/dyn_ftrace_total_info\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1829d2705daa7cb72eb1e08bdc8b7e9fad34266",
      "tree": "2be273d7b2902ee3b789c63337437c65479f4660",
      "parents": [
        "492a7ea5bcf263ee02a9eb6a3ab0222a1946fade"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 28 01:22:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 28 01:25:04 2008 +0200"
      },
      "message": "ftrace: fix merge\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41c52c0db9607e59f90da7da5309489fa06e887f",
      "tree": "b0b1f282c087c53dfd4081da5a8a35cdc5ea5ebb",
      "parents": [
        "da89a7a2536c46e76a1a4351a70a8b8417e5fed1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 22 11:46:33 2008 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 26 22:51:37 2008 +0200"
      },
      "message": "ftrace: set_ftrace_notrace feature\n\nWhile debugging latencies in the RT kernel, I found that it would be nice\nto be able to filter away functions from the trace than just to filter\non functions.\n\nI added a new interface to the debugfs tracing directory called\n\n  set_ftrace_notrace\n\nWhen dynamic frace is enabled, this lets you filter away functions that will\nnot be recorded in the trace. It is similar to adding \u0027notrace\u0027 to those\nfunctions but by doing it without recompiling the kernel.\n\nHere\u0027s how set_ftrace_filter and set_ftrace_notrace interact. Remember, if\nset_ftrace_filter is set, it removes all functions from the trace execpt for\nthose listed in the set_ftrace_filter. set_ftrace_notrace will prevent those\nfunctions from being traced.\n\nIf you were to set one function in both set_ftrace_filter and\nset_ftrace_notrace and that function was the same, then you would end up\nwith an empty trace.\n\nthe set of functions to trace is:\n\n  set_ftrace_filter \u003d\u003d empty then\n\n     all functions not in set_ftrace_notrace\n\n  else\n\n     set of the set_ftrace_filter and not in set of set_ftrace_notrace.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "489f139614596cbc956a06f5e4bb41288e276fe3",
      "tree": "6c705f5859ff90adc871c4d002b1437ff5407733",
      "parents": [
        "d49dbf33f0bf8748ee3662b973eb57e60525d622"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 13:38:05 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:37:04 2008 +0200"
      },
      "message": "ftrace: fix build bug\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d49dbf33f0bf8748ee3662b973eb57e60525d622",
      "tree": "aac62379ef416cf50755841b7d7dbaefd1ec560b",
      "parents": [
        "2d8b820b2e81954754277723379ae9ed5de316fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 16 10:41:53 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:36:51 2008 +0200"
      },
      "message": "ftrace: fix include file dependency\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "74f4e369fc5b52433ad824cef32d3bf1304549be",
      "tree": "c70d073a2740821f52d8b2b09f01626a06201e74",
      "parents": [
        "5b82a1b08a00b2adca3d9dd9777efff40b7aaaa1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:21:15 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:34:56 2008 +0200"
      },
      "message": "ftrace: stacktrace fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "86387f7ee5d3273ff4859e2c64ce656639b6ca65",
      "tree": "d2080c680e9e9415dfa99bb8408302584035e664",
      "parents": [
        "57422797dc009fc83766bcf230d29dbe6e08e21e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:51 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 21:04:20 2008 +0200"
      },
      "message": "ftrace: add stack tracing\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "aeaee8a2c9cb4489f166ca0e39c568e8254faaa6",
      "tree": "1b817104f60dc06c1bdd3f5e4e0bed5ee86e780e",
      "parents": [
        "2577046740fe6d77864128c6187c11125c2449ea"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:49 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:55:33 2008 +0200"
      },
      "message": "ftrace: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4eebcc81a33fbc45e28542b50197ed7b3c486d90",
      "tree": "13bbad50aa8d4dc36d630ef08886876f4dc0b6eb",
      "parents": [
        "37ad508419f0fdfda7b378756eb1f35cfd26d96d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:48 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:54:16 2008 +0200"
      },
      "message": "ftrace: disable tracing on failure\n\nSince ftrace touches practically every function. If we detect any\nanomaly, we want to fully disable ftrace. This patch adds code\nto try shutdown ftrace as much as possible without doing any more\nharm is something is detected not quite correct.\n\nThis only kills ftrace, this patch does have checks for other parts of\nthe tracer (irqsoff, wakeup, etc.).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "37ad508419f0fdfda7b378756eb1f35cfd26d96d",
      "tree": "53db6e201e605c1926adc74fa965b1a615066da8",
      "parents": [
        "088b1e427dbba2af93cb6a7d39258c10ff58dd27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:48 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:54:04 2008 +0200"
      },
      "message": "ftrace - fix dynamic ftrace memory leak\n\nThe ftrace dynamic function update allocates a record to store the\ninstruction pointers that are being modified. If the modified\ninstruction pointer fails to update, then the record is marked as\nfailed and nothing more is done.\n\nWorse, if the modification fails, but the record ip function is still\ncalled, it will allocate a new record and try again. In just a matter\nof time, will this cause a serious memory leak and crash the system.\n\nThis patch plugs this memory leak. When a record fails, it is\nincluded back into the pool of records to be used. Now a record may\nfail over and over again, but the number of allocated records will\nnot increase.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "77a2b37d227483fe52aead242652aee406c25bf0",
      "tree": "cecb6a3a02a567530e2ce3502de18f371c9db7c1",
      "parents": [
        "7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:06 2008 +0200"
      },
      "message": "ftrace: startup tester on dynamic tracing.\n\nThis patch adds a startup self test on dynamic code modification\nand filters. The test filters on a specific function, makes sure that\nno other function is traced, exectutes the function, then makes sure that\nthe function is traced.\n\nThis patch also fixes a slight bug with the ftrace selftest, where\ntracer_enabled was not being set.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7aafc549766b87819285d3480648fc652a47bc4",
      "tree": "4c36170a644633f930feca57b27f8c5d23644e70",
      "parents": [
        "60a11774b38fef1ab90b18c5353bd1c7c4d311c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:46 2008 +0200"
      },
      "message": "ftrace: cleanups\n\nfactor out code and clean it up.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8",
      "tree": "eb2c642f9b7b5e222f1635e138c6072b0799f37b",
      "parents": [
        "57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:29 2008 +0200"
      },
      "message": "ftrace: force recording\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f43fdad8627fec2d21df92799b254dceb66c9c3c",
      "tree": "09a9c54beaea06b814b3f4e6724375de282d944b",
      "parents": [
        "4c11d7aed389375253b59e2b1865eec96663c65d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:39:05 2008 +0200"
      },
      "message": "ftrace: fix kexec\n\ndisable the tracer while kexec pulls the rug from under the old\nkernel.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5072c59fd45e9976d02ee6f18c7336ef97623cbc",
      "tree": "d7c9d48ed518246b958ee7759f285bc22445feb8",
      "parents": [
        "d61f82d06672f57fca410da6f7fffd15867db622"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:38:41 2008 +0200"
      },
      "message": "ftrace: add filter select functions to trace\n\nThis patch adds two files to the debugfs system:\n\n /debugfs/tracing/available_filter_functions\n\nand\n\n /debugfs/tracing/set_ftrace_filter\n\nThe available_filter_functions lists all functions that has been\nrecorded by the ftraced that has called the ftrace_record_ip function.\nThis is to allow users to see what functions have been converted\nto nops and can be enabled for tracing.\n\nTo enable functions, simply echo the names (whitespace delimited)\ninto set_ftrace_filter. Simple wildcards are also allowed.\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the scheduler be activated when tracing is enabled.\n\necho \u0027sched_*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the functions starting with \u0027sched_\u0027 be activated.\n\necho \u0027*lock\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions ending with \u0027lock\u0027 be activated.\n\necho \u0027*lock*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions with \u0027lock\u0027 in its name be activated.\n\nNote: \u0027sched*lock\u0027 will not work. The only wildcards that are\nallowed is an asterisk and the beginning and or end of the string\npassed in.\n\nMultiple names can be passed in with whitespace delimited:\n\necho \u0027scheduler *lock *acpi*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nis also the same as:\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*lock\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*acpi*\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\n\nAppending does just that. It appends to the list.\n\nTo disable all filters simply echo an empty line in:\n\necho \u003e /debugfs/tracing/set_ftrace_filter\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d61f82d06672f57fca410da6f7fffd15867db622",
      "tree": "62ef5573934eaa638c0d39a45d789691aecbd7d3",
      "parents": [
        "3c1720f00bb619302ba19d55986ab565e74d06db"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:47 2008 +0200"
      },
      "message": "ftrace: use dynamic patching for updating mcount calls\n\nThis patch replaces the indirect call to the mcount function\npointer with a direct call that will be patched by the\ndynamic ftrace routines.\n\nOn boot up, the mcount function calls the ftace_stub function.\nWhen the dynamic ftrace code is initialized, the ftrace_stub\nis replaced with a call to the ftrace_record_ip, which records\nthe instruction pointers of the locations that call it.\n\nLater, the ftraced daemon will call kstop_machine and patch all\nthe locations to nops.\n\nWhen a ftrace is enabled, the original calls to mcount will now\nbe set top call ftrace_caller, which will do a direct call\nto the registered ftrace function. This direct call is also patched\nwhen the function that should be called is updated.\n\nAll patching is performed by a kstop_machine routine to prevent any\ntype of race conditions that is associated with modifying code\non the fly.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3c1720f00bb619302ba19d55986ab565e74d06db",
      "tree": "d58aaa54bc8e7a465597f385de36204c3b0b9cf8",
      "parents": [
        "dfa60aba04dae7833d75b2e2be124bb7cfb8239f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:35 2008 +0200"
      },
      "message": "ftrace: move memory management out of arch code\n\nThis patch moves the memory management of the ftrace\nrecords out of the arch code and into the generic code\nmaking the arch code simpler.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b0fc494fae96a7089f3651cb451f461c7291244c",
      "tree": "586412b9ecbd8e3f04e8cd90a31644f94ff3a7d8",
      "parents": [
        "3d0833953e1b98b79ddf491dd49229eef9baeac1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:19 2008 +0200"
      },
      "message": "ftrace: add ftrace_enabled sysctl to disable mcount function\n\nThis patch adds back the sysctl ftrace_enabled. This time it is\ndefaulted to on, if DYNAMIC_FTRACE is configured. When ftrace_enabled\nis disabled, the ftrace function is set to the stub return.\n\nIf DYNAMIC_FTRACE is also configured, on ftrace_enabled \u003d 0,\nthe registered ftrace functions will all be set to jmps, but no more\nnew calls to ftrace recording (used to find the ftrace calling sites)\nwill be called.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3d0833953e1b98b79ddf491dd49229eef9baeac1",
      "tree": "3520cda824bdb58e47ce3e9f43d68249d5cc1a12",
      "parents": [
        "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:09 2008 +0200"
      },
      "message": "ftrace: dynamic enabling/disabling of function calls\n\nThis patch adds a feature to dynamically replace the ftrace code\nwith the jmps to allow a kernel with ftrace configured to run\nas fast as it can without it configured.\n\nThe way this works, is on bootup (if ftrace is enabled), a ftrace\nfunction is registered to record the instruction pointer of all\nplaces that call the function.\n\nLater, if there\u0027s still any code to patch, a kthread is awoken\n(rate limited to at most once a second) that performs a stop_machine,\nand replaces all the code that was called with a jmp over the call\nto ftrace. It only replaces what was found the previous time. Typically\nthe system reaches equilibrium quickly after bootup and there\u0027s no code\npatching needed at all.\n\ne.g.\n\n  call ftrace  /* 5 bytes */\n\nis replaced with\n\n  jmp 3f  /* jmp is 2 bytes and we jump 3 forward */\n3:\n\nWhen we want to enable ftrace for function tracing, the IP recording\nis removed, and stop_machine is called again to replace all the locations\nof that were recorded back to the call of ftrace.  When it is disabled,\nwe replace the code back to the jmp.\n\nAllocation is done by the kthread. If the ftrace recording function is\ncalled, and we don\u0027t have any record slots available, then we simply\nskip that call. Once a second a new page (if needed) is allocated for\nrecording new ftrace function calls.  A large batch is allocated at\nboot up to get most of the calls there.\n\nBecause we do this via stop_machine, we don\u0027t have to worry about another\nCPU executing a ftrace call as we modify it. But we do need to worry\nabout NMI\u0027s so all functions that might be called via nmi must be\nannotated with notrace_nmi. When this code is configured in, the NMI code\nwill not call notrace.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3",
      "tree": "845af8f3c7f8956b4f3591759a0d67248af243a2",
      "parents": [
        "81d68a96a39844853b37f20cc8282d9b65b78ef3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:54 2008 +0200"
      },
      "message": "ftrace: trace preempt off critical timings\n\nAdd preempt off timings. A lot of kernel core code is taken from the RT patch\nlatency trace that was written by Ingo Molnar.\n\nThis adds \"preemptoff\" and \"preemptirqsoff\" to /debugfs/tracing/available_tracers\n\nNow instead of just tracing irqs off, preemption off can be selected\nto be recorded.\n\nWhen this is selected, it shares the same files as irqs off timings.\nOne can either trace preemption off, irqs off, or one or the other off.\n\nBy echoing \"preemptoff\" into /debugfs/tracing/current_tracer, recording\nof preempt off only is performed. \"irqsoff\" will only record the time\nirqs are disabled, but \"preemptirqsoff\" will take the total time irqs\nor preemption are disabled. Runtime switching of these options is now\nsupported by simpling echoing in the appropriate trace name into\n/debugfs/tracing/current_tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "81d68a96a39844853b37f20cc8282d9b65b78ef3",
      "tree": "bbc05f415930c15fb5a1004620bd77585fcec43a",
      "parents": [
        "352ad25aa4a189c667cb2af333948d34692a2d27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:46 2008 +0200"
      },
      "message": "ftrace: trace irq disabled critical timings\n\nThis patch adds latency tracing for critical timings\n(how long interrupts are disabled for).\n\n \"irqsoff\" is added to /debugfs/tracing/available_tracers\n\nNote:\n  tracing_max_latency\n    also holds the max latency for irqsoff (in usecs).\n   (default to large number so one must start latency tracing)\n\n  tracing_thresh\n    threshold (in usecs) to always print out if irqs off\n    is detected to be longer than stated here.\n    If irq_thresh is non-zero, then max_irq_latency\n    is ignored.\n\nHere\u0027s an example of a trace with ftrace_enabled \u003d 0\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1d.s3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1d.s3  100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1d.s3  100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnd this is a trace with ftrace_enabled \u003d\u003d 1\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\n--------------------------------------------------------------------\n latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1dNs3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000])\n swapper-0     1dNs3   46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000])\n swapper-0     1dNs3   47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000])\n swapper-0     1dNs3   47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47)\n swapper-0     1dNs3   97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50)\n swapper-0     1dNs3   98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000])\n swapper-0     1dNs3   99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000])\n swapper-0     1dNs3  101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "352ad25aa4a189c667cb2af333948d34692a2d27",
      "tree": "83a11c626b3818711d3b88061964c9ea603f7b68",
      "parents": [
        "35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:36 2008 +0200"
      },
      "message": "ftrace: tracer for scheduler wakeup latency\n\nThis patch adds the tracer that tracks the wakeup latency of the\nhighest priority waking task.\n\n  \"wakeup\" is added to /debugfs/tracing/available_tracers\n\nAlso added to /debugfs/tracing\n\n  tracing_max_latency\n     holds the current max latency for the wakeup\n\n  wakeup_thresh\n     if set to other than zero, a log will be recorded\n     for every wakeup that takes longer than the number\n     entered in here (usecs for all counters)\n     (deletes previous trace)\n\nExamples:\n\n  (with ftrace_enabled \u003d 0)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 26 us, #2/2, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/0-3 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n   quilt-8551  0d..3    0us+: wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n   quilt-8551  0d..4   26us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n  (with ftrace_enabled \u003d 1)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\n--------------------------------------------------------------------\n latency: 36 us, #45/45, CPU#0 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/1-5 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n    bash-10653 1d..3    0us : wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n    bash-10653 1d..3    1us : try_to_wake_up+0x271/0x2e7 \u003cffffffff80233dcf\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..2    2us : try_to_wake_up+0x296/0x2e7 \u003cffffffff80233df4\u003e (update_rq_clock+0x9/0x20 \u003cffffffff802303f3\u003e)\n    bash-10653 1d..2    2us : update_rq_clock+0x1e/0x20 \u003cffffffff80230408\u003e (__update_rq_clock+0xc/0x90 \u003cffffffff80230366\u003e)\n    bash-10653 1d..2    3us : __update_rq_clock+0x1b/0x90 \u003cffffffff80230375\u003e (sched_clock+0x9/0x29 \u003cffffffff80214529\u003e)\n    bash-10653 1d..2    4us : try_to_wake_up+0x2a6/0x2e7 \u003cffffffff80233e04\u003e (activate_task+0xc/0x3f \u003cffffffff8022ffca\u003e)\n    bash-10653 1d..2    4us : activate_task+0x2d/0x3f \u003cffffffff8022ffeb\u003e (enqueue_task+0xe/0x66 \u003cffffffff8022ff66\u003e)\n    bash-10653 1d..2    5us : enqueue_task+0x5b/0x66 \u003cffffffff8022ffb3\u003e (enqueue_task_rt+0x9/0x3c \u003cffffffff80233351\u003e)\n    bash-10653 1d..2    6us : try_to_wake_up+0x2ba/0x2e7 \u003cffffffff80233e18\u003e (check_preempt_wakeup+0x12/0x99 \u003cffffffff80234f84\u003e)\n[...]\n    bash-10653 1d..5   33us : tracing_record_cmdline+0xcf/0xd4 \u003cffffffff80338aad\u003e (_spin_unlock+0x9/0x33 \u003cffffffff8048d3ec\u003e)\n    bash-10653 1d..5   34us : _spin_unlock+0x19/0x33 \u003cffffffff8048d3fc\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..4   35us : wakeup_sched_switch+0x65/0x2ff \u003cffffffff80339f66\u003e (_spin_lock_irqsave+0xc/0xa9 \u003cffffffff8048d08b\u003e)\n    bash-10653 1d..4   35us : _spin_lock_irqsave+0x19/0xa9 \u003cffffffff8048d098\u003e (add_preempt_count+0xe/0x77 \u003cffffffff8023311a\u003e)\n    bash-10653 1d..4   36us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe [...] was added here to not waste your email box space.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "16444a8a40d4c7b4f6de34af0cae1f76a4f6c901",
      "tree": "9c290bcdbdc1ecf8f578c30b3b36914e14fdaacc",
      "parents": [
        "6e766410c4babd37bc7cd5e25009c179781742c8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:31:58 2008 +0200"
      },
      "message": "ftrace: add basic support for gcc profiler instrumentation\n\nIf CONFIG_FTRACE is selected and /proc/sys/kernel/ftrace_enabled is\nset to a non-zero value the ftrace routine will be called everytime\nwe enter a kernel function that is not marked with the \"notrace\"\nattribute.\n\nThe ftrace routine will then call a registered function if a function\nhappens to be registered.\n\n[ This code has been highly hacked by Steven Rostedt and Ingo Molnar,\n  so don\u0027t blame Arnaldo for all of this ;-) ]\n\nUpdate:\n  It is now possible to register more than one ftrace function.\n  If only one ftrace function is registered, that will be the\n  function that ftrace calls directly. If more than one function\n  is registered, then ftrace will call a function that will loop\n  through the functions to call.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ]
}
