)]}'
{
  "log": [
    {
      "commit": "da4d03020c2af32f73e8bfbab0a66620d85bb9bb",
      "tree": "3ee6d7d69754df7910454315a6011c14d8664d01",
      "parents": [
        "9cc26a261d43e5898287a1f5808132f8f05ceb1c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 17:14:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:07 2009 -0400"
      },
      "message": "tracing: new format for specialized trace points\n\nImpact: clean up and enhancement\n\nThe TRACE_EVENT_FORMAT macro looks quite ugly and is limited in its\nability to save data as well as to print the record out. Working with\nIngo Molnar, we came up with a new format that is much more pleasing to\nthe eye of C developers. This new macro is more C style than the old\nmacro, and is more obvious to what it does.\n\nHere\u0027s the example. The only updated macro in this patch is the\nsched_switch trace point.\n\nThe old method looked like this:\n\n TRACE_EVENT_FORMAT(sched_switch,\n        TP_PROTO(struct rq *rq, struct task_struct *prev,\n                struct task_struct *next),\n        TP_ARGS(rq, prev, next),\n        TP_FMT(\"task %s:%d \u003d\u003d\u003e %s:%d\",\n              prev-\u003ecomm, prev-\u003epid, next-\u003ecomm, next-\u003epid),\n        TRACE_STRUCT(\n                TRACE_FIELD(pid_t, prev_pid, prev-\u003epid)\n                TRACE_FIELD(int, prev_prio, prev-\u003eprio)\n                TRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],\n                                    next_comm,\n                                    TP_CMD(memcpy(TRACE_ENTRY-\u003enext_comm,\n                                                 next-\u003ecomm,\n                                                 TASK_COMM_LEN)))\n                TRACE_FIELD(pid_t, next_pid, next-\u003epid)\n                TRACE_FIELD(int, next_prio, next-\u003eprio)\n        ),\n        TP_RAW_FMT(\"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\")\n        );\n\nThe above method is hard to read and requires two format fields.\n\nThe new method:\n\n /*\n  * Tracepoint for task switches, performed by the scheduler:\n  *\n  * (NOTE: the \u0027rq\u0027 argument is not used by generic trace events,\n  *        but used by the latency tracer plugin. )\n  */\n TRACE_EVENT(sched_switch,\n\n\tTP_PROTO(struct rq *rq, struct task_struct *prev,\n\t\t struct task_struct *next),\n\n\tTP_ARGS(rq, prev, next),\n\n\tTP_STRUCT__entry(\n\t\t__array(\tchar,\tprev_comm,\tTASK_COMM_LEN\t)\n\t\t__field(\tpid_t,\tprev_pid\t\t\t)\n\t\t__field(\tint,\tprev_prio\t\t\t)\n\t\t__array(\tchar,\tnext_comm,\tTASK_COMM_LEN\t)\n\t\t__field(\tpid_t,\tnext_pid\t\t\t)\n\t\t__field(\tint,\tnext_prio\t\t\t)\n\t),\n\n\tTP_printk(\"task %s:%d [%d] \u003d\u003d\u003e %s:%d [%d]\",\n\t\t__entry-\u003eprev_comm, __entry-\u003eprev_pid, __entry-\u003eprev_prio,\n\t\t__entry-\u003enext_comm, __entry-\u003enext_pid, __entry-\u003enext_prio),\n\n\tTP_fast_assign(\n\t\tmemcpy(__entry-\u003enext_comm, next-\u003ecomm, TASK_COMM_LEN);\n\t\t__entry-\u003eprev_pid\t\u003d prev-\u003epid;\n\t\t__entry-\u003eprev_prio\t\u003d prev-\u003eprio;\n\t\tmemcpy(__entry-\u003eprev_comm, prev-\u003ecomm, TASK_COMM_LEN);\n\t\t__entry-\u003enext_pid\t\u003d next-\u003epid;\n\t\t__entry-\u003enext_prio\t\u003d next-\u003eprio;\n\t)\n );\n\nThis macro is called TRACE_EVENT, it is broken up into 5 parts:\n\n TP_PROTO:        the proto type of the trace point\n TP_ARGS:         the arguments of the trace point\n TP_STRUCT_entry: the structure layout of the entry in the ring buffer\n TP_printk:       the printk format\n TP_fast_assign:  the method used to write the entry into the ring buffer\n\nThe structure is the definition of how the event will be saved in the\nring buffer. The printk is used by the internal tracing in case of\nan oops, and the kernel needs to print out the format of the record\nto the console. This the TP_printk gives a means to show the records\nin a human readable format. It is also used to print out the data\nfrom the trace file.\n\nThe TP_fast_assign is executed directly. It is basically like a C function,\nwhere the __entry is the handle to the record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9cc26a261d43e5898287a1f5808132f8f05ceb1c",
      "tree": "cf00e838e7f026d20500d8f90191230ed3f41078",
      "parents": [
        "2939b0469d04ba9ac791aca9a81625d7eb50662b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 16:00:22 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:05 2009 -0400"
      },
      "message": "tracing: use generic __stringify\n\nImpact: clean up\n\nThis removes the custom made STR(x) macros in the tracer and uses\nthe generic __stringify macro instead.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2939b0469d04ba9ac791aca9a81625d7eb50662b",
      "tree": "573f10c39f34c670fdc6832415642738c5afb3f9",
      "parents": [
        "156b5f172a64103bcb13b6d26288388b9019caa3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 15:47:18 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:04 2009 -0400"
      },
      "message": "tracing: replace TP\u003cvar\u003e with TP_\u003cvar\u003e\n\nImpact: clean up\n\nThe macros TPPROTO, TPARGS, TPFMT, TPRAWFMT, and TPCMD all look a bit\nugly. This patch adds an underscore to their names.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "156b5f172a64103bcb13b6d26288388b9019caa3",
      "tree": "e29141720bd9d0e4c722dd3c7dc8c62d5113db43",
      "parents": [
        "7bffc23e56e92c14b787bf4d95249a32085bfed5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 06 10:50:53 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:34:03 2009 -0400"
      },
      "message": "tracing: typecast sizeof and offsetof to unsigned int\n\nImpact: fix compiler warnings\n\nOn x86_64 sizeof and offsetof are treated as long, where as on x86_32\nthey are int. This patch typecasts them to unsigned int to avoid\none arch giving warnings while the other does not.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9de36825b321fe9fe9cf73260554251af579f4ca",
      "tree": "0bde90baa93cb7a1ac09c6ae73d6ec1d67ac2f44",
      "parents": [
        "769b0441f438c4bb4872cb8560eb6fe51bcc09ee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:52:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:12 2009 +0100"
      },
      "message": "tracing: trace_bprintk() cleanups\n\nImpact: cleanup\n\nRemove a few leftovers and clean up the code a bit.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "769b0441f438c4bb4872cb8560eb6fe51bcc09ee",
      "tree": "9908682dfd89e97c3097a7c3adcae35d821e1895",
      "parents": [
        "1ba28e02a18cbdbea123836f6c98efb09cbf59ec"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 06 17:21:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:12 2009 +0100"
      },
      "message": "tracing/core: drop the old trace_printk() implementation in favour of trace_bprintk()\n\nImpact: faster and lighter tracing\n\nNow that we have trace_bprintk() which is faster and consume lesser\nmemory than trace_printk() and has the same purpose, we can now drop\nthe old implementation in favour of the binary one from trace_bprintk(),\nwhich means we move all the implementation of trace_bprintk() to\ntrace_printk(), so the Api doesn\u0027t change except that we must now use\ntrace_seq_bprintk() to print the TRACE_PRINT entries.\n\nSome changes result of this:\n\n- Previously, trace_bprintk depended of a single tracer and couldn\u0027t\n  work without. This tracer has been dropped and the whole implementation\n  of trace_printk() (like the module formats management) is now integrated\n  in the tracing core (comes with CONFIG_TRACING), though we keep the file\n  trace_printk (previously trace_bprintk.c) where we can find the module\n  management. Thus we don\u0027t overflow trace.c\n\n- changes some parts to use trace_seq_bprintk() to print TRACE_PRINT entries.\n\n- change a bit trace_printk/trace_vprintk macros to support non-builtin formats\n  constants, and fix \u0027const\u0027 qualifiers warnings. But this is all transparent for\n  developers.\n\n- etc...\n\nV2:\n\n- Rebase against last changes\n- Fix mispell on the changelog\n\nV3:\n\n- Rebase against last changes (moving trace_printk() to kernel.h)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ba28e02a18cbdbea123836f6c98efb09cbf59ec",
      "tree": "41df06a06c702152902ffd7250f284a6efe9b0da",
      "parents": [
        "1427cdf0592368bdec57276edaf714040ee8744f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 06 17:21:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:11 2009 +0100"
      },
      "message": "tracing: add trace_bprintk()\n\nImpact: add a generic printk() for tracing, like trace_printk()\n\ntrace_bprintk() uses the infrastructure to record events on ring_buffer.\n\n[ fweisbec@gmail.com: ported to latest -tip, made it work if\n  !CONFIG_MODULES, never free the format strings from modules\n  because we can\u0027t keep track of them and conditionnaly create\n  the ftrace format strings section (reported by Steven Rostedt) ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1427cdf0592368bdec57276edaf714040ee8744f",
      "tree": "4b214ee49643db383328cf53a31959eb0627a167",
      "parents": [
        "546e5354a6e4ec760ac03ef1148e9a4762abb5f5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 06 17:21:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:11 2009 +0100"
      },
      "message": "tracing: infrastructure for supporting binary record\n\nImpact: save on memory for tracing\n\nCurrent tracers are typically using a struct(like struct ftrace_entry,\nstruct ctx_switch_entry, struct special_entr etc...)to record a binary\nevent. These structs can only record a their own kind of events.\nA new kind of tracer need a new struct and a lot of code too handle it.\n\nSo we need a generic binary record for events. This infrastructure\nis for this purpose.\n\n[fweisbec@gmail.com: rebase against latest -tip, make it safe while sched\ntracing as reported by Steven Rostedt]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10dd3ebe213c31bff14b4dae3c5d32a76b1fad7c",
      "tree": "251609d532ccbb4c157a2c5c3d7a5b8176eeab8c",
      "parents": [
        "422d3c7a577b15e1384c9d4e72a9540896b685fa"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 06 15:29:04 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 12:07:38 2009 +0100"
      },
      "message": "tracing: fix deadlock when setting set_ftrace_pid\n\nImpact: fix deadlock while using set_ftrace_pid\n\nReproducer:\n\n\t# cd /sys/kernel/debug/tracing\n\t# echo $$ \u003e set_ftrace_pid\n\n\tthen, console becomes hung.\n\nDetails:\n\nwhen writing set_ftracepid, kernel callstack is following\n\n\tftrace_pid_write()\n\t\tmutex_lock(\u0026ftrace_lock);\n\t\tftrace_update_pid_func()\n\t\t\tmutex_lock(\u0026ftrace_lock);\n\t\t\tmutex_unlock(\u0026ftrace_lock);\n\t\tmutex_unlock(\u0026ftrace_lock);\n\nthen, system always deadlocks when ftrace_pid_write() is called.\n\nIn past days, ftrace_pid_write() used ftrace_start_lock, but\ncommit e6ea44e9b4c12325337cd1c06103cd515a1c02b2 consolidated\nftrace_start_lock to ftrace_lock.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c20090306151155.0778.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "422d3c7a577b15e1384c9d4e72a9540896b685fa",
      "tree": "8852c53347ec55c53bea321bd9b9f07cd9cc9d66",
      "parents": [
        "bc722f508a5bcbb65a7bb0c7ce8e3934f5763a1a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 06 10:40:53 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:56:42 2009 +0100"
      },
      "message": "tracing: current tip/master can\u0027t enable ftrace\n\nAfter commit 40ada30f9621fbd831ac2437b9a2a399aad34b00,\n\"make menuconfig\" doesn\u0027t display \"Tracer\" item.\n\nFollowing modification restores it.\n"
    },
    {
      "commit": "bc722f508a5bcbb65a7bb0c7ce8e3934f5763a1a",
      "tree": "d6494e409a671669614e7a08a5328e8def277225",
      "parents": [
        "16097439703bcd38e9fe5608c12add6dacb825ea",
        "770cb24345c0f6e0d47bd2b94aa6d67bea6f8b54"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:40:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:40:37 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "16097439703bcd38e9fe5608c12add6dacb825ea",
      "tree": "9f6572fefdeb3e7c61f701ed9a86979d5525ccd8",
      "parents": [
        "40ada30f9621fbd831ac2437b9a2a399aad34b00",
        "0012693ad4f636c720fed3802027f9427962f540"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:39:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:39:18 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/function-graph-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "770cb24345c0f6e0d47bd2b94aa6d67bea6f8b54",
      "tree": "ec76651c686c02249c1455446801cf2b9d823879",
      "parents": [
        "33b0c229e3abeae00493ed1d6f0b07191977a0a2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:35:29 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:44 2009 -0500"
      },
      "message": "tracing: add format files for ftrace default entries\n\nImpact: allow user apps to read binary format of basic ftrace entries\n\nCurrently, only defined raw events export their formats so a binary\nreader can parse them. There\u0027s no reason that the default ftrace entries\ncan\u0027t export their formats.\n\nThis patch adds a subsystem called \"ftrace\" in the events directory\nthat includes the ftrace entries for basic ftrace recorded items.\n\nThese only have three files in the events directory:\n\n type             : printf\n available_types  : printf\n format           : format for the event entry\n\nFor example:\n\n # cat /debug/tracing/events/ftrace/wakeup/format\nname: wakeup\nID: 3\nformat:\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:unsigned int prev_pid;    offset:12;      size:4;\n        field:unsigned char prev_prio;  offset:16;      size:1;\n        field:unsigned char prev_state; offset:17;      size:1;\n        field:unsigned int next_pid;    offset:20;      size:4;\n        field:unsigned char next_prio;  offset:24;      size:1;\n        field:unsigned char next_state; offset:25;      size:1;\n        field:unsigned int next_cpu;    offset:28;      size:4;\n\nprint fmt: \"%u:%u:%u  \u003d\u003d+ %u:%u:%u [%03u]\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "33b0c229e3abeae00493ed1d6f0b07191977a0a2",
      "tree": "f11127408c678be82545f8c949f49f499c3b6f95",
      "parents": [
        "5e2336a0d47c9661a40cc5ef85135ce1406af6e8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 11:45:43 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:42 2009 -0500"
      },
      "message": "tracing: move print of event format to separate file\n\nImpact: clean up\n\nMove the macro that creates the event format file to a separate header.\nThis will allow the default ftrace events to use this same macro\nto create the formats to read those events.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5e2336a0d47c9661a40cc5ef85135ce1406af6e8",
      "tree": "6d977e4471f8e31245602a26e939368689d2383a",
      "parents": [
        "2002c258faaa8f89543df284fdbaa9e4b171547f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:44:55 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:40 2009 -0500"
      },
      "message": "tracing: make all file_operations const\n\nImpact: cleanup\n\nAll file_operations structures should be constant. No one is going to\nchange them.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "40ada30f9621fbd831ac2437b9a2a399aad34b00",
      "tree": "47df1abc756d9ce33feec3eb5bb601edafbcf14c",
      "parents": [
        "526211bc58c4b3265352801c5a7f469af5c34711"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 21:19:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 21:53:25 2009 +0100"
      },
      "message": "tracing: clean up menu\n\nClean up menu structure, introduce TRACING_SUPPORT switch that signals\nwhether an architecture supports various instrumentation mechanisms.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0012693ad4f636c720fed3802027f9427962f540",
      "tree": "355277518dbdcc8385f374db1a5d5e15301940e0",
      "parents": [
        "c4ef144a9d0803eb0a2d4110ae87e7f34e667ded"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Mar 05 01:49:22 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 12:14:41 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: use the more lightweight local clock\n\nImpact: decrease hangs risks with the graph tracer on slow systems\n\nSince the function graph tracer can spend too much time on timer\ninterrupts, it\u0027s better now to use the more lightweight local\nclock. Anyway, the function graph traces are more reliable on a\nper cpu trace.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c49af243d.06e9300a.53ad.ffff840c@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e1607a00bd082972629d3d68c95c8bcf902b55a",
      "tree": "2751baf5ee286cdec8f4b1afcb7332f4c1f5f454",
      "parents": [
        "53664738c122bfe8b0e489fddaf2ab265c9133c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:24:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:24:48 2009 +0100"
      },
      "message": "tracing: rename ftrace_printk() \u003d\u003e trace_printk()\n\nImpact: cleanup\n\nUse a more generic name - this also allows the prototype to move\nto kernel.h and be generally available to kernel developers who\nwant to do some quick tracing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9d25fe6eaa2c720bb3ea661b660e58d54fa38bf",
      "tree": "8121a9fc4021e86499c404e0b1012a36e8d0b00e",
      "parents": [
        "27d48be84477d2f0a2e2ac3738a3971dece631d5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 22:15:30 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 22:15:30 2009 -0500"
      },
      "message": "tracing: have latency tracers set the latency format\n\nThe latency tracers (irqsoff, preemptoff, preemptirqsoff, and wakeup)\nare pretty useless with the default output format. This patch makes them\nautomatically enable the latency format when they are selected. They\nalso record the state of the latency option, and if it was not enabled\nwhen selected, they disable it on reset.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "27d48be84477d2f0a2e2ac3738a3971dece631d5",
      "tree": "92d4b896df1102b0aaa3c01d71fdecd75faa601f",
      "parents": [
        "5fd73f862468280d4cbb5ba4321502f911f9f89a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:57:29 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:57:29 2009 -0500"
      },
      "message": "tracing: consolidate print_lat_fmt and print_trace_fmt\n\nImpact: clean up\n\nBoth print_lat_fmt and print_trace_fmt do pretty much the same thing\nexcept for one different function call. This patch consolidates the\ntwo functions and adds an if statement to perform the difference.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5fd73f862468280d4cbb5ba4321502f911f9f89a",
      "tree": "3c96f61dea5280784560a8b9252fe13a84149421",
      "parents": [
        "c032ef64d680717e4e8ce3da65da6419a35f8a2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:42:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:42:04 2009 -0500"
      },
      "message": "tracing: remove extra latency_trace method from trace structure\n\nImpact: clean up\n\nThe trace and latency_trace function pointers are identical for\nevery tracer but the function tracer. The differences in the function\ntracer are trivial (latency output puts paranthesis around parent).\n\nThis patch removes the latency_trace pointer and all prints will\nnow just use the trace output function pointer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c032ef64d680717e4e8ce3da65da6419a35f8a2c",
      "tree": "f6d77c0033e9a33f22adac66d939338c55f06525",
      "parents": [
        "e74da5235cec6cb71eb338c987f876ecc793138b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:34:24 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:34:24 2009 -0500"
      },
      "message": "tracing: add latency output format option\n\nWith the removal of the latency_trace file, we lost the ability\nto see some of the finer details in a trace. Like the state of\ninterrupts enabled, the preempt count, need resched, and if we\nare in an interrupt handler, softirq handler or not.\n\nThis patch simply creates an option to bring back the old format.\nThis also removes the warning about an unused variable that held\nthe latency_trace file operations.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e74da5235cec6cb71eb338c987f876ecc793138b",
      "tree": "ba7ba533d7056ba660763c33b5a44a1d61279c99",
      "parents": [
        "2dc5d12b1f43134e9bc5037f69f4739cfdfab93e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:31:11 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:31:11 2009 -0500"
      },
      "message": "tracing: fix seq read from trace files\n\nThe buffer used by trace_seq was updated incorrectly. Instead\nof consuming what was actually read, it consumed the rest of the\nbuffer on reads.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2dc5d12b1f43134e9bc5037f69f4739cfdfab93e",
      "tree": "fd1070a750b7f88e01527b3d808e73f7f9fcb45a",
      "parents": [
        "4f3640f8a358f2183a8c966f299eeb55ca523e06"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:10:05 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:10:05 2009 -0500"
      },
      "message": "tracing: do not return EFAULT if read copied anything\n\nImpact: fix trace read to conform to standards\n\nAndrew Morton, Theodore Tso and H. Peter Anvin brought to my attention\nthat a userspace read should not return -EFAULT if it succeeded in\ncopying anything. It should only return -EFAULT if it failed to copy\nat all.\n\nThis patch modifies the check of copy_from_user and updates the return\ncode appropriately.\n\nI also used H. Peter Anvin\u0027s short cut rule to just test ret \u003d\u003d count.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4f3640f8a358f2183a8c966f299eeb55ca523e06",
      "tree": "ff8b1a10b449fbb823523b09a192e6b5563d56e8",
      "parents": [
        "e543ad76914abec1acf6631604a4154cd7a2ca6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 23:52:42 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:01:45 2009 -0500"
      },
      "message": "ring-buffer: fix timestamp in partial ring_buffer_page_read\n\nIf a partial ring_buffer_page_read happens, then some of the\nincremental timestamps may be lost. This patch writes the\nrecent timestamp into the page that is passed back to the caller.\n\nA partial ring_buffer_page_read is where the full page would not\nbe written back to the user, and instead, just part of the page\nis copied to the user. A full page would be a page swap with the\nring buffer and the timestamps would be correct.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e543ad76914abec1acf6631604a4154cd7a2ca6b",
      "tree": "a2d093fe45ecb663fc1f977c0efc812ec06e1b99",
      "parents": [
        "efed792d6738964f399a508ef9e831cd60fa4657"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 18:20:36 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 18:32:28 2009 -0500"
      },
      "message": "tracing: add cpu_file intialization for ftrace_dump\n\nImpact: fix to ftrace_dump output corruption\n\nThe commit: b04cc6b1f6398b0e0b60d37e27ce51b4899672ec\n  tracing/core: introduce per cpu tracing files\n\nadded a new field to the iterator called cpu_file. This was a handle\nto differentiate between the per cpu trace output files and the\nall cpu \"trace\" file. The all cpu \"trace\" file required setting this\nto TRACE_PIPE_ALL_CPU.\n\nThe problem is that the ftrace_dump sets up its own iterator but was\nnot updated to handle this change. The result was only CPU 0 printing\nout on crash and a lot of \"\u003c0\u003e\"\u0027s also being printed.\n\nReported-by: Thomas Gleixner \u003ctglx@linuxtronix.de\u003e\nTested-by: Darren Hart \u003cdvhtc@us.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "efed792d6738964f399a508ef9e831cd60fa4657",
      "tree": "b4b5e472bafb3d5d0d8ea26680e1d8cc87365c30",
      "parents": [
        "28b1bd1cbc33cae95a309691d814399a69cf3070"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Mar 04 12:32:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:58 2009 +0100"
      },
      "message": "tracing: add lockdep tracepoints for lock acquire/release\n\nAugment the traces with lock names when lockdep is available:\n\n 1)               |  down_read_trylock() {\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   4.201 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   3.523 us    |    }\n 1)               |  /* lock_acquire: try read \u0026mm-\u003emmap_sem */\n 1) + 13.386 us   |  }\n 1)   1.635 us    |  find_vma();\n 1)               |  handle_mm_fault() {\n 1)               |    __do_fault() {\n 1)               |      filemap_fault() {\n 1)               |        find_lock_page() {\n 1)               |          find_get_page() {\n 1)               |            /* lock_acquire: read rcu_read_lock */\n 1)               |            /* lock_release: rcu_read_lock */\n 1)   5.697 us    |          }\n 1)   8.158 us    |        }\n 1) + 11.079 us   |      }\n 1)               |      _spin_lock() {\n 1)               |        /* lock_acquire: __pte_lockptr(page) */\n 1)   3.949 us    |      }\n 1)   1.460 us    |      page_add_file_rmap();\n 1)               |      _spin_unlock() {\n 1)               |        /* lock_release: __pte_lockptr(page) */\n 1)   3.115 us    |      }\n 1)               |      unlock_page() {\n 1)   1.421 us    |        page_waitqueue();\n 1)   1.220 us    |        __wake_up_bit();\n 1)   6.519 us    |      }\n 1) + 34.328 us   |    }\n 1) + 37.452 us   |  }\n 1)               |  up_read() {\n 1)               |  /* lock_release: \u0026mm-\u003emmap_sem */\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   3.865 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   8.562 us    |    }\n 1) + 17.370 us   |  }\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003d?ISO-8859-1?Q?T\u003dF6r\u003dF6k?\u003d Edwin \u003cedwintorok@gmail.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236166375.5330.7209.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cadf9135eb3b6d84b6427314be827ddd443c308",
      "tree": "919e201f615b8de6d0263ded5693bad326196671",
      "parents": [
        "474d32b68d6d842f3e710e9ae9fe2568c53339f8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 01 22:20:19 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 21:01:55 2009 -0500"
      },
      "message": "tracing: add binary buffer files for use with splice\n\nImpact: new feature\n\nThis patch creates a directory of files that correspond to the\nper CPU ring buffers. These are binary files and are made to\nbe used with splice. This is the fastest way to extract data from\nthe ftrace ring buffers.\n\nThanks to Jiaying Zhang for pushing me to get this code fixed,\n and to Eduard - Gabriel Munteanu for his splice code that helped\n me debug my code.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "474d32b68d6d842f3e710e9ae9fe2568c53339f8",
      "tree": "674376b2f7a45cf6558879a4985398397dc96e79",
      "parents": [
        "e3d6bf0a0781a269f34250fd41e0d3dbfe540cf1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 19:51:40 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:52:27 2009 -0500"
      },
      "message": "ring-buffer: make ring_buffer_read_page read from start on partial page\n\nImpact: dont leave holes in read buffer page\n\nThe ring_buffer_read_page swaps a given page with the reader page\nof the ring buffer, if certain conditions are set:\n\n 1) requested length is big enough to hold entire page data\n\n 2) a writer is not currently on the page\n\n 3) the page is not partially consumed.\n\nInstead of swapping with the supplied page. It copies the data to\nthe supplied page instead. But currently the data is copied in the\nsame offset as the source page. This causes a hole at the start\nof the reader page. This complicates the use of this function.\nInstead, it should copy the data at the beginning of the function\nand update the index fields accordingly.\n\nOther small clean ups are also done in this patch.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e3d6bf0a0781a269f34250fd41e0d3dbfe540cf1",
      "tree": "71ae10423f61c30d8a6c9cb08779b2f1066c89ad",
      "parents": [
        "ef7a4a161472b952941bf78855a9cd95703c024e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 13:53:07 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:52:01 2009 -0500"
      },
      "message": "ring-buffer: replace sizeof of event header with offsetof\n\nImpact: fix to possible alignment problems on some archs.\n\nSome arch compilers include an NULL char array in the sizeof field.\nSince the ring_buffer_event type includes one of these, it is better\nto use the \"offsetof\" instead, to avoid strange bugs on these archs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ef7a4a161472b952941bf78855a9cd95703c024e",
      "tree": "17145213ece6872d34951a2d33af6670fc2ae453",
      "parents": [
        "41be4da4e85e58520b934040966a6ae919c66c2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 00:27:49 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:51:24 2009 -0500"
      },
      "message": "ring-buffer: fix ring_buffer_read_page\n\nThe ring_buffer_read_page was broken if it were to only copy part\nof the page. This patch fixes that up as well as adds a parameter\nto allow a length field, in order to only copy part of the buffer page.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "41be4da4e85e58520b934040966a6ae919c66c2d",
      "tree": "5a5b0225111a8e0c083ce9eb129f9786a335a92e",
      "parents": [
        "633ddaa7f471e9db181f993c1458d6f4bae321ca"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 20:56:48 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:50:54 2009 -0500"
      },
      "message": "ring-buffer: reset write field for ring_buffer_read_page\n\nImpact: fix ring_buffer_read_page\n\nAfter a page is swapped into the ring buffer, the write field must\nalso be reset.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "633ddaa7f471e9db181f993c1458d6f4bae321ca",
      "tree": "2bf2e419c004cdbce77b1ba3b4cbd5c28cf45bd7",
      "parents": [
        "c79a61f55773d2519fd0525bf58385f7d20752d3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 09:43:50 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 09:43:50 2009 -0500"
      },
      "message": "tracing: fix return value to registering events\n\nThe registering of events had the return value check backwards.\nA zero returned is success, the check had it as a failure.\n\nThis patch also fixes a missing \"\\n\" in the warning that the check\nfailed.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "96ccd21cd13140221bda74a4fc4e53ffeba7c7d4",
      "tree": "28a32932731fea14d2ef8ea39dd00cde3ffd6be7",
      "parents": [
        "c5e4e19271edfdf1abd4184933d40d646da6a091"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:22:21 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:22:21 2009 -0500"
      },
      "message": "tracing: add print format to event trace format files\n\nThis patch adds the internal print format used to print the raw events\nto the event trace point format file.\n\n # cat /debug/tracing/events/sched/sched_switch/format\nname: sched_switch\nID: 29\nformat:\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nprint fmt: \"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c5e4e19271edfdf1abd4184933d40d646da6a091",
      "tree": "1ef485d68971b365a361638df57ee663c631b88f",
      "parents": [
        "91729ef96661bfa7dc53923746cd90b62d5495cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:10:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:10:02 2009 -0500"
      },
      "message": "tracing: add trace name and id to event formats\n\nTo be able to identify the trace in the binary format output, the\nid of the trace event (which is dynamically assigned) must also be listed.\n\nThis patch adds the name of the trace point as well as the id assigned.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "91729ef96661bfa7dc53923746cd90b62d5495cc",
      "tree": "421dcc26559806162b911e09a47f82012833ab89",
      "parents": [
        "981d081ec8b958b7d962ee40d433581a55d40fc5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:03:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:03:01 2009 -0500"
      },
      "message": "tracing: add ftrace headers to event format files\n\nThis patch includes the ftrace header to the event formats files:\n\n # cat /debug/tracing/events/sched/sched_switch/format\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nA blank line is used as a deliminator between the ftrace header and the\ntrace point fields.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "981d081ec8b958b7d962ee40d433581a55d40fc5",
      "tree": "366aa5da7dc98cc2354002946e6f19ec60c02301",
      "parents": [
        "f9520750c4c9924c14325cd951efae5fae58104c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 13:53:59 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:27:27 2009 -0500"
      },
      "message": "tracing: add format file to describe event struct fields\n\nThis patch adds the \"format\" file to the trace point event directory.\nThis is based off of work by Tom Zanussi, in which a file is exported\nto be tread from user land such that a user space app may read the\nbinary record stored in the ring buffer.\n\n # cat /debug/tracing/events/sched/sched_switch/format\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nIdea-from: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f9520750c4c9924c14325cd951efae5fae58104c",
      "tree": "b6958c13894816db9388f856f101e9f67b3bf1a4",
      "parents": [
        "11a241a3302277db05561e01477528629d806c4e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:04:40 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:08:51 2009 -0500"
      },
      "message": "tracing: make trace_seq_reset global and rename to trace_seq_init\n\nImpact: clean up\n\nThe trace_seq functions may be used separately outside of the ftrace\niterator. The trace_seq_reset is needed for these operations.\n\nThis patch also renames trace_seq_reset to the more appropriate\ntrace_seq_init.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "11a241a3302277db05561e01477528629d806c4e",
      "tree": "c48e1bf3c52a94dfa27d301a748ed7d181fc65f9",
      "parents": [
        "d20e3b03842bfeb9d21817ff19054c277cc3eac0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 11:49:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 11:49:04 2009 -0500"
      },
      "message": "tracing: add protection around modify trace event fields\n\nThe trace event objects are currently not proctected against\nreentrancy. This patch adds a mutex around the modifications of\nthe trace event fields.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "d20e3b03842bfeb9d21817ff19054c277cc3eac0",
      "tree": "5de7ef8a95f9391a264df358336842c9301f3868",
      "parents": [
        "f2034f1e1adaac6713a6d48b5a2d4f3aa3e63ccb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 10:53:15 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 10:53:15 2009 -0500"
      },
      "message": "tracing: add TRACE_FIELD_SPECIAL to record complex entries\n\nTom Zanussi pointed out that the simple TRACE_FIELD was not enough to\nrecord trace data that required memcpy. This patch addresses this issue\nby adding a TRACE_FIELD_SPECIAL. The format is similar to TRACE_FIELD\nbut looks like so:\n\n  TRACE_FIELD_SPECIAL(type_item, item, cmd)\n\nWhat TRACE_FIELD gave was:\n\n  TRACE_FIELD(type, item, assign)\n\nThe TRACE_FIELD would be used in declaring a structure:\n\n  struct {\n\ttype\titem;\n  };\n\nAnd later assign it via:\n\n  entry-\u003eitem \u003d assign;\n\nWhat TRACE_FIELD_SPECIAL gives us is:\n\nIn the declaration of the structure:\n\n  struct {\n\ttype_item;\n  };\n\nAnd the assignment:\n\n  cmd;\n\nThis change log will explain the one example used in the patch:\n\n TRACE_EVENT_FORMAT(sched_switch,\n\tTPPROTO(struct rq *rq, struct task_struct *prev,\n\t\tstruct task_struct *next),\n\tTPARGS(rq, prev, next),\n\tTPFMT(\"task %s:%d \u003d\u003d\u003e %s:%d\",\n\t      prev-\u003ecomm, prev-\u003epid, next-\u003ecomm, next-\u003epid),\n\tTRACE_STRUCT(\n\t\tTRACE_FIELD(pid_t, prev_pid, prev-\u003epid)\n\t\tTRACE_FIELD(int, prev_prio, prev-\u003eprio)\n\t\tTRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],\n\t\t\t\t    next_comm,\n\t\t\t\t    TPCMD(memcpy(TRACE_ENTRY-\u003enext_comm,\n\t\t\t\t\t\t next-\u003ecomm,\n\t\t\t\t\t\t TASK_COMM_LEN)))\n\t\tTRACE_FIELD(pid_t, next_pid, next-\u003epid)\n\t\tTRACE_FIELD(int, next_prio, next-\u003eprio)\n\t),\n\tTPRAWFMT(\"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\")\n\t);\n\n The struct will be create as:\n\n  struct {\n\tpid_t\t\tprev_pid;\n\tint\t\tprev_prio;\n\tchar next_comm[TASK_COMM_LEN];\n\tpid_t\t\tnext_pid;\n\tint\t\tnext_prio;\n  };\n\nNote the TRACE_ENTRY in the cmd part of TRACE_SPECIAL. TRACE_ENTRY will\nbe set by the tracer to point to the structure inside the trace buffer.\n\n  entry-\u003eprev_pid\t\u003d prev-\u003epid;\n  entry-\u003eprev_prio\t\u003d prev-\u003eprio;\n  memcpy(entry-\u003enext_comm, next-\u003ecomm, TASK_COMM_LEN);\n  entry-\u003enext_pid\t\u003d next-\u003epid;\n  entry-\u003enext_prio\t\u003d next-\u003eprio\n\nReported-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "fd99498989f3b3feeab89dcadf537138ba136d24",
      "tree": "9470e9b4e886466511d47a70281e77e5a8c674ff",
      "parents": [
        "c32e827b25054cb17b79cf97fb5e63ae4ce2223c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:41:25 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 04:04:03 2009 -0500"
      },
      "message": "tracing: add raw fast tracing interface for trace events\n\nThis patch adds the interface to enable the C style trace points.\nIn the directory /debugfs/tracing/events/subsystem/event\nWe now have three files:\n\n enable : values 0 or 1 to enable or disable the trace event.\n\n available_types: values \u0027raw\u0027 and \u0027printf\u0027 which indicate the tracing\n       types available for the trace point. If a developer does not\n       use the TRACE_EVENT_FORMAT macro and just uses the TRACE_FORMAT\n       macro, then only \u0027printf\u0027 will be available. This file is\n       read only.\n\n type: values \u0027raw\u0027 or \u0027printf\u0027. This indicates which type of tracing\n       is active for that trace point. \u0027printf\u0027 is the default and\n       if \u0027raw\u0027 is not available, this file is read only.\n\n # echo raw \u003e /debug/tracing/events/sched/sched_wakeup/type\n # echo 1 \u003e /debug/tracing/events/sched/sched_wakeup/enable\n\n Will enable the C style tracing for the sched_wakeup trace point.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c32e827b25054cb17b79cf97fb5e63ae4ce2223c",
      "tree": "9a79a8662d88557303a671d147f80038b5fd87dc",
      "parents": [
        "ef5580d0fffce6e0a01043bac0625128b5d409a7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 19:12:30 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:09:32 2009 -0500"
      },
      "message": "tracing: add raw trace point recording infrastructure\n\nImpact: lower overhead tracing\n\nThe current event tracer can automatically pick up trace points\nthat are registered with the TRACE_FORMAT macro. But it required\na printf format string and parsing. Although, this adds the ability\nto get guaranteed information like task names and such, it took\na hit in overhead processing. This processing can add about 500-1000\nnanoseconds overhead, but in some cases that too is considered\ntoo much and we want to shave off as much from this overhead as\npossible.\n\nTom Zanussi recently posted tracing patches to lkml that are based\non a nice idea about capturing the data via C structs using\nSTRUCT_ENTER, STRUCT_EXIT type of macros.\n\nI liked that method very much, but did not like the implementation\nthat required a developer to add data/code in several disjoint\nlocations.\n\nThis patch extends the event_tracer macros to do a similar \"raw C\"\napproach that Tom Zanussi did. But instead of having the developers\nneeding to tweak a bunch of code all over the place, they can do it\nall in one macro - preferably placed near the code that it is\ntracing. That makes it much more likely that tracepoints will be\nmaintained on an ongoing basis by the code they modify.\n\nThe new macro TRACE_EVENT_FORMAT is created for this approach. (Note,\na developer may still utilize the more low level DECLARE_TRACE macros\nif they don\u0027t care about getting their traces automatically in the event\ntracer.)\n\nThey can also use the existing TRACE_FORMAT if they don\u0027t need to code\nthe tracepoint in C, but just want to use the convenience of printf.\n\nSo if the developer wants to \"hardwire\" a tracepoint in the fastest\npossible way, and wants to acquire their data via a user space utility\nin a raw binary format, or wants to see it in the trace output but not\nsacrifice any performance, then they can implement the faster but\nmore complex TRACE_EVENT_FORMAT macro.\n\nHere\u0027s what usage looks like:\n\n  TRACE_EVENT_FORMAT(name,\n\tTPPROTO(proto),\n\tTPARGS(args),\n\tTPFMT(fmt, fmt_args),\n\tTRACE_STUCT(\n\t\tTRACE_FIELD(type1, item1, assign1)\n\t\tTRACE_FIELD(type2, item2, assign2)\n\t\t\t[...]\n\t),\n\tTPRAWFMT(raw_fmt)\n\t);\n\nNote name, proto, args, and fmt, are all identical to what TRACE_FORMAT\nuses.\n\n name: is the unique identifier of the trace point\n proto: The proto type that the trace point uses\n args: the args in the proto type\n fmt: printf format to use with the event printf tracer\n fmt_args: the printf argments to match fmt\n\n TRACE_STRUCT starts the ability to create a structure.\n Each item in the structure is defined with a TRACE_FIELD\n\n  TRACE_FIELD(type, item, assign)\n\n type: the C type of item.\n item: the name of the item in the stucture\n assign: what to assign the item in the trace point callback\n\n raw_fmt is a way to pretty print the struct. It must match\n  the order of the items are added in TRACE_STUCT\n\n An example of this would be:\n\n TRACE_EVENT_FORMAT(sched_wakeup,\n\tTPPROTO(struct rq *rq, struct task_struct *p, int success),\n\tTPARGS(rq, p, success),\n\tTPFMT(\"task %s:%d %s\",\n\t      p-\u003ecomm, p-\u003epid, success?\"succeeded\":\"failed\"),\n\tTRACE_STRUCT(\n\t\tTRACE_FIELD(pid_t, pid, p-\u003epid)\n\t\tTRACE_FIELD(int, success, success)\n\t),\n\tTPRAWFMT(\"task %d success\u003d%d\")\n\t);\n\n This creates us a unique struct of:\n\n struct {\n\tpid_t\t\tpid;\n\tint\t\tsuccess;\n };\n\n And the way the call back would assign these values would be:\n\n\tentry-\u003epid \u003d p-\u003epid;\n\tentry-\u003esuccess \u003d success;\n\nThe nice part about this is that the creation of the assignent is done\nvia macro magic in the event tracer.  Once the TRACE_EVENT_FORMAT is\ncreated, the developer will then have a faster method to record\ninto the ring buffer. They do not need to worry about the tracer itself.\n\nThe developer would only need to touch the files in include/trace/*.h\n\nAgain, I would like to give special thanks to Tom Zanussi for this\nnice idea.\n\nIdea-from: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ef5580d0fffce6e0a01043bac0625128b5d409a7",
      "tree": "bc6ca68064d6b5c9853227ef876b391cc8b0c939",
      "parents": [
        "3d7ba938da8481b4f7f9ed3d943dbae49389b284"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 19:38:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:06:44 2009 -0500"
      },
      "message": "tracing: add interface to write into current tracer buffer\n\nRight now all tracers must manage their own trace buffers. This was\nto enforce tracers to be independent in case we finally decide to\nallow each tracer to have their own trace buffer.\n\nBut now we are adding event tracing that writes to the current tracer\u0027s\nbuffer. This adds an interface to allow events to write to the current\ntracer buffer without having to manage its own. Since event tracing\nhas no \"tracer\", and is just a way to hook into any other tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b628b3e629b1436710e59a21cc020fbb04a52ce1",
      "tree": "43cbe737f8d81c8499c406961603e6be1e2dfc05",
      "parents": [
        "6ecc2d1ca39177edb6fbdb7412948b0e9f409d02"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 23:32:58 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:05:40 2009 -0500"
      },
      "message": "tracing: make the set_event and available_events subsystem aware\n\nThis patch makes the event files, set_event and available_events\naware of the subsystem.\n\nNow you can enable an entire subsystem with:\n\n  echo \u0027irq:*\u0027 \u003e set_event\n\nNote: the \u0027*\u0027 is not needed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "6ecc2d1ca39177edb6fbdb7412948b0e9f409d02",
      "tree": "336a12a2f3db016f967717e1cb06e9171a239ce5",
      "parents": [
        "eb594e45f6979cd10b18d87f7b3f02119e00a108"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 21:33:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:59:43 2009 -0500"
      },
      "message": "tracing: add subsystem level to trace events\n\nIf a trace point header defines TRACE_SYSTEM, then it will add the\nfollowing trace points into that event system.\n\nIf include/trace/irq_event_types.h has:\n\n #define TRACE_SYSTEM irq\n\nat the top and\n\n #undef TRACE_SYSTEM\n\nat the bottom, then a directory \"irq\" will be created in the\n/debug/tracing/events directory. Inside that directory will contain the\ntwo trace points that are defined in include/trace/irq_event_types.h.\n\nOnly adding the above to irq and not to sched, we get:\n\n # ls /debug/tracing/events/\nirq                     sched_process_exit  sched_signal_send  sched_wakeup_new\nsched_kthread_stop      sched_process_fork  sched_switch\nsched_kthread_stop_ret  sched_process_free  sched_wait_task\nsched_migrate_task      sched_process_wait  sched_wakeup\n\n # ls /debug/tracing/events/irq\nirq_handler_entry  irq_handler_exit\n\nIf we add #define TRACE_SYSTEM sched to the trace/sched_event_types.h\nthen the rest of the trace events will be put in a sched directory\nwithin the events directory.\n\nI\u0027ve been playing with this idea of the subsystem for a while, but\nrecently Tom Zanussi posted some patches to lkml that included this\nmethod. Tom\u0027s approach was clean and got me to finally put some effort\nto clean up the event trace points.\n\nThanks to Tom Zanussi for demonstrating how nice the subsystem\nmethod is.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "eb594e45f6979cd10b18d87f7b3f02119e00a108",
      "tree": "eb27cea51205ad527a0b1582c9b02d434f7129bc",
      "parents": [
        "0cfe82451dfa3ebf4e69158f2eb450f2fbb6b715"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 17:36:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:58:50 2009 -0500"
      },
      "message": "tracing: move trace point formats to files in include/trace directory\n\nImpact: clean up\n\nTo further facilitate the ease of adding trace points for developers, this\npatch creates include/trace/trace_events.h and\ninclude/trace/trace_event_types.h.\n\nThe former file will hold the trace/\u003ctype\u003e.h files and the latter will hold\nthe trace/\u003ctype\u003e_event_types.h files.\n\nTo create new tracepoints and to have them automatically\nappear in the event tracer, a developer makes the trace/\u003ctype\u003e.h file\nwhich includes \u003clinux/tracepoint.h\u003e and the trace/\u003ctype\u003e_event_types.h file.\n\nThe trace/\u003ctype\u003e_event_types.h file will hold the TRACE_FORMAT\nmacros.\n\nThen add the trace/\u003ctype\u003e.h file to trace/trace_events.h,\nand add the trace/\u003ctype\u003e_event_types.h to the trace_event_types.h file.\n\nNo need to modify files elsewhere.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0cfe82451dfa3ebf4e69158f2eb450f2fbb6b715",
      "tree": "fc2db4892024f1d896f8ea0de3c4903a1c6543da",
      "parents": [
        "5c6a3ae1b4beebb56e2916b84f1208d96a9e32ff"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 10:51:10 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 10:51:10 2009 -0500"
      },
      "message": "tracing: replace kzalloc with kcalloc\n\nImpact: clean up\n\nkcalloc is a better approach to allocate a NULL array.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5c6a3ae1b4beebb56e2916b84f1208d96a9e32ff",
      "tree": "6267a70386ce9e97e0034eea3754ea24429e971c",
      "parents": [
        "85a2f9b46f8cd8aaa11c64c715e1ea3ec27ec486"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:22:21 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:22:21 2009 -0500"
      },
      "message": "tracing: use newline separator for trace options list\n\nImpact: clean up\n\nInstead of listing the trace options like:\n\n # cat /debug/tracing/trace_options\nprint-parent nosym-offset nosym-addr noverbose noraw nohex nobin noblock nostacktrace nosched-tree ftrace_printk noftrace_preempt nobranch annotate nouserstacktrace nosym-userobj\n\nWe now list them like:\n\n # cat /debug/tracing/trace_options\nprint-parent\nnosym-offset\nnosym-addr\nnoverbose\nnoraw\nnohex\nnobin\nnoblock\nnostacktrace\nnosched-tree\nftrace_printk\nnoftrace_preempt\nnobranch\nannotate\nnouserstacktrace\nnosym-userobj\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "85a2f9b46f8cd8aaa11c64c715e1ea3ec27ec486",
      "tree": "76079c21b3bb5763c19eb617f9e29139789cc903",
      "parents": [
        "d8e83d26b5ab3b31ee0ff6d093a2627707a1e221"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:12:38 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:12:38 2009 -0500"
      },
      "message": "tracing: use pointer error returns for __tracing_open\n\nImpact: fix compile warning and clean up\n\nWhen I first wrote __tracing_open, instead of passing the error\ncode via the ERR_PTR macros, I lazily used a separate parameter\nto hold the return for errors.\n\nWhen Frederic Weisbecker updated that function, he used the Linux\nkernel ERR_PTR for the returns. This caused the parameter return\nto possibly not be initialized on error. gcc correctly pointed this\nout with a warning.\n\nThis patch converts the entire function to use the Linux kernel\nERR_PTR macro methods.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "d8e83d26b5ab3b31ee0ff6d093a2627707a1e221",
      "tree": "a8a24753ca24db4f3dd9bb887962e4cdcffac314",
      "parents": [
        "577b785f55168d5acb3d123ba41bfe8d7981e044"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 23:55:58 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 23:55:58 2009 -0500"
      },
      "message": "tracing: add protection around open use of current_tracer\n\nImpact: fix to possible race conditions\n\nThere\u0027s some uses of current_tracer that is not protected by the\ntrace_types_lock. There is a small chance that a sysadmin changes\nthe tracer while the current_tracer is being referenced.\n\nIf the race is hit, it is unlikely to cause any harm since the\ntracers are constant and are not freed. But some strang side\neffects may occur.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "577b785f55168d5acb3d123ba41bfe8d7981e044",
      "tree": "6ae99a6f38fffda2c2b678a55f329d782337afbc",
      "parents": [
        "a8259075074fb09c230b4cd2c8d3ee3c49d6ecd1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 23:43:05 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 23:43:05 2009 -0500"
      },
      "message": "tracing: add tracer dependent options to options directory\n\nThis patch adds the tracer dependent options dynamically to the\noptions directory when the tracer is activated. These options are\nremoved when the tracer is deactivated.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "a8259075074fb09c230b4cd2c8d3ee3c49d6ecd1",
      "tree": "edd6a6ab5f0365e9f93f7e992e29ced3136eaaf9",
      "parents": [
        "5d0859cef29167d45dc6cf89d19712145e6005d6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 22:19:12 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 26 22:22:46 2009 -0500"
      },
      "message": "tracing: add options directory and core option files\n\nThis patch creates an options directory in the debugfs, that contains\nthe available tracing options. These files contain 1 or 0, where 1\nis the option is enabled and 0 it is disabled.\n\nSimply echoing in 1 will enable the option and 0 will disable it.\nThis patch only contains the core options, not the tracer options.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "14131f2f98ac350ee9e73faed916d2238a8b6a0d",
      "tree": "bf490d104276142e914f1245bbc9f44cb0d2bc9b",
      "parents": [
        "6409c4da289d6905f7ae2bd0630438368439bda2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 18:47:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 18:44:06 2009 +0100"
      },
      "message": "tracing: implement trace_clock_*() APIs\n\nImpact: implement new tracing timestamp APIs\n\nAdd three trace clock variants, with differing scalability/precision\ntradeoffs:\n\n -   local: CPU-local trace clock\n -  medium: scalable global clock with some jitter\n -  global: globally monotonic, serialized clock\n\nMake the ring-buffer use the local trace clock internally.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "af39241b90a345556b8884adff87096afe71b050",
      "tree": "a913e3f15b1fb91555b5cb5899270274ce4c2c46",
      "parents": [
        "8656e7a2fa6afcd8682990f804a2a9674568738f"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 26 10:11:05 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 18:43:50 2009 +0100"
      },
      "message": "tracing, genirq: add irq enter and exit trace events\n\nImpact: add new tracepoints\n\nAdd them to the generic IRQ code, that way every architecture\ngets these new tracepoints, not just x86.\n\nUsing Steve\u0027s new \u0027TRACE_FORMAT\u0027, I can get function graph\ntrace as follows using the original two IRQ tracepoints:\n\n 3)               |    handle_IRQ_event() {\n 3)               |    /* (irq_handler_entry) irq\u003d28 handler\u003deth0 */\n 3)               |    e1000_intr_msi() {\n 3)   2.460 us    |      __napi_schedule();\n 3)   9.416 us    |    }\n 3)               |    /* (irq_handler_exit) irq\u003d28 handler\u003deth0 return\u003dhandled */\n 3) + 22.935 us   |  }\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8656e7a2fa6afcd8682990f804a2a9674568738f",
      "tree": "4577aacda59cec3e71bc0cd97c0f18c823b5743e",
      "parents": [
        "f4abfb8d0da70e436013e5799338357e1e6a0832"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Feb 26 00:41:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 14:04:08 2009 +0100"
      },
      "message": "tracing/core: make the per cpu trace files in per cpu directories\n\nImpact: restructure the VFS layout of per CPU trace buffers\n\nThe per cpu trace files are all in a single directory:\n/debug/tracing/per_cpu. In case of a large number of cpu, the\ncontent of this directory becomes messy so we create now one\ndirectory per cpu inside /debug/tracing/per_cpu which contain\neach their own trace_pipe and trace files.\n\nIe:\n\n /debug/tracing$ ls -R per_cpu\n per_cpu:\n cpu0  cpu1\n\n per_cpu/cpu0:\n trace  trace_pipe\n\n per_cpu/cpu1:\n trace  trace_pipe\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4abfb8d0da70e436013e5799338357e1e6a0832",
      "tree": "55f087b8e29f64694de84afa09563ad2c0acdd42",
      "parents": [
        "e36b1e136aa8f8c42fa6b96848c9c6bcaf2c269c",
        "3cdfdf91fcc77cfc82592e2b5c2ab35abe819c41"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 03:48:44 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 03:48:44 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "e36b1e136aa8f8c42fa6b96848c9c6bcaf2c269c",
      "tree": "d591a09c68a4b94f25f59d274fd8aea7ac476393",
      "parents": [
        "d7350c3f45694104e820041969c8185c5f99e57c",
        "2d542cf34264ac92e9e7ac55c0b096b066d569d2",
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 03:47:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 03:47:27 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/hw-branch-tracing\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "eef62a6826b8ab530cefff5aa55c1661a209c803",
      "tree": "f24c7f08b9a6ed443c09f26509cf2cf26fb8a19c",
      "parents": [
        "d7350c3f45694104e820041969c8185c5f99e57c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 25 15:49:52 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 25 21:44:22 2009 -0500"
      },
      "message": "tracing: rename DEFINE_TRACE_FMT to just TRACE_FORMAT\n\nThere\u0027s been a bit confusion to whether DEFINE/DECLARE_TRACE_FMT should\nbe a DEFINE or a DECLARE. Ingo Molnar suggested simply calling it\nTRACE_FORMAT.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "d7350c3f45694104e820041969c8185c5f99e57c",
      "tree": "7aaed9e59f6d33c82e0b62c21f9d1bda9f094b4e",
      "parents": [
        "b04cc6b1f6398b0e0b60d37e27ce51b4899672ec"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 25 06:13:16 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 13:40:58 2009 +0100"
      },
      "message": "tracing/core: make the read callbacks reentrants\n\nNow that several per-cpu files can be read or spliced at the\nsame, we want the read/splice callbacks for tracing files to be\nreentrants.\n\nUntil now, a single global mutex (trace_types_lock) serialized\nthe access to tracing_read_pipe(), tracing_splice_read_pipe(),\nand the seq helpers.\n\nIe: it means that if a user tries to read trace_pipe0 and\ntrace_pipe1 at the same time, the access to the function\ntracing_read_pipe() is contended and one reader must wait for\nthe other to finish its read call.\n\nThe trace_type_lock mutex is mostly here to serialize the access\nto the global current tracer (current_trace), which can be\nchanged concurrently. Although the iter struct keeps a private\npointer to this tracer, its callbacks can be changed by another\nfunction.\n\nThe method used here is to not keep anymore private reference to\nthe tracer inside the iterator but to make a copy of it inside\nthe iterator. Then it checks on subsequents read calls if the\ntracer has changed. This is not costly because the current\ntracer is not expected to be changed often, so we use a branch\nprediction for that.\n\nMoreover, we add a private mutex to the iterator (there is one\niterator per file descriptor) to serialize the accesses in case\nof multiple consumers per file descriptor (which would be a\nsilly idea from the user). Note that this is not to protect the\nring buffer, since the ring buffer already serializes the\nreaders accesses. This is to prevent from traces weirdness in\ncase of concurrent consumers. But these mutexes can be dropped\nanyway, that would not result in any crash. Just tell me what\nyou think about it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b04cc6b1f6398b0e0b60d37e27ce51b4899672ec",
      "tree": "61d5bd59b364913f5a124d25925b908c5deaf871",
      "parents": [
        "2b1b858f690d6369a59ad241335eeedec6eb0c8c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 25 03:22:28 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 13:40:58 2009 +0100"
      },
      "message": "tracing/core: introduce per cpu tracing files\n\nImpact: split up tracing output per cpu\n\nCurrently, on the tracing debugfs directory, three files are\navailable to the user to let him extracting the trace output:\n\n- trace is an iterator through the ring-buffer. It\u0027s a reader\n  but not a consumer It doesn\u0027t block when no more traces are\n  available.\n\n- trace pretty similar to the former, except that it adds more\n  informations such as prempt count, irq flag, ...\n\n- trace_pipe is a reader and a consumer, it will also block\n  waiting for traces if necessary (heh, yes it\u0027s a pipe).\n\nThe traces coming from different cpus are curretly mixed up\ninside these files. Sometimes it messes up the informations,\nsometimes it\u0027s useful, depending on what does the tracer\ncapture.\n\nThe tracing_cpumask file is useful to filter the output and\nselect only the traces captured a custom defined set of cpus.\nBut still it is not enough powerful to extract at the same time\none trace buffer per cpu.\n\nSo this patch creates a new directory: /debug/tracing/per_cpu/.\n\nInside this directory, you will now find one trace_pipe file and\none trace file per cpu.\n\nWhich means if you have two cpus, you will have:\n\n trace0\n trace1\n trace_pipe0\n trace_pipe1\n\nAnd of course, reading these files will have the same effect\nthan with the usual tracing files, except that you will only see\nthe traces from the given cpu.\n\nThe original all-in-one cpu trace file are still available on\ntheir original place.\n\nUntil now, only one consumer was allowed on trace_pipe to avoid\nracy consuming on the ring-buffer. Now the approach changed a\nbit, you can have only one consumer per cpu.\n\nWhich means you are allowed to read concurrently trace_pipe0 and\ntrace_pipe1 But you can\u0027t have two readers on trace_pipe0 or\ntrace_pipe1.\n\nFollowing the same logic, if there is one reader on the common\ntrace_pipe, you can not have at the same time another reader on\ntrace_pipe0 or in trace_pipe1. Because in trace_pipe is already\na consumer in all cpu buffers in essence.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2b1b858f690d6369a59ad241335eeedec6eb0c8c",
      "tree": "91838f66d8ef6bb42fe66849c5cbd05650d272a3",
      "parents": [
        "886b5b73d71e4027d7dc6c14f5f7ab102201ea6b",
        "1473e4417c79f12d91ef91a469699bfa911f510f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 12:50:07 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 12:50:07 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "886b5b73d71e4027d7dc6c14f5f7ab102201ea6b",
      "tree": "307a0e4d1c597e90d6972f95c2396ea4e1be2057",
      "parents": [
        "c478f8786973d6d7552c652ddad3f6fd86b5af28"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 11:03:44 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 11:05:34 2009 +0100"
      },
      "message": "tracing: remove /debug/tracing/latency_trace\n\nImpact: remove old debug/tracing API\n\n/debug/tracing/latency_trace is an old legacy format we kept from\nthe old latency tracer. Remove the file for now. If there\u0027s any\nuseful bit missing then we\u0027ll propagate any useful output bits into\nthe /debug/tracing/trace output.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d542cf34264ac92e9e7ac55c0b096b066d569d2",
      "tree": "e7864da3a119ba2fd1800616f0041610d09058cb",
      "parents": [
        "499aa86dcbc3c4daf7d2c59c5c30e1a78220fbc1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 08:40:09 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 09:16:01 2009 +0100"
      },
      "message": "tracing/hw-branch-tracing: convert bts-tracer mutex to a spinlock\n\nImpact: fix CPU hotplug lockup\n\nbts_hotcpu_handler() is called with irqs disabled, so using mutex_lock()\nis a no-no.\n\nAll the BTS codepaths here are atomic (they do not schedule), so using\na spinlock is the right solution.\n\nCc: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1473e4417c79f12d91ef91a469699bfa911f510f",
      "tree": "07ae02d5383367ed883616646f885be71f7431dd",
      "parents": [
        "f3fe8e4a38fd19dbb3f8ffb1826aa840ae304a65"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 14:15:08 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 21:54:08 2009 -0500"
      },
      "message": "tracing: make event directory structure\n\nThis patch adds the directory /debug/tracing/events/ that will contain\nall the registered trace points.\n\n # ls /debug/tracing/events/\nsched_kthread_stop      sched_process_fork  sched_switch\nsched_kthread_stop_ret  sched_process_free  sched_wait_task\nsched_migrate_task      sched_process_wait  sched_wakeup\nsched_process_exit      sched_signal_send   sched_wakeup_new\n\n # ls /debug/tracing/events/sched_switch/\nenable\n\n # cat /debug/tracing/events/sched_switch/enable\n1\n\n # cat /debug/tracing/set_event\nsched_switch\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f3fe8e4a38fd19dbb3f8ffb1826aa840ae304a65",
      "tree": "9df43f7711f836173adebcefe2f4776bd3e30340",
      "parents": [
        "b77e38aa240c3bd9c55c98b9f7c81541e042eae5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 10:22:57 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 21:54:07 2009 -0500"
      },
      "message": "tracing: add schedule events to event trace\n\nThis patch changes the trace/sched.h to use the DECLARE_TRACE_FMT\nsuch that they are automatically registered with the event tracer.\n\nAnd it also adds the tracing sched headers to kernel/trace/events.c\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b77e38aa240c3bd9c55c98b9f7c81541e042eae5",
      "tree": "bbb40993e76edc52d2cae1040b941ba4e4d2f965",
      "parents": [
        "7c37730cd31ddb2d3a1da142af9b18c29b8c433b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 10:21:36 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 24 21:54:05 2009 -0500"
      },
      "message": "tracing: add event trace infrastructure\n\nThis patch creates the event tracing infrastructure of ftrace.\nIt will create the files:\n\n /debug/tracing/available_events\n /debug/tracing/set_event\n\nThe available_events will list the trace points that have been\nregistered with the event tracer.\n\nset_events will allow the user to enable or disable an event hook.\n\nexample:\n\n # echo sched_wakeup \u003e /debug/tracing/set_event\n\nWill enable the sched_wakeup event (if it is registered).\n\n # echo \"!sched_wakeup\" \u003e\u003e /debug/tracing/set_event\n\nWill disable the sched_wakeup event (and only that event).\n\n # echo \u003e /debug/tracing/set_event\n\nWill disable all events (notice the \u0027\u003e\u0027)\n\n # cat /debug/tracing/available_events \u003e /debug/tracing/set_event\n\nWill enable all registered event hooks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5e01cb695d29619dd551bac7d6aa4ef1dc8ebc95",
      "tree": "441e5401fe99fbf75468b3245c77db34fc6aef58",
      "parents": [
        "a7f4463e0300b5135c0f0caf7c34a0529405f986"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Feb 24 13:55:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 18:23:34 2009 +0100"
      },
      "message": "x86, ftrace: fix section mismatch in hw-branch-tracer\n\nFix an invalid memory reference problem when cpu hotplug support is\ndisabled and the hw-branch-tracer is set as current tracer.\n\nInitializing the tracer calls bts_trace_init() which has already\nbeen freed at this time.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c478f8786973d6d7552c652ddad3f6fd86b5af28",
      "tree": "39967f4bb9a35d626584bd46f1acd916c6b5278d",
      "parents": [
        "843adf2379c18ed9a1b7493ee208bfd5512732e0",
        "4377245aa93b65b6597e4b7bb460fb9abc48b56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "message": "Merge branch \u0027tip/x86/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n\nConflicts:\n\tinclude/linux/ftrace.h\n\tkernel/trace/ftrace.c\n"
    },
    {
      "commit": "4377245aa93b65b6597e4b7bb460fb9abc48b56b",
      "tree": "00eae2cbdd12e855bbde2f6cd6d1a6e6fd659a11",
      "parents": [
        "90c7ac49aa819feb9433b5310089fca6399881c0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 19 13:41:27 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 20 14:30:20 2009 -0500"
      },
      "message": "ftrace: break out modify loop immediately on detection of error\n\nImpact: added precaution on failure detection\n\nBreak out of the modifying loop as soon as a failure is detected.\nThis is just an added precaution found by code review and was not\nfound by any bug chasing.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "000ab691172db3921efa3cb7f17fc79235a1de7f",
      "tree": "5670e20fe203488b408977d5d5634fc9ddf418e1",
      "parents": [
        "07a66d7c53a538e1a9759954a82bb6c07365eff9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 13:35:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 20 13:16:18 2009 -0500"
      },
      "message": "ftrace: allow archs to preform pre and post process for code modification\n\nThis patch creates the weak functions: ftrace_arch_code_modify_prepare\nand ftrace_arch_code_modify_post_process that are called before and\nafter the stop machine is called to modify the kernel text.\n\nIf the arch needs to do pre or post processing, it only needs to define\nthese functions.\n\n[ Update: Ingo Molnar suggested using the name ftrace_arch_code_modify_*\n          over using ftrace_arch_modify_* ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f9349a8f978929a0c71d2c42ae299f7d462c239d",
      "tree": "e5d010a27078993709fd286f358122886cbbc3bc",
      "parents": [
        "64b36ca7f408e0bd45487c8c28f168f11f3b6dcd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Feb 19 21:13:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 20 11:36:24 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: make set_graph_function file support ftrace regex\n\nImpact: trace only functions matching a pattern\n\nThe set_graph_function file let one to trace only one or several\nchosen functions and follow all their code flow.\n\nCurrently, only a constant function name is allowed so this patch\nallows the ftrace_regex functions:\n\n- matches all functions that end with \"name\":\n  echo *name \u003e set_graph_function\n\n- matches all functions that begin with \"name\":\n  echo name* \u003e set_graph_function\n\n- matches all functions that contains \"name\":\n  echo *name* \u003e set_graph_function\n\nExample:\n\necho mutex* \u003e set_graph_function\n\n 0)               |  mutex_lock_nested() {\n 0)   0.563 us    |    __might_sleep();\n 0)   2.072 us    |  }\n 0)               |  mutex_unlock() {\n 0)   1.036 us    |    __mutex_unlock_slowpath();\n 0)   2.433 us    |  }\n 0)               |  mutex_unlock() {\n 0)   0.691 us    |    __mutex_unlock_slowpath();\n 0)   1.787 us    |  }\n 0)               |  mutex_lock_interruptible_nested() {\n 0)   0.548 us    |    __might_sleep();\n 0)   1.945 us    |  }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00a8bf859331e349713274825e6fbf20bf2ac15a",
      "tree": "09a26efd9f8c79c2fc4bead9d6adc18cd2ea6de9",
      "parents": [
        "5752674e140db5bce08c6bc60021a9bc3b960800"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 13:01:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 13:01:37 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: fix merge\n\nMerge artifact: pid got changed to ent-\u003epid meanwhile.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d1f9cbd78841f1a797c77e9117e4882f932c2ef6",
      "tree": "385b85ae60dfca6b4d2c5d8093db07cd6c5fbb20",
      "parents": [
        "4cd0332db7e8f57cc082bab11d82c064a9721737"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 18 04:25:25 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 12:33:21 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: fix traces weirdness while absolute time printing\n\nImpact: trace output cleanup/reordering\n\nWhen an interrupt occurs and and the abstime option is selected:\n\n  echo funcgraph-abstime \u003e /debug/tracing/trace_options\n\nthen we observe broken traces:\n\n30581.025422 |   0)   Xorg-4291    |   0.503 us    |      idle_cpu();\n30581.025424 |   0)   Xorg-4291    |   2.576 us    |    }\n30581.025424 |   0)   Xorg-4291    | + 75.771 us   |  }\n 0)   Xorg-4291    |   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n30581.025425 |   0)   Xorg-4291    |               |  schedule() {\n30581.025426 |   0)   Xorg-4291    |               |    __schedule() {\n30581.025426 |   0)   Xorg-4291    |   0.705 us    |      _spin_lock_irq();\n\nWith this patch, the interrupts output better adapts\nto absolute time printing:\n\n  414.856543 |   1)   Xorg-4279    |   8.816 us    |                        }\n  414.856544 |   1)   Xorg-4279    |   0.525 us    |                        rcu_irq_exit();\n  414.856545 |   1)   Xorg-4279    |   0.526 us    |                        idle_cpu();\n  414.856546 |   1)   Xorg-4279    | + 12.157 us   |                      }\n  414.856549 |   1)   Xorg-4279    | ! 104.114 us  |                    }\n  414.856549 |   1)   Xorg-4279    |   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n  414.856549 |   1)   Xorg-4279    | ! 107.944 us  |                  }\n  414.856550 |   1)   Xorg-4279    | ! 137.010 us  |                }\n  414.856551 |   1)   Xorg-4279    |   0.624 us    |                _read_unlock();\n  414.856552 |   1)   Xorg-4279    | ! 140.930 us  |              }\n  414.856552 |   1)   Xorg-4279    | ! 166.159 us  |            }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4cd0332db7e8f57cc082bab11d82c064a9721737",
      "tree": "b6de7771d67c5bf6eeb890fa0f5a901365104b98",
      "parents": [
        "40999096e8b9872199bf56ecd0c4d98397ccaf2f",
        "712406a6bf59ebf4a00358bb59a4a2a1b2953d90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 12:13:33 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 12:13:33 2009 +0100"
      },
      "message": "Merge branch \u0027mainline/function-graph\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/function-graph-tracer\n"
    },
    {
      "commit": "40999096e8b9872199bf56ecd0c4d98397ccaf2f",
      "tree": "a1019965100c10cae52014c447bfb4d1381ebec9",
      "parents": [
        "72c26c9a26ea7f2f3d14f162c2ebb07805f724ea",
        "fa7c7f6e11f70d62505074a8b30a776236850dec",
        "ed4a2f374d71770796789ed559c35a36bab82f1a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 10:20:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 10:20:17 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "72c26c9a26ea7f2f3d14f162c2ebb07805f724ea",
      "tree": "bf1b4bc0b69f96c79474f9edb9cf0e811c95f2dc",
      "parents": [
        "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
        "ba95fd47d177d46743ad94055908d22840370e06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 09:00:35 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 09:00:35 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/blktrace\n\nConflicts:\n\tblock/blktrace.c\n\nSemantic merge:\n\tkernel/trace/blktrace.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4b3e3d228429c75d398f1aa24532e468d3220c49",
      "tree": "ff0f2bd4b3f6903ad563d16c47d0bbb15603b2dd",
      "parents": [
        "4d7a077c0c7bfdba04cf0aa0b79053cf4ebaacf8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 22:50:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 22:50:01 2009 -0500"
      },
      "message": "tracing: limit the number of loops the ring buffer self test can make\n\nImpact: prevent deadlock if ring buffer gets corrupted\n\nThis patch adds a paranoid check to make sure the ring buffer consumer\ndoes not go into an infinite loop. Since the ring buffer has been set\nto read only, the consumer should not loop for more than the ring buffer\nsize. A check is added to make sure the consumer does not loop more than\nthe ring buffer size.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4d7a077c0c7bfdba04cf0aa0b79053cf4ebaacf8",
      "tree": "6c5499988ccb21898b22d709f9f66d019e0fe475",
      "parents": [
        "0c5119c1e655e0719a69601b1049acdd5ec1c125"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 22:06:18 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 22:06:18 2009 -0500"
      },
      "message": "tracing: have function trace select kallsyms\n\nImpact: fix output of function tracer to be useful\n\nThe function tracer is pretty useless if KALLSYMS is not configured.\nUnless you are good at reading hex values, the function tracer should\nselect the KALLSYMS configuration.\n\nAlso, the dynamic function tracer will fail its self test if KALLSYMS\nis not selected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0c5119c1e655e0719a69601b1049acdd5ec1c125",
      "tree": "e808e36e274afc7c6521f69194e6fc2597e189bd",
      "parents": [
        "5b058bcde961bf28678a70e44c079107313543b6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 18:33:57 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 22:04:01 2009 -0500"
      },
      "message": "tracing: disable tracing while testing ring buffer\n\nImpact: fix to prevent hard lockup on self tests\n\nIf one of the tracers are broken and is constantly filling the ring\nbuffer while the test of the ring buffer is running, it will hang\nthe box. The reason is that the test is a consumer that will not\nstop till the ring buffer is empty. But if the tracer is broken and\nis constantly producing input to the buffer, this test will never\nend. The result is a lockup of the box.\n\nThis happened when KALLSYMS was not defined and the dynamic ftrace\ntest constantly filled the ring buffer, because the filter failed\nand all functions were being traced. Something was being called\nthat constantly filled the buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "712406a6bf59ebf4a00358bb59a4a2a1b2953d90",
      "tree": "5bea439ccacde69ba71c5da8e8e307c2d343aa93",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 09 10:54:03 2009 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 13:43:04 2009 -0500"
      },
      "message": "tracing/function-graph-tracer: make arch generic push pop functions\n\nThere is nothing really arch specific of the push and pop functions\nused by the function graph tracer. This patch moves them to generic\ncode.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "fa7c7f6e11f70d62505074a8b30a776236850dec",
      "tree": "f325008f7505ffb45dd7b1139d38c6a8229c6ccd",
      "parents": [
        "6eaaa5d57e76c454479833fc8594cd7c3b75c789"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 11 02:51:30 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:40:20 2009 +0100"
      },
      "message": "tracing/core: remove unused parameter in tracing_fill_pipe_page()\n\nImpact: cleanup\n\nThe struct page *pages parameter is unused.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6eaaa5d57e76c454479833fc8594cd7c3b75c789",
      "tree": "c8f3c130004199bbbc8d141bbfb0f216539c0724",
      "parents": [
        "ac07bcaa8259841905ead3f8cd60b1923ca6c0e5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 11 02:25:00 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:40:20 2009 +0100"
      },
      "message": "tracing/core: use appropriate waiting on trace_pipe\n\nImpact: api and pipe waiting change\n\nCurrently, the waiting used in tracing_read_pipe() is done through a\n100 msecs schedule_timeout() loop which periodically check if there\nare traces on the buffer.\n\nThis can cause small latencies for programs which are reading the incoming\nevents.\n\nThis patch makes the reader waiting for the trace_wait waitqueue except\nfor few tracers such as the sched and functions tracers which might be\nalready hold the runqueue lock while waking up the reader.\n\nThis is performed through a new callback wait_pipe() on struct tracer.\nIf none is implemented on a specific tracer, the default waiting for\ntrace_wait queue is attached.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac07bcaa8259841905ead3f8cd60b1923ca6c0e5",
      "tree": "162def1cd53ef477adca17fe06c33a484f6b2e87",
      "parents": [
        "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
        "35ebf1caa4854ad5ba25f3a72967acc064147994"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:09:07 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:09:07 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
      "tree": "e6f718191893ccb713f854fc8bf4a5866a41fe2b",
      "parents": [
        "73d3fd96e77745742f3750b7b19ee42204adc210",
        "5b058bcde961bf28678a70e44c079107313543b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:08:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 01:08:13 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "5b058bcde961bf28678a70e44c079107313543b6",
      "tree": "077a1bd366399544a84f61b07ae2f7bd894fae47",
      "parents": [
        "f9aa28adfc6a4b01268ebb6d88566cca8627905f"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Feb 17 18:35:34 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 19:20:17 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: trace the idle tasks\n\nWhen the function graph tracer is activated, it iterates over the task_list\nto allocate a stack to store the return addresses.\n\nBut the per cpu idle tasks are not iterated by using\ndo_each_thread / while_each_thread.\n\nSo we have to iterate on them manually.\n\nThis fixes somes weirdness in the traces and many losses of traces.\nExamples on two cpus:\n\n 0)   Xorg-4287    |   2.906 us    |              }\n 0)   Xorg-4287    |   3.965 us    |            }\n 0)   Xorg-4287    |   5.302 us    |          }\n ------------------------------------------\n 0)   Xorg-4287    \u003d\u003e    \u003cidle\u003e-0\n ------------------------------------------\n\n 0)    \u003cidle\u003e-0    |   2.861 us    |                        }\n 0)    \u003cidle\u003e-0    |   0.526 us    |                        set_normalized_timespec();\n 0)    \u003cidle\u003e-0    |   7.201 us    |                      }\n 0)    \u003cidle\u003e-0    |   8.214 us    |                    }\n 0)    \u003cidle\u003e-0    |               |                    clockevents_program_event() {\n 0)    \u003cidle\u003e-0    |               |                      lapic_next_event() {\n 0)    \u003cidle\u003e-0    |   0.510 us    |                        native_apic_mem_write();\n 0)    \u003cidle\u003e-0    |   1.546 us    |                      }\n 0)    \u003cidle\u003e-0    |   2.583 us    |                    }\n 0)    \u003cidle\u003e-0    | + 12.435 us   |                  }\n 0)    \u003cidle\u003e-0    | + 13.470 us   |                }\n 0)    \u003cidle\u003e-0    |   0.608 us    |                _spin_unlock_irqrestore();\n 0)    \u003cidle\u003e-0    | + 23.270 us   |              }\n 0)    \u003cidle\u003e-0    | + 24.336 us   |            }\n 0)    \u003cidle\u003e-0    | + 25.417 us   |          }\n 0)    \u003cidle\u003e-0    |   0.593 us    |          _spin_unlock();\n 0)    \u003cidle\u003e-0    | + 41.869 us   |        }\n 0)    \u003cidle\u003e-0    | + 42.906 us   |      }\n 0)    \u003cidle\u003e-0    | + 95.035 us   |    }\n 0)    \u003cidle\u003e-0    |   0.540 us    |    menu_reflect();\n 0)    \u003cidle\u003e-0    | ! 100.404 us  |  }\n 0)    \u003cidle\u003e-0    |   0.564 us    |  mce_idle_callback();\n 0)    \u003cidle\u003e-0    |               |  enter_idle() {\n 0)    \u003cidle\u003e-0    |   0.526 us    |    mce_idle_callback();\n 0)    \u003cidle\u003e-0    |   1.757 us    |  }\n 0)    \u003cidle\u003e-0    |               |  cpuidle_idle_call() {\n 0)    \u003cidle\u003e-0    |               |    menu_select() {\n 0)    \u003cidle\u003e-0    |   0.525 us    |      pm_qos_requirement();\n 0)    \u003cidle\u003e-0    |   0.518 us    |      tick_nohz_get_sleep_length();\n 0)    \u003cidle\u003e-0    |   2.621 us    |    }\n[...]\n 1)    \u003cidle\u003e-0    |   0.518 us    |              touch_softlockup_watchdog();\n 1)    \u003cidle\u003e-0    | + 14.355 us   |            }\n 1)    \u003cidle\u003e-0    | + 22.840 us   |          }\n 1)    \u003cidle\u003e-0    | + 25.949 us   |        }\n 1)    \u003cidle\u003e-0    |               |        handle_irq() {\n 1)    \u003cidle\u003e-0    |   0.511 us    |          irq_to_desc();\n 1)    \u003cidle\u003e-0    |               |          handle_edge_irq() {\n 1)    \u003cidle\u003e-0    |   0.638 us    |            _spin_lock();\n 1)    \u003cidle\u003e-0    |               |            ack_apic_edge() {\n 1)    \u003cidle\u003e-0    |   0.510 us    |              irq_to_desc();\n 1)    \u003cidle\u003e-0    |               |              move_native_irq() {\n 1)    \u003cidle\u003e-0    |   0.510 us    |                irq_to_desc();\n 1)    \u003cidle\u003e-0    |   1.532 us    |              }\n 1)    \u003cidle\u003e-0    |   0.511 us    |              native_apic_mem_write();\n ------------------------------------------\n 1)    \u003cidle\u003e-0    \u003d\u003e    cat-5073\n ------------------------------------------\n\n 1)    cat-5073    |   3.731 us    |                    }\n 1)    cat-5073    |               |                    run_local_timers() {\n 1)    cat-5073    |   0.533 us    |                      hrtimer_run_queues();\n 1)    cat-5073    |               |                      raise_softirq() {\n 1)    cat-5073    |               |                        __raise_softirq_irqoff() {\n 1)    cat-5073    |               |                          /* nr: 1 */\n 1)    cat-5073    |   2.718 us    |                        }\n 1)    cat-5073    |   3.814 us    |                      }\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "35ebf1caa4854ad5ba25f3a72967acc064147994",
      "tree": "6adc0e7db8cb16d18f3683bf729cf8261af93b1f",
      "parents": [
        "73d8b8bc4f24a97a406d09c8268ac019f4ac661e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 13:12:12 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 13:12:12 2009 -0500"
      },
      "message": "ftrace: show unlimited when traceon or traceoff has no counter\n\nImpact: clean up\n\nThe traceon and traceoff function probes are confusing to developers\nto what happens when a counter is not specified. This should help\nclear things up.\n\n # echo \"*:traceoff\" \u003e set_ftrace_filter\n # cat /debug/tracing/set_ftrace_filter\n\n  #### all functions enabled ####\n  do_fork:traceoff:unlimited\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "73d8b8bc4f24a97a406d09c8268ac019f4ac661e",
      "tree": "53917dadae639d825a8e917a27644555cb6eeea5",
      "parents": [
        "d2ef7c2f0f9ab48c25eafc0ebad0df5f7930420b"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Tue Feb 17 01:10:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:38:24 2009 -0500"
      },
      "message": "tracing: fix typing mistake in hint message and comments\n\nImpact: cleanup\n\nFix incorrect hint message in code and typos in comments.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "d2ef7c2f0f9ab48c25eafc0ebad0df5f7930420b",
      "tree": "f728344561b02428d875e30a0d07143dafd52bcc",
      "parents": [
        "af513098452b8887d7c0e15a39d7cb74479501bd"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Tue Feb 17 01:09:47 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:38:24 2009 -0500"
      },
      "message": "tracing: fix the return value of trace selftest\n\nThis patch is to fix the return value of trace_selftest_startup_sysprof\nand trace_selftest_startup_branch on failure.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "af513098452b8887d7c0e15a39d7cb74479501bd",
      "tree": "a578846af58fe25dd784f694440a3cf757aea807",
      "parents": [
        "b6887d7916e44c1d8913084fb6aa5004d9473f1a"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Tue Feb 17 01:07:28 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:38:23 2009 -0500"
      },
      "message": "tracing: use the more proper parameter\n\nPass tsk to tracing_record_cmdline instead of current.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b6887d7916e44c1d8913084fb6aa5004d9473f1a",
      "tree": "3446baa5592ce9ce17abb51ffdf3d89e6b52ef9b",
      "parents": [
        "6a24a244cd3a02d5b290293c32fcf2c6e92b4235"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "message": "ftrace: rename _hook to _probe\n\nImpact: clean up\n\nIngo Molnar did not like the _hook naming convention used by the\nselect function tracer. Luis Claudio R. Goncalves suggested using\nthe \"_probe\" extension. This patch implements the change of\ncalling the functions and variables \"_hook\" and replacing them\nwith \"_probe\".\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "6a24a244cd3a02d5b290293c32fcf2c6e92b4235",
      "tree": "8328e5e7da792a07a338f20974eaea4f80bb59ac",
      "parents": [
        "73d3fd96e77745742f3750b7b19ee42204adc210"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 11:20:26 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 11:20:26 2009 -0500"
      },
      "message": "ftrace: clean up coding style\n\nIngo Molnar pointed out some coding style issues with the recent ftrace\nupdates. This patch cleans them up.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "73d3fd96e77745742f3750b7b19ee42204adc210",
      "tree": "02eb978e04288883d7f7709e87d8906687c29ba7",
      "parents": [
        "97d0bb8dcd8c2812e1927cdb51d7b1f9c98352b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:48:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:50:42 2009 +0100"
      },
      "message": "ftrace: fix !CONFIG_DYNAMIC_FTRACE ftrace_swapper_pid definition\n\nImpact: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f492d3f8385a98f828e8220d14492337dc29e07b",
      "tree": "31f22c83f7e45388955aacb45c425d7cb6a4d78c",
      "parents": [
        "c4e2b432d5b57e2faaeea048079b31c243079647",
        "e110e3d1eaa0f9628918be67ddd32e8ad65a2871"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:31:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:31:01 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "c4e2b432d5b57e2faaeea048079b31c243079647",
      "tree": "f4e59abeb522ecb11476fe69d827390050a0ffee",
      "parents": [
        "a234aa9ecdf47a5461573a21dc0b154278df5ba8",
        "72b623c73685e86b70a51855e1058ebc98a9f6ed"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:29:53 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:29:53 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/hw-branch-tracing\u0027 and \u0027tracing/power-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "e110e3d1eaa0f9628918be67ddd32e8ad65a2871",
      "tree": "f51fcc118da53c2f7a8dc7ed028a7ed5380c9706",
      "parents": [
        "809dcf29ce4e1723709910878e050bd187617e0e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:38:13 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:38:13 2009 -0500"
      },
      "message": "ftrace: add pretty print function for traceon and traceoff hooks\n\nThis patch adds a pretty print version of traceon and traceoff\noutput for set_ftrace_filter.\n\n  # echo \u0027sys_open:traceon:4\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter\n\n #### all functions enabled ####\n sys_open:traceon:count\u003d4\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "809dcf29ce4e1723709910878e050bd187617e0e",
      "tree": "4747ede5ad0678d6ae88176f403a2c26f277182e",
      "parents": [
        "8fc0c701c5b6c0c3e242758c3acef6f9047940a9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "message": "ftrace: add pretty print to selected fuction traces\n\nThis patch adds a call back for the tracers that have hooks to\nselected functions. This allows the tracer to show better output\nin the set_ftrace_filter file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "8fc0c701c5b6c0c3e242758c3acef6f9047940a9",
      "tree": "aa9c495fc2d898b39873e1ce9f154bed64b33f8e",
      "parents": [
        "23b4ff3aa479c9e3bb23cb6b2d0a97878399784a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 15:28:00 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:50:06 2009 -0500"
      },
      "message": "ftrace: show selected functions in set_ftrace_filter\n\nThis patch adds output to show what functions have tracer hooks\nattached to them.\n\n  # echo \u0027sys_open:traceon:4\u0027 \u003e /debug/tracing/set_ftrace_filter\n  # cat set_ftrace_filter\n\n #### all functions enabled ####\n sys_open:ftrace_traceon:0000000000000004\n\n  # echo \u0027do_fork:traceoff:\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter\n\n #### all functions enabled ####\n sys_open:ftrace_traceon:0000000000000002\n do_fork:ftrace_traceoff:ffffffffffffffff\n\nNote the 4 changed to a 2. This is because The code was executed twice\nsince the traceoff was added. If a cat is done again:\n\n #### all functions enabled ####\n sys_open:ftrace_traceon\n do_fork:ftrace_traceoff:ffffffffffffffff\n\nThe number disappears. That is because it will not print a NULL.\n\nCallbacks to allow the tracer to pretty print will be implemented soon.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "23b4ff3aa479c9e3bb23cb6b2d0a97878399784a",
      "tree": "ba446de609489d91303e6bdafd5168463100417a",
      "parents": [
        "988ae9d6b2bc3ebdc1a488490250a6812f85e9d4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 19:04:24 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:50:04 2009 -0500"
      },
      "message": "ftrace: add traceon traceoff commands to enable/disable the buffers\n\nThis patch adds the new function selection commands traceon and\ntraceoff. traceon sets the function to enable the ring buffers\nwhile traceoff disables the ring buffers.  You can pass in the\nnumber of times you want the command to be executed when the function\nis hit. It will only execute if the state of the buffers are not\nalready in that state.\n\nExample:\n\n # echo do_fork:traceon:4\n\nWill enable the ring buffers if they are disabled every time it\nhits do_fork, up to 4 times.\n\n # echo sys_close:traceoff\n\nThis will disable the ring buffers every time (unlimited) when\nsys_close is called.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "988ae9d6b2bc3ebdc1a488490250a6812f85e9d4",
      "tree": "2674e810891133bc7ddb935baa6c15a0412e2a8f",
      "parents": [
        "59df055f1991c9fc0c71a9230663c39188f6972f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 19:17:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:50:01 2009 -0500"
      },
      "message": "ring-buffer: add tracing_is_on to test if ring buffer is enabled\n\nThis patch adds the tracing_is_on() interface to tell if the ring\nbuffer is turned on or not.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "59df055f1991c9fc0c71a9230663c39188f6972f",
      "tree": "e1799897a8c8da924a3e933f539e8869e8725cb6",
      "parents": [
        "e6ea44e9b4c12325337cd1c06103cd515a1c02b2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 15:29:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:44:09 2009 -0500"
      },
      "message": "ftrace: trace different functions with a different tracer\n\nImpact: new feature\n\nCurrently, the function tracer only gives you an ability to hook\na tracer to all functions being traced. The dynamic function trace\nallows you to pick and choose which of those functions will be\ntraced, but all functions being traced will call all tracers that\nregistered with the function tracer.\n\nThis patch adds a new feature that allows a tracer to hook to specific\nfunctions, even when all functions are being traced. It allows for\ndifferent functions to call different tracer hooks.\n\nThe way this is accomplished is by a special function that will hook\nto the function tracer and will set up a hash table knowing which\ntracer hook to call with which function. This is the most general\nand easiest method to accomplish this. Later, an arch may choose\nto supply their own method in changing the mcount call of a function\nto call a different tracer. But that will be an exercise for the\nfuture.\n\nTo register a function:\n\n struct ftrace_hook_ops {\n\tvoid\t\t\t(*func)(unsigned long ip,\n\t\t\t\t\tunsigned long parent_ip,\n\t\t\t\t\tvoid **data);\n\tint\t\t\t(*callback)(unsigned long ip, void **data);\n\tvoid\t\t\t(*free)(void **data);\n };\n\n int register_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\t  void *data);\n\nglob is a simple glob to search for the functions to hook.\nops is a pointer to the operations (listed below)\ndata is the default data to be passed to the hook functions when traced\n\nops:\n func is the hook function to call when the functions are traced\n callback is a callback function that is called when setting up the hash.\n   That is, if the tracer needs to do something special for each\n   function, that is being traced, and wants to give each function\n   its own data. The address of the entry data is passed to this\n   callback, so that the callback may wish to update the entry to\n   whatever it would like.\n free is a callback for when the entry is freed. In case the tracer\n   allocated any data, it is give the chance to free it.\n\nTo unregister we have three functions:\n\n  void\n  unregister_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\tvoid *data)\n\nThis will unregister all hooks that match glob, point to ops, and\nhave its data matching data. (note, if glob is NULL, blank or \u0027*\u0027,\nall functions will be tested).\n\n  void\n  unregister_ftrace_function_hook_func(char *glob,\n\t\t\t\t struct ftrace_hook_ops *ops)\n\nThis will unregister all functions matching glob that has an entry\npointing to ops.\n\n  void unregister_ftrace_function_hook_all(char *glob)\n\nThis simply unregisters all funcs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    }
  ],
  "next": "e6ea44e9b4c12325337cd1c06103cd515a1c02b2"
}
