)]}'
{
  "log": [
    {
      "commit": "6161352142d5fed4cd753b32e5ccde66e705b14e",
      "tree": "d64d0e3e6c44440181ddb5d1bc6884067fee0749",
      "parents": [
        "fd39e055c4fefa4553efc9030f9903afdc6ee323"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu Sep 17 16:11:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 11:42:12 2009 +0200"
      },
      "message": "tracing, perf: Convert the power tracer into an event tracer\n\nThis patch converts the existing power tracer into an event tracer,\nso that power events (C states and frequency changes) can be\ntracked via \"perf\".\n\nThis also removes the perl script that was used to demo the tracer;\nits functionality is being replaced entirely with timechart.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20090912130542.6d314860@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4e5292ea1ac0c2939e815e6c44fad3d8696ea281",
      "tree": "f97dbe73d38b893ee5a2458a1d97490789e6ccb0",
      "parents": [
        "d73150943cf47b6cabcb4f4e52dd25975e820ae2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Sep 12 19:26:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 12 23:08:10 2009 -0400"
      },
      "message": "tracing: use the new trace_entries.h to create format files\n\nThis patch changes the way the format files in\n\n  debugfs/tracing/events/ftrace/*/format\n\nare created. It uses the new trace_entries.h file to automate the\ncreation of the format files to ensure that they are always in sync\nwith the actual structures. This is the same methodology used to\ncreate the format files for the TRACE_EVENT macro.\n\nThis also updates the filter creation that was built on the creation\nof the format files.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d73150943cf47b6cabcb4f4e52dd25975e820ae2",
      "tree": "ba711d32aacb2c5627d2acd636e82b819598120c",
      "parents": [
        "0a1c49db8d91c538f104f8d70e560c6fdd589bd4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Sep 12 19:22:23 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 12 23:08:07 2009 -0400"
      },
      "message": "tracing: show details of structures within the ftrace structures\n\nSome of the internal ftrace structures use structures within. The\noutput of a field saying it is just a structure is useless for a format\nfile. A binary reader of the ring buffer needs to know more about\nhow the fields are broken up.\n\nThis patch adds to the ftrace structure macros new fields to\ndescribe the structures inside a structure.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a1c49db8d91c538f104f8d70e560c6fdd589bd4",
      "tree": "41cf96b9c7bd351702526c6313cef9944c741954",
      "parents": [
        "16bb8eb1b73bf940d30ff88cae622bfcd3790f61"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Sep 12 19:17:15 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 12 23:08:06 2009 -0400"
      },
      "message": "tracing: use macros to create internal ftrace entry ring buffer structures\n\nThe entries used by ftrace internal code (plugins) currently have their\nformats manually exported to userspace. That is, the format files in\ndebugfs/tracing/events/ftrace/*/format are currently created by hand.\nThis is a maintenance nightmare, and can easily become out of sync\nwith what is actually shown.\n\nThis patch uses the methodology of the TRACE_EVENT macros to build\nthe structures so that their formats can be automated and this\nwill keep the structures in sync with what users can see.\n\nThis patch only changes the way the structures are created. Further\npatches will build off of this to automate the format files.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b5130b1e7d3717d03ab1916b198bf0d49fa0a619",
      "tree": "67ee3282f6b6aa2e37864b938f67fd7e02b04394",
      "parents": [
        "41dfba4367109b92d92ec6e059be6950497d932f"
      ],
      "author": {
        "name": "Carsten Emde",
        "email": "Carsten.Emde@osadl.org",
        "time": "Sun Sep 13 01:43:07 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 12 21:45:17 2009 -0400"
      },
      "message": "tracing: do not update tracing_max_latency when tracer is stopped\n\nThe state of the function pair tracing_stop()/tracing_start() is\ncorrectly considered when tracer data are updated. However, the global\nand externally accessible variable tracing_max_latency is always updated\n- even when tracing is stopped.\n\nThe update should only occur, if tracing was not stopped.\n\nSigned-off-by: Carsten Emde \u003cC.Emde@osadl.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b63f39ea50330f836e301ddda21c6a93dcf0d6a3",
      "tree": "3fb5a88ca19da6417a52b83eff585b9413bfb9c9",
      "parents": [
        "f81c972d27c36729e65d4a815e3d7b782a540bad"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Fri Sep 11 17:29:27 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 11 14:46:55 2009 -0400"
      },
      "message": "tracing: create generic trace parser\n\nCreate a \"trace_parser\" that can parse the user space input for\nseparate words.\n\nstruct trace_parser is the descriptor.\n\nGeneric \"trace_get_user\" function that can be a helper to read multiple\nwords passed in by user space.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1252682969-3366-2-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "48659d31195bb76d688e99dabd816c5472fb1656",
      "tree": "9d7d7f9ac50a6de1be1bfe28a31ee13e369fc04b",
      "parents": [
        "49ff590390a22c49e9063dcdec4cd5903127526b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Sep 11 11:36:23 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 11 11:36:23 2009 -0400"
      },
      "message": "tracing: move tgid out of generic entry and into userstack\n\nThe userstack trace required the recording of the tgid entry.\nUnfortunately, it was added to the generic entry where it wasted\n4 bytes of every entry and was only used by one entry.\n\nThis patch moves it out of the generic field and moves it into the\nonly user (userstack_entry).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "197e2eabc90c203d1086916b7f66694ba5fbb937",
      "tree": "80734d0e96ac0f4ffc1bcac4198d537804dae037",
      "parents": [
        "a5921c6c37d51ee2079ca3c69ea6f7b7384f5d87"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 10 09:34:19 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 09 23:54:11 2009 -0400"
      },
      "message": "tracing: move PRED macros to trace_events_filter.c\n\nMove DEFINE_COMPARISON_PRED() and DEFINE_EQUALITY_PRED()\n  to kernel/trace/trace_events_filter.c\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AA8579B.4020706@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a5921c6c37d51ee2079ca3c69ea6f7b7384f5d87",
      "tree": "f6ce2b8885f36a4aaac37aab1d370479513dcde6",
      "parents": [
        "bd9cfca9cb71200dd82b320bba12540dc078f4e0"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 10 09:34:19 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 09 23:54:09 2009 -0400"
      },
      "message": "tracing: remove stats from struct tracer\n\nRemove unused field @stats from struct tracer.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AA8579B.4020706@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bd9cfca9cb71200dd82b320bba12540dc078f4e0",
      "tree": "6a86f5982103623a007a0f99db5a42dc4c962348",
      "parents": [
        "e0ab5f2daee1c7a6a387591bf37f0bad4e407112"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 10 09:34:19 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 09 23:54:07 2009 -0400"
      },
      "message": "tracing: format clean ups\n\nFix white-space formatting.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AA8579B.4020706@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e0ab5f2daee1c7a6a387591bf37f0bad4e407112",
      "tree": "15daf95b939c6ed7e65e67b2acbbb740c2c145f9",
      "parents": [
        "478142c39c8c2f5f63038e5f2224e6729406e587"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 10 09:34:19 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 09 23:54:06 2009 -0400"
      },
      "message": "tracing: remove dead code\n\nRemoves unreachable code.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4AA8579B.4020706@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "659372d3e42a3e17a2e042d38a8bcdb94bfbe797",
      "tree": "4c6195eb5e96569f902695f33babbea37e00bd41",
      "parents": [
        "e77405ad80f53966524b5c31244e13fbbbecbd84"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 03 19:11:07 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 04 19:13:53 2009 -0400"
      },
      "message": "tracing: add trace_array_printk for internal tracers to use\n\nThis patch adds a trace_array_printk to allow a tracer to use the\ntrace_printk on its own trace array.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e77405ad80f53966524b5c31244e13fbbbecbd84",
      "tree": "65c05f9e1573e9958e52bb72655e00c8592aacd2",
      "parents": [
        "f633903af2ceb0cec07d45e499a072b6593d0ed1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Sep 02 14:17:06 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 04 18:59:39 2009 -0400"
      },
      "message": "tracing: pass around ring buffer instead of tracer\n\nThe latency tracers (irqsoff and wakeup) can swap trace buffers\non the fly. If an event is happening and has reserved data on one of\nthe buffers, and the latency tracer swaps the global buffer with the\nmax buffer, the result is that the event may commit the data to the\nwrong buffer.\n\nThis patch changes the API to the trace recording to be recieve the\nbuffer that was used to reserve a commit. Then this buffer can be passed\nin to the commit.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2f26ebd549b9ab55ac756b836ec759c11fe93f81",
      "tree": "0f6fb154e2b5e9233a683b3267e5efe862a846f4",
      "parents": [
        "76f0d07376388f32698ba51b6090a26b90c1342f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 01 11:06:29 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 04 18:44:22 2009 -0400"
      },
      "message": "tracing: use timestamp to determine start of latency traces\n\nCurrently the latency tracers reset the ring buffer. Unfortunately\nif a commit is in process (due to a trace event), this can corrupt\nthe ring buffer. When this happens, the ring buffer will detect\nthe corruption and then permanently disable the ring buffer.\n\nThe bug does not crash the system, but it does prevent further tracing\nafter the bug is hit.\n\nInstead of reseting the trace buffers, the timestamp of the start of\nthe trace is used instead. The buffers will still contain the previous\ndata, but the output will not count any data that is before the\ntimestamp of the trace.\n\nNote, this only affects the static trace output (trace) and not the\nruntime trace output (trace_pipe). The runtime trace output does not\nmake sense for the latency tracers anyway.\n\nReported-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8248ac052dfd1eb41819fbc0ca5c7a1667e7e70c",
      "tree": "d979964a23112b6266d26da19a572057e5060367",
      "parents": [
        "077c5407cd3231cf13472623995f0dfdda510d62"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Sep 02 12:27:41 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Sep 04 11:48:12 2009 -0400"
      },
      "message": "tracing: print out start and stop in latency traces\n\nDuring development of the tracer, we would copy information from\nthe live tracer to the max tracer with one memcpy. Since then we\nadded a generic ring buffer and we handle the copies differently now.\nUnfortunately, we never copied the critical section information, and\nwe lost the output:\n\n #  \u003d\u003e started at: kmem_cache_alloc\n #  \u003d\u003e ended at:   kmem_cache_alloc\n\nThis patch adds back the critical start and end copying as well as\nremoves the unused \"trace_idx\" and \"overrun\" fields of the\ntrace_array_cpu structure.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5d4a9dba2d7fbab69f00dedd430d1788834a055a",
      "tree": "a57ec209fc1ac86d7acbd67164b068ecdadd6317",
      "parents": [
        "c0729be99cb2b9d9749256254f1c40a801835896"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Aug 27 16:52:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 27 16:58:05 2009 -0400"
      },
      "message": "tracing: only show tracing_max_latency when latency tracer configured\n\nThe tracing_max_latency file should only be present when one of the\nlatency tracers ({preempt|irqs}off, wakeup*) are enabled.\n\nThis patch also removes tracing_thresh when latency tracers are not\nenabled, as well as compiles out code that is only used for latency\ntracers.\n\nReported-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5079f3261ffd7fe4a537679af695f2328943a245",
      "tree": "1f9ab5128f37c3628979496610bc862b4a321cd6",
      "parents": [
        "87a342f5db69d53ea70493bb1ec69c9047677038"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Tue Aug 25 16:12:56 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 26 00:32:08 2009 -0400"
      },
      "message": "ftrace: Move setting of clock-source out of options\n\nThere are many clock sources for the tracing system but we can only\nenable/disable one at a time with the trace/options file.\nWe can move the setting of clock-source out of options and add a separate\nfile for it:\n # cat trace_clock\n [local] global\n # echo global \u003e trace_clock\n # cat trace_clock\n local [global]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A939D08.6050604@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa38e9fc3ea804290efd3a39316d7f7e6c945800",
      "tree": "8f9766b20c9006c1373f11c927fb46441e01df0f",
      "parents": [
        "6591b493871cf9b17de2ba272edb8ab529a8058b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Aug 07 10:33:02 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 26 00:32:06 2009 -0400"
      },
      "message": "tracing/filters: Add filter_type to struct ftrace_event_field\n\nThe type of a field is stored as a string in @type, and here\nwe add @filter_type which is an enum value.\n\nThis prepares for later patches, so we can specifically assign\ndifferent @filter_type for the same @type.\n\nFor example normally a \"char *\" field is treated as a ptr,\nbut we may want it to be treated as a string when doing filting.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A7B925E.9030605@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "64c12e0444fcc6b75eb49144ba46d43dbdc6bc8f",
      "tree": "8fe7b546fe787061fca8f97ed2051f40f9b16a57",
      "parents": [
        "fb34a08c3469b2be9eae626ccb96476b4687b810"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Mon Aug 10 16:52:53 2009 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 11 20:35:28 2009 +0200"
      },
      "message": "tracing: Add individual syscalls tracepoint id support\n\nThe current state of syscalls tracepoints generates only one event id\nfor every syscall events.\n\nThis patch associates an id with each syscall trace event, so that we\ncan identify each syscall trace event using the \u0027perf\u0027 tool.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Jiaying Zhang \u003cjiayingz@google.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "89034bc2c7b839702c00a704e79d112737f98be0",
      "tree": "e65b1f3d4c751baa840efc81bc4734f089379eb3",
      "parents": [
        "fb82ad719831db58e9baa4c67015aae3fe27e7e3",
        "85dfd81dc57e8183a277ddd7a56aa65c96f3f487"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 11 14:19:09 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/trace_events_filter.c\n\nWe use the tracing/core version.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f413cdb80ce00ec1a4d0ab949b5d96c81cae7f75",
      "tree": "08a9621cb1318f73a37faeed14c4e728408551ad",
      "parents": [
        "3a6593050fbd8bbcaed3a44d01c31d907315c86c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 07 01:25:54 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:53:48 2009 +0200"
      },
      "message": "perf_counter: Fix/complete ftrace event records sampling\n\nThis patch implements the kernel side support for ftrace event\nrecord sampling.\n\nA new counter sampling attribute is added:\n\n   PERF_SAMPLE_TP_RECORD\n\nwhich requests ftrace events record sampling. In this case\nif a PERF_TYPE_TRACEPOINT counter is active and a tracepoint\nfires, we emit the tracepoint binary record to the\nperfcounter event buffer, as a sample.\n\nResult, after setting PERF_SAMPLE_TP_RECORD attribute from perf\nrecord:\n\n perf record -f -F 1 -a -e workqueue:workqueue_execution\n perf report -D\n\n 0x21e18 [0x48]: event: 9\n .\n . ... raw event: size 72 bytes\n .  0000:  09 00 00 00 01 00 48 00 d0 c7 00 81 ff ff ff ff  ......H........\n .  0010:  0a 00 00 00 0a 00 00 00 21 00 00 00 00 00 00 00  ........!......\n .  0020:  2b 00 01 02 0a 00 00 00 0a 00 00 00 65 76 65 6e  +...........eve\n .  0030:  74 73 2f 31 00 00 00 00 00 00 00 00 0a 00 00 00  ts/1...........\n .  0040:  e0 b1 31 81 ff ff ff ff                          .......\n.\n0x21e18 [0x48]: PERF_EVENT_SAMPLE (IP, 1): 10: 0xffffffff8100c7d0 period: 33\n\nThe raw ftrace binary record starts at offset 0020.\n\nTranslation:\n\n struct trace_entry {\n\ttype\t\t\u003d 0x2b \u003d 43;\n\tflags\t\t\u003d 1;\n\tpreempt_count\t\u003d 2;\n\tpid\t\t\u003d 0xa \u003d 10;\n\ttgid\t\t\u003d 0xa \u003d 10;\n }\n\n thread_comm \u003d \"events/1\"\n thread_pid  \u003d 0xa \u003d 10;\n func\t    \u003d 0xffffffff8131b1e0 \u003d flush_to_ldisc()\n\nWhat will come next?\n\n - Userspace support (\u0027perf trace\u0027), \u0027flight data recorder\u0027 mode\n   for perf trace, etc.\n\n - The unconditional copy from the profiling callback brings\n   some costs however if someone wants no such sampling to\n   occur, and needs to be fixed in the future. For that we need\n   to have an instant access to the perf counter attribute.\n   This is a matter of a flag to add in the struct ftrace_event.\n\n - Take care of the events recursivity! Don\u0027t ever try to record\n   a lock event for example, it seems some locking is used in\n   the profiling fast path and lead to a tracing recursivity.\n   That will be fixed using raw spinlock or recursivity\n   protection.\n\n - [...]\n\n - Profit! :-)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1a0799a8fef5acc6503f9c5e79b2cd003317826c",
      "tree": "8aec6e623981cd8505de53752234d9f6b5d94843",
      "parents": [
        "82e04af498a85ba425efe77580b7ba08234411df"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 18:59:58 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:06 2009 +0200"
      },
      "message": "tracing/function-graph-tracer: Move graph event insertion helpers in the graph tracer file\n\nThe function graph events helpers which insert the function entry and\nreturn events into the ring buffer currently reside in trace.c\nBut this file is quite overloaded and the right place for these helpers\nis in the function graph tracer file.\n\nThen move them to trace_functions_graph.c\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c0a0d0d3f65284c71115a9bb1ed801ee33eeb552",
      "tree": "ac4c74e18c73f368abc8721f8f04c9101069fcaf",
      "parents": [
        "5e5bf483986ad86ad25f25eec5299c86eb2d1c57"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 17:51:13 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:05 2009 +0200"
      },
      "message": "tracing/core: Make the stack entry helpers global\n\nMake the stacktrace event insertion helpers globals.\nThis has two effects:\n\n- Prepare for moving the sched events insertion helpers to\n  the sched switch tracer file.\n- Move some ifdef outside function definitions\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e5bf483986ad86ad25f25eec5299c86eb2d1c57",
      "tree": "51ca52240afe82bab1366b1677d9f8a55bbee6fb",
      "parents": [
        "07868b086cca784f4b532fc2ab574ec3a73b468a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 29 17:11:12 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 06 07:28:05 2009 +0200"
      },
      "message": "tracing/core: Turn ftrace_cpu_disabled into a global var\n\nIn order to prepare the moving of the function graph tracer insertion\nhelpers from trace.c to trace_functions_graph.c, we need to export the\nftrace_cpu_disabled variable.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1f9963cbb0280e0cd554161e00f1a0eeddbf1ae1",
      "tree": "80e27aa2cf5401fc04f7dbb806ad7e0ec04b6e8c",
      "parents": [
        "ff4e9da2330beb8d64498a513d3f9694e941b01a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jul 20 10:20:53 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 13:29:19 2009 -0400"
      },
      "message": "tracing/filters: improve subsystem filter\n\nCurrently a subsystem filter should be applicable to all events\nunder the subsystem, and if it failed, all the event filters\nwill be cleared. Those behaviors make subsys filter much less\nuseful:\n\n  # echo \u0027vec \u003d\u003d 1\u0027 \u003e irq/softirq_entry/filter\n  # echo \u0027irq \u003d\u003d 5\u0027 \u003e irq/filter\n  bash: echo: write error: Invalid argument\n  # cat irq/softirq_entry/filter\n  none\n\nI\u0027d expect it set the filter for irq_handler_entry/exit, and\nnot touch softirq_entry/exit.\n\nThe basic idea is, try to see if the filter can be applied\nto which events, and then just apply to the those events:\n\n  # echo \u0027vec \u003d\u003d 1\u0027 \u003e softirq_entry/filter\n  # echo \u0027irq \u003d\u003d 5\u0027 \u003e filter\n  # cat irq_handler_entry/filter\n  irq \u003d\u003d 5\n  # cat softirq_entry/filter\n  vec \u003d\u003d 1\n\nChangelog for v2:\n- do some cleanups to address Frederic\u0027s comments.\n\nInspired-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A63D485.7030703@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "dc82ec98a4727fd51b77e92d05fe7d2db3dcc11c",
      "tree": "c66955e01458db480185c963304a60b6fd77c72c",
      "parents": [
        "c5cb183608167c744cb28bbd85884be5a4ce875d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jul 09 16:22:22 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 11:55:28 2009 +0200"
      },
      "message": "tracing/filter: Remove empty subsystem and its directory\n\nRemove empty subsystem and its directory when module unload.\n\nBefore patch:\n # rmmod trace-events-sample.ko\n # ls sample\n enable  filter\n\nAfter patch:\n # rmmod trace-events-sample.ko\n # ls sample\n ls: cannot access sample: No such file or directory\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A55A8BE.9010707@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "020e5f85cb087a40572c8b8b2dd06292a14fa212",
      "tree": "d1bd09885693dd9d5e9db995cb0f7f58aa0e1bb8",
      "parents": [
        "c5cb5a2d8d7dc872cf1504091ad0e59fe5ff7cb5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jul 01 10:47:05 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 01 15:44:24 2009 +0200"
      },
      "message": "tracing/events: Add trace_event boot option\n\nWe already have ftrace\u003d boot option, and this adds a similar\nboot option for trace events, so allow trace events to be\nenabled at boot, for boot debugging purpose.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4ACE29.3010407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1155de47cd66d0c496d5a6fb2223e980ef1285b2",
      "tree": "0ee762d6b1215a37fe89acc174de8cbbf476d218",
      "parents": [
        "00e54d087afb3867b0b461aef6c1ff433d0df564"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 25 14:30:12 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 10:31:30 2009 +0200"
      },
      "message": "ring-buffer: Make it generally available\n\nIn hunting down the cause for the hwlat_detector ring buffer spew in\nmy failed -next builds it became obvious that folks are now treating\nring_buffer as something that is generic independent of tracing and thus,\nsuitable for public driver consumption.\n\nGiven that there are only a few minor areas in ring_buffer that have any\nreliance on CONFIG_TRACING or CONFIG_FUNCTION_TRACER, provide stubs for\nthose and make it generally available.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jon Masters \u003cjcm@jonmasters.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20090625053012.GB19944@linux-sh.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0ad5d703c6c0fcd385d956555460df95dff7eb7e",
      "tree": "4b777100f9be4fe90ca4bd043b9f98df672b5b3b",
      "parents": [
        "44347d947f628060b92449702071bfe1d31dfb75",
        "1cb81b143fa8f0e4629f10690862e2e52ca792ff"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:18:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 13:36:22 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/hw-branch-tracing\u0027 into tracing/core\n\nMerge reason: this topic is ready for upstream now. It passed\n              Oleg\u0027s review and Andrew had no further mm/*\n              objections/observations either.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9456f0fa6d3cb944d3b9fc31c9a244e0362c26ea",
      "tree": "9e6e97199f63c786a79966a5938873a98591e10c",
      "parents": [
        "71e1c8ac42ae4038ddb1367cce7097ab868dc532"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 21:54:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 23:11:41 2009 -0400"
      },
      "message": "tracing: reset ring buffer when removing modules with events\n\nLi Zefan found that there\u0027s a race using the event ids of events and\nmodules. When a module is loaded, an event id is incremented. We only\nhave 16 bits for event ids (65536) and there is a possible (but highly\nunlikely) race that we could load and unload a module that registers\nevents so many times that the event id counter overflows.\n\nWhen it overflows, it then restarts and goes looking for available\nids. An id is available if it was added by a module and released.\n\nThe race is if you have one module add an id, and then is removed.\nAnother module loaded can use that same event id. But if the old module\nstill had events in the ring buffer, the new module\u0027s call back would\nget bogus data.  At best (and most likely) the output would just be\ngarbage. But if the module for some reason used pointers (not recommended)\nthen this could potentially crash.\n\nThe safest thing to do is just reset the ring buffer if a module that\nregistered events is removed.\n\n[ Impact: prevent unpredictable results of event id overflows ]\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49FEAFD0.30106@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "20c8928abe70e204bd077ab6cfe23002d7788983",
      "tree": "e161656f99c814ebdd69df8b5a79dab58f80065e",
      "parents": [
        "2df75e415709ad12862028916c772c1f377f6a7c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 06 10:33:45 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 10:38:19 2009 +0200"
      },
      "message": "tracing/events: fix concurrent access to ftrace_events list\n\nA module will add/remove its trace events when it gets loaded/unloaded, so\nthe ftrace_events list is not \"const\", and concurrent access needs to be\nprotected.\n\nThis patch thus fixes races between loading/unloding modules and read\n\u0027available_events\u0027 or read/write \u0027set_event\u0027, etc.\n\nBelow shows how to reproduce the race:\n\n # for ((; ;)) { cat /mnt/tracing/available_events; } \u003e /dev/null \u0026\n # for ((; ;)) { insmod trace-events-sample.ko; rmmod sample; } \u0026\n\nAfter a while:\n\nBUG: unable to handle kernel paging request at 0010011c\nIP: [\u003cc1080f27\u003e] t_next+0x1b/0x2d\n...\nCall Trace:\n [\u003cc10c90e6\u003e] ? seq_read+0x217/0x30d\n [\u003cc10c8ecf\u003e] ? seq_read+0x0/0x30d\n [\u003cc10b4c19\u003e] ? vfs_read+0x8f/0x136\n [\u003cc10b4fc3\u003e] ? sys_read+0x40/0x65\n [\u003cc1002a68\u003e] ? sysenter_do_call+0x12/0x36\n\n[ Impact: fix races when concurrent accessing ftrace_events list ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4A00F709.3080800@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b3725621074040d380664964ffbc40610aef8c6",
      "tree": "3a78292a08cc9c87653be2e42d084a7d7f5989bf",
      "parents": [
        "a118e4d1402f1349fe3d953493e4168a300a752d"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:59 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:11 2009 +0200"
      },
      "message": "tracing/filters: a better event parser\n\nReplace the current event parser hack with a better one.  Filters are\nno longer specified predicate by predicate, but all at once and can\nuse parens and any of the following operators:\n\nnumeric fields:\n\n\u003d\u003d, !\u003d, \u003c, \u003c\u003d, \u003e, \u003e\u003d\n\nstring fields:\n\n\u003d\u003d, !\u003d\n\npredicates can be combined with the logical operators:\n\n\u0026\u0026, ||\n\nexamples:\n\n\"common_preempt_count \u003e 4\" \u003e filter\n\n\"((sig \u003e\u003d 10 \u0026\u0026 sig \u003c 15) || sig \u003d\u003d 17) \u0026\u0026 comm !\u003d bash\" \u003e filter\n\nIf there was an error, the erroneous string along with an error\nmessage can be seen by looking at the filter e.g.:\n\n((sig \u003e\u003d 10 \u0026\u0026 sig \u003c 15) || dsig \u003d\u003d 17) \u0026\u0026 comm !\u003d bash\n^\nparse_error: Field not found\n\nCurrently the caret for an error always appears at the beginning of\nthe filter; a real position should be used, but the error message\nshould be useful even without it.\n\nTo clear a filter, \u00270\u0027 can be written to the filter file.\n\nFilters can also be set or cleared for a complete subsystem by writing\nthe same filter as would be written to an individual event to the\nfilter file at the root of the subsytem.  Note however, that if any\nevent in the subsystem lacks a field specified in the filter being\nset, the set will fail and all filters in the subsytem are\nautomatically cleared.  This change from the previous version was made\nbecause using only the fields that happen to exist for a given event\nwould most likely result in a meaningless filter.\n\nBecause the logical operators are now implemented as predicates, the\nmaximum number of predicates in a filter was increased from 8 to 16.\n\n[ Impact: add new, extended trace-filter implementation ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905899.6416.121.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a118e4d1402f1349fe3d953493e4168a300a752d",
      "tree": "bd4c2fccee4528bf7d1536e33218516953904740",
      "parents": [
        "30e673b230f9d556eb81ef68a7b1a08c8b3b142c"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:53 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:03 2009 +0200"
      },
      "message": "tracing/filters: distinguish between signed and unsigned fields\n\nThe new filter comparison ops need to be able to distinguish between\nsigned and unsigned field types, so add an is_signed flag/param to the\nevent field struct/trace_define_fields().  Also define a simple macro,\nis_signed_type() to determine the signedness at compile time, used in the\ntrace macros.  If the is_signed_type() macro won\u0027t work with a specific\ntype, a new slightly modified version of TRACE_FIELD() called\nTRACE_FIELD_SIGN(), allows the signedness to be set explicitly.\n\n[ Impact: extend trace-filter code for new feature ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905893.6416.120.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30e673b230f9d556eb81ef68a7b1a08c8b3b142c",
      "tree": "219bb8cfce0b36f05e3c21ab10a29f8f56d47d7e",
      "parents": [
        "0f9a623dd6c9b5b4dd00c232f29525bfc7a8ecf2"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:47 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:05:54 2009 +0200"
      },
      "message": "tracing/filters: move preds into event_filter object\n\nCreate a new event_filter object, and move the pred-related members\nout of the call and subsystem objects and into the filter object - the\ndetails of the filter implementation don\u0027t need to be exposed in the\ncall and subsystem in any case, and it will also help make the new\nparser implementation a little cleaner.\n\n[ Impact: refactor trace-filter code to prepare for new features ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905887.6416.119.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "416dfdcdb894432547ead4fcb9fa6a36b396059e",
      "tree": "8033fdda07397a59c5fa98c88927040906ce6c1a",
      "parents": [
        "56449f437add737a1e5e1cb7e00f63ac8ead1938",
        "091069740304c979f957ceacec39c461d0192158"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 24 10:11:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 24 10:11:23 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc3\u0027 into tracing/hw-branch-tracing\n\nConflicts:\n\tarch/x86/kernel/ptrace.c\n\nMerge reason: fix the conflict above, and also pick up the CONFIG_BROKEN\n              dependency change from upstream so that we can remove it\n\t      here.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a4f453b6d7379a7c380825949977c5a838aa012",
      "tree": "9f5450c7a1abc865b998885affe964d4670a08bc",
      "parents": [
        "3554228d4289098a8fe5cfd87512ec32a19bbe5a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 22 16:53:34 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 22 11:36:38 2009 +0200"
      },
      "message": "tracing/events: make struct trace_entry-\u003etype to be int type\n\nstruct trace_entry-\u003etype is unsigned char, while trace event\u0027s id is\nint type, thus for a event with id \u003e\u003d 256, it\u0027s entry-\u003etype is cast\nto (id % 256), and then we can\u0027t see the trace output of this event.\n\n # insmod trace-events-sample.ko\n # echo foo_bar \u003e /mnt/tracing/set_event\n # cat /debug/tracing/events/trace-events-sample/foo_bar/id\n 256\n # cat /mnt/tracing/trace_pipe\n           \u003c...\u003e-3548  [001]   215.091142: Unknown type 0\n           \u003c...\u003e-3548  [001]   216.089207: Unknown type 0\n           \u003c...\u003e-3548  [001]   217.087271: Unknown type 0\n           \u003c...\u003e-3548  [001]   218.085332: Unknown type 0\n\n[ Impact: fix output for trace events with id \u003e\u003d 256 ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c49EEDB0E.5070207@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac1adc55fc71c7515caa2eb0e63e49b3d1c6a47c",
      "tree": "7a97cf9512572c53d0802725f8e0ad6a2d4b2204",
      "parents": [
        "46de405f25f1d9fa73b657ffbb752aa0cc87a91d"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Fri Apr 17 00:27:08 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 18:28:27 2009 +0200"
      },
      "message": "tracing/filters: add filter_mutex to protect filter predicates\n\nThis patch adds a filter_mutex to prevent the filter predicates from\nbeing accessed concurrently by various external functions.\n\nIt\u0027s based on a previous patch by Li Zefan:\n        \"[PATCH 7/7] tracing/filters: make filter preds RCU safe\"\n\nv2 changes:\n\n- fixed wrong value returned in a add_subsystem_pred() failure case\n  noticed by Li Zefan.\n\n[ Impact: fix trace filter corruption/crashes on parallel access ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1239946028.6639.13.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a59fd6027218bd7c994e39d14afe0242f895144f",
      "tree": "c22e6ff2924726319eac84c480eca72066bad660",
      "parents": [
        "f42c85e74faa422cf0bc747ed808681145448f88"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 13:52:20 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:58:00 2009 -0400"
      },
      "message": "tracing/events: convert event call sites to use a link list\n\nImpact: makes it possible to define events in modules\n\nThe events are created by reading down the section that they are linked\nin by the macros. But this is not scalable to modules. This patch converts\nthe manipulations to use a global link list, and on boot up it adds\nthe items in the section to the list.\n\nThis change will allow modules to add their tracing events to the list as\nwell.\n\nNote, this change alone does not permit modules to use the TRACE_EVENT macros,\nbut the change is needed for them to eventually do so.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "97f2025153499faa17267a0d4e18c7afaf73f39d",
      "tree": "cd3ea51a93093ea5250ef38b4b5bf6c2aa3f9ed5",
      "parents": [
        "9504504cbab29ecb694186b1c5b15d3579c43c51"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 13 11:20:49 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:58 2009 -0400"
      },
      "message": "tracing/events: move declarations from trace directory to core include\n\nIn preparation to allowing trace events to happen in modules, we need\nto move some of the local declarations in the kernel/trace directory\ninto include/linux.\n\nThis patch simply moves the declarations and performs no context changes.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9504504cbab29ecb694186b1c5b15d3579c43c51",
      "tree": "fd91bec634dfff191699616523812a3d4ffe6348",
      "parents": [
        "a8d154b009168337494fbf345671bab74d3e4b8b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Apr 11 12:59:57 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:57 2009 -0400"
      },
      "message": "tracing: make trace_seq operations available for core kernel\n\nIn the process to make TRACE_EVENT macro work for modules, the trace_seq\noperations must be available for core kernel code.\n\nThese operations are quite useful and can be used for other implementations.\n\nThe main idea is that we create a trace_seq handle that acts very much\nlike the seq_file handle.\n\n\tstruct trace_seq *s \u003d kmalloc(sizeof(*s, GFP_KERNEL);\n\n\ttrace_seq_init(s);\n\ttrace_seq_printf(s, \"some data %d\\n\", variable);\n\n\tprintk(\"%s\", s-\u003ebuffer);\n\nThe main use is to allow a top level function call several other functions\nthat may store printf like data into the buffer. Then at the end, the top\nlevel function can process all the data with any method it would like to.\nIt could be passed to userspace, output via printk or even use seq_file:\n\n\ttrace_seq_to_user(s, ubuf, cnt);\n\tseq_puts(m, s-\u003ebuffer);\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a19e53c1514ad8e9c3cbab40c6c3f52c86f403d",
      "tree": "1089246a64f65b2b3c2ba29182ed4f9ce9ad375e",
      "parents": [
        "b5c851a88a369854c04e511cefb84ea2d0cfa209"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Mon Apr 13 03:17:50 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 00:03:55 2009 +0200"
      },
      "message": "tracing/filters: allow on-the-fly filter switching\n\nThis patch allows event filters to be safely removed or switched\non-the-fly while avoiding the use of rcu or the suspension of tracing of\nprevious versions.\n\nIt does it by adding a new filter_pred_none() predicate function which\ndoes nothing and by never deallocating either the predicates or any of\nthe filter_pred members used in matching; the predicate lists are\nallocated and initialized during ftrace_event_calls initialization.\n\nWhenever a filter is removed or replaced, the filter_pred_* functions\ncurrently in use by the affected ftrace_event_call are immediately\nswitched over to to the filter_pred_none() function, while the rest of\nthe filter_pred members are left intact, allowing any currently\nexecuting filter_pred_* functions to finish up, using the values they\u0027re\ncurrently using.\n\nIn the case of filter replacement, the new predicate values are copied\ninto the old predicates after the above step, and the filter_pred_none()\nfunctions are replaced by the filter_pred_* functions for the new\nfilter.  In this case, it is possible though very unlikely that a\nprevious filter_pred_* is still running even after the\nfilter_pred_none() switch and the switch to the new filter_pred_*.  In\nthat case, however, because nothing has been deallocated in the\nfilter_pred, the worst that can happen is that the old filter_pred_*\nfunction sees the new values and as a result produces either a false\npositive or a false negative, depending on the values it finds.\n\nSo one downside to this method is that rarely, it can produce a bad\nmatch during the filter switch, but it should be possible to live with\nthat, IMHO.\n\nThe other downside is that at least in this patch the predicate lists\nare always pre-allocated, taking up memory from the start.  They could\nprobably be allocated on first-use, and de-allocated when tracing is\ncompletely stopped - if this patch makes sense, I could create another\none to do that later on.\n\nOh, and it also places a restriction on the size of __arrays in events,\ncurrently set to 128, since they can\u0027t be larger than the now embedded\nstr_val arrays in the filter_pred struct.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1239610670.6660.49.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb02ce017dd83985041a7e54c6449f92d53b026f",
      "tree": "7f52a3e92bf3dae1f3c7754a58ab76fb2eceb2e1",
      "parents": [
        "5f77a88b3f8268b11940b51d2e03d26a663ceb90"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Wed Apr 08 03:15:54 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 00:00:56 2009 +0200"
      },
      "message": "tracing/filters: use ring_buffer_discard_commit() in filter_check_discard()\n\nThis patch changes filter_check_discard() to make use of the new\nring_buffer_discard_commit() function and modifies the current users to\ncall the old commit function in the non-discard case.\n\nIt also introduces a version of filter_check_discard() that uses the\nglobal trace buffer (filter_current_check_discard()) for those cases.\n\nv2 changes:\n\n- fix compile error noticed by Ingo Molnar\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c1239178554.10295.36.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77d9f465d46fd67cdb82ee5e1ab99dd57a17c486",
      "tree": "c21063ae5dff55522593f29e952c8a05958c6ce6",
      "parents": [
        "fa1b47dd85453ec7d4bcfe4aa4a2d172ba452fc3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 02 01:16:59 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 00:00:54 2009 +0200"
      },
      "message": "tracing/filters: use ring_buffer_discard_commit for discarded events\n\nThe ring_buffer_discard_commit makes better usage of the ring_buffer\nwhen an event has been discarded. It tries to remove it completely if\npossible.\n\nThis patch converts the trace event filtering to use\nring_buffer_discard_commit instead of the ring_buffer_event_discard.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e45f2e2bd298e1ff687448e5fd15a3588b5807ec",
      "tree": "353f132d53ecb3e991cf59c3d43a7664cb87b743",
      "parents": [
        "e1112b4d96859367a93468027c9635e2ac04eb3f"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Mar 31 00:49:16 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 00:00:51 2009 +0200"
      },
      "message": "tracing/filters: add TRACE_EVENT_FORMAT_NOFILTER event macro\n\nFrederic Weisbecker suggested that the trace_special event shouldn\u0027t be\nfilterable; this patch adds a TRACE_EVENT_FORMAT_NOFILTER event macro\nthat allows an event format to be exported without having a filter\nattached, and removes filtering from the trace_special event.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1112b4d96859367a93468027c9635e2ac04eb3f",
      "tree": "5170980ea71ee4bb5d0196880b58dbc997211b65",
      "parents": [
        "66de7792c02693b49671afe58c771fde3b092fc7"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Mar 31 00:48:49 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 14 00:00:50 2009 +0200"
      },
      "message": "tracing/filters: add run-time field descriptions to TRACE_EVENT_FORMAT events\n\nThis patch adds run-time field descriptions to all the event formats\nexported using TRACE_EVENT_FORMAT.  It also hooks up all the tracers\nthat use them (i.e. the tracers in the \u0027ftrace subsystem\u0027) so they can\nalso have their output filtered by the event-filtering mechanism.\n\nWhen I was testing this, there were a couple of things that fooled me\ninto thinking the filters weren\u0027t working, when actually they were -\nI\u0027ll mention them here so others don\u0027t make the same mistakes (and file\nbug reports. ;-)\n\nOne is that some of the tracers trace multiple events e.g. the\nsched_switch tracer uses the context_switch and wakeup events, and if\nyou don\u0027t set filters on all of the traced events, the unfiltered output\nfrom the events without filters on them can make it look like the\nfiltering as a whole isn\u0027t working properly, when actually it is doing\nwhat it was asked to do - it just wasn\u0027t asked to do the right thing.\n\nThe other is that for the really high-volume tracers e.g. the function\ntracer, the volume of filtered events can be so high that it pushes the\nunfiltered events out of the ring buffer before they can be read so e.g.\ncat\u0027ing the trace file repeatedly shows either no output, or once in\nawhile some output but that isn\u0027t there the next time you read the\ntrace, which isn\u0027t what you normally expect when reading the trace file.\nIf you read from the trace_pipe file though, you can catch them before\nthey disappear.\n\nChanges from v1:\n\nAs suggested by Frederic Weisbecker:\n\n- get rid of externs in functions\n- added unlikely() to filter_check_discard()\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02af61bb50f5d5f0322dbe5ab2a0d75808d25c7b",
      "tree": "fa087ed8a584d7b66016e6a1421e538369d52e5a",
      "parents": [
        "abd41443ac76d3e9c29a8c1d9e9a3312306cc55e"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Apr 10 14:26:18 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 12 15:22:55 2009 +0200"
      },
      "message": "tracing, kmemtrace: Separate include/trace/kmemtrace.h to kmemtrace part and tracepoint part\n\nImpact: refactor code for future changes\n\nCurrent kmemtrace.h is used both as header file of kmemtrace and kmem\u0027s\ntracepoints definition.\n\nTracepoints\u0027 definition file may be used by other code, and should only have\ndefinition of tracepoint.\n\nWe can separate include/trace/kmemtrace.h into 2 files:\n\n  include/linux/kmemtrace.h: header file for kmemtrace\n  include/trace/kmem.h:      definition of kmem tracepoints\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c49DEE68A.5040902@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
      "tree": "45fa35b290005f8b241dd76b6342875b81432fc3",
      "parents": [
        "c61b79b6ef266890954213a701d8f6021d8c1289",
        "ab3c9c686e22ab264269337ce7b75d9760211198"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER\u003dy\n  branch tracer: Fix for enabling branch profiling makes sparse unusable\n  ftrace: Correct a text align for event format output\n  Update /debug/tracing/README\n  tracing/ftrace: alloc the started cpumask for the trace file\n  tracing, x86: remove duplicated #include\n  ftrace: Add check of sched_stopped for probe_sched_wakeup\n  function-graph: add proper initialization for init task\n  tracing/ftrace: fix missing include string.h\n  tracing: fix incorrect return type of ns2usecs()\n  tracing: remove CALLER_ADDR2 from wakeup tracer\n  blktrace: fix pdu_len when tracing packet command requests\n  blktrace: small cleanup in blk_msg_write()\n  blktrace: NUL-terminate user space messages\n  tracing: move scripts/trace/power.pl to scripts/tracing/power.pl\n"
    },
    {
      "commit": "5452af664f6fba26b80eb2c8c4ceae2999d5cf56",
      "tree": "08fb64bfc3242ad96b65719a55424db729585f17",
      "parents": [
        "a5dec5573f3c7e63f2f9b5852b9759ea342a5ff9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 27 00:25:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:43:07 2009 +0200"
      },
      "message": "tracing/ftrace: factorize the tracing files creation\n\nImpact: cleanup\n\nMost of the tracing files creation follow the same pattern:\n\nret \u003d debugfs_create_file(...)\nif (!ret)\n\tpr_warning(\"Couldn\u0027t create ... entry\\n\")\n\nUnify it!\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1238109938-11840-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "86665c75da41889f92b774f31ea5a9a436f392a8",
      "tree": "94b003ab677a64b7d0a6dcca1f636bbbc2a187c9",
      "parents": [
        "93776a8ec746cf9d32c36e5a5b23d28d8be28826",
        "1bbe2a83ab68e5cf8c66c372c7cb3b51910c2cfe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:41:14 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:41:17 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "cf8e3474654f20433aab9aa35826d43b5f245008",
      "tree": "bbb3e87ca324ae4192fd524c0777047ee075c5d9",
      "parents": [
        "301fd748e2c81e78e74edbc694a64caa7b95dda2"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 30 13:48:00 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:59:23 2009 +0200"
      },
      "message": "tracing: fix incorrect return type of ns2usecs()\n\nImpact: fix time output bug in 32bits system\n\nns2usecs() returns \u0027long\u0027, it\u0027s incorrect.\n\n(In i386)\n...\n          \u003cidle\u003e-0     [000]   521.442100: _spin_lock \u003c-tick_do_update_jiffies64\n          \u003cidle\u003e-0     [000]   521.442101: do_timer \u003c-tick_do_update_jiffies64\n          \u003cidle\u003e-0     [000]   521.442102: update_wall_time \u003c-do_timer\n          \u003cidle\u003e-0     [000]   521.442102: update_xtime_cache \u003c-update_wall_time\n....\n(It always print the time less than 2200 seconds besides ...)\nBecause \u0027long\u0027 is 32bits in i386. ( (1\u003c\u003c31) useconds is about 2200 seconds)\n\n...\n          \u003cidle\u003e-0     [001] 4154502640.134759: rcu_bh_qsctr_inc \u003c-__do_softirq\n          \u003cidle\u003e-0     [001] 4154502640.134760: _local_bh_enable \u003c-__do_softirq\n          \u003cidle\u003e-0     [001] 4154502640.134761: idle_cpu \u003c-irq_exit\n...\n(very large value)\nBecause \u0027long\u0027 is a signed type and it is 32bits in i386.\n\nChanges in v2:\nreturn \u0027unsigned long long\u0027 instead of \u0027cycle_t\u0027\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49D05D10.4030009@cn.fujitsu.com\u003e\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93776a8ec746cf9d32c36e5a5b23d28d8be28826",
      "tree": "6c472ae9f709246ee5268e1d71559d07839fb965",
      "parents": [
        "34886c8bc590f078d4c0b88f50d061326639198d",
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:47:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:47:45 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: update to upstream tracing facilities\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e8844e13ab73f1107aea4317a53ff5879f2e1d7",
      "tree": "36165371cf6fd26d674610f1c6bb5fac50e6e13f",
      "parents": [
        "c78a3956b982418186e40978a51636a2b43221bc",
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:34:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:34:42 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/hw-branch-tracing\n\nMerge reason: update to latest tracing and ptrace APIs\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87",
      "tree": "7163bac040f11c444b24cab53c4a784df73fa4f3",
      "parents": [
        "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:06 2009 +0200"
      },
      "message": "kmemtrace: use tracepoints\n\nkmemtrace now uses tracepoints instead of markers. We no longer need to\nuse format specifiers to pass arguments.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\n[ folded: Use the new TP_PROTO and TP_ARGS to fix the build.     ]\n[ folded: fix build when CONFIG_KMEMTRACE is disabled.           ]\n[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ]\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003cae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b54e45b0005875f59cb8b1c44d429a161d5f245",
      "tree": "0e7c98418384f3f773d2046eea50f529e89f1cba",
      "parents": [
        "0a5d649018b151cb9331c213a843ac4a3e7e44ab",
        "9a8118baaeb0eaa148913bed77bf9c6335f6ca63",
        "b14b70a6a4e394c9630bcde17e07d3bcdcbca27e",
        "fee039a1d05c6e0f71b0fe270d847742a02d56c4",
        "18cea4591a98817697017bcb056a848bae1205df",
        "548c316137901cc81dea35e26362a9d5ba0b89b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 17:46:40 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 17:46:40 2009 +0200"
      },
      "message": "Merge branches \u0027tracing/docs\u0027, \u0027tracing/filters\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/kprobes\u0027, \u0027tracing/blktrace-v2\u0027 and \u0027tracing/textedit\u0027 into tracing/core-v2\n"
    },
    {
      "commit": "a2a16d6a3156ef7309ca7328a20c35df9418e670",
      "tree": "8f21d9c56eb34f9bd1057929661c96d04329dd69",
      "parents": [
        "cafb168a1c92e4c9e1731fe3d666c39611762c49"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:17:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:11 2009 -0400"
      },
      "message": "function-graph: add option to calculate graph time or not\n\ngraph time is the time that a function is executing another function.\nThus if function A calls B, if graph-time is set, then the time for\nA includes B. This is the default behavior. But if graph-time is off,\nthen the time spent executing B is subtracted from A.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0706f1c48ca8a7ab478090b4e38f2e578ae2bfe0",
      "tree": "26b79090f8e7e62796bb871ff089d04799919855",
      "parents": [
        "493762fc534c71d11d489f872c4b4a2c61173668"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 23 23:12:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:09 2009 -0400"
      },
      "message": "tracing: adding function timings to function profiler\n\nIf the function graph trace is enabled, the function profiler will\nuse it to take the timing of the functions.\n\n cat /debug/tracing/trace_stat/functions\n\n  Function                               Hit    Time\n  --------                               ---    ----\n  mwait_idle                             127    183028.4 us\n  schedule                                26    151997.7 us\n  __schedule                              31    151975.1 us\n  sys_wait4                                2    74080.53 us\n  do_wait                                  2    74077.80 us\n  sys_newlstat                           138    39929.16 us\n  do_path_lookup                         179    39845.79 us\n  vfs_lstat_fd                           138    39761.97 us\n  user_path_at                           153    39469.58 us\n  path_walk                              179    39435.76 us\n  __link_path_walk                       189    39143.73 us\n[...]\n\nNote the times are skewed due to the function graph tracer not taking\ninto account schedules.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "be6f164a02f394675e2ac2077dd354cebef5b4c0",
      "tree": "9805294731c00ddb61857a4e1e42019058eb1542",
      "parents": [
        "8aef2d2856158a36c295a8d1288281e4839bff13"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 11:06:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 11:06:24 2009 -0400"
      },
      "message": "function-graph: add option for include sleep times\n\nImpact: give user a choice to show times spent while sleeping\n\nThe user may want to see the time a function spent sleeping.\nThis patch adds the trace option \"sleep-time\" to allow that.\nThe \"sleep-time\" option is default on.\n\n echo sleep-time \u003e /debug/tracing/trace_options\n\nproduces:\n\n ------------------------------------------\n 2)  avahi-d-3428  \u003d\u003e    \u003cidle\u003e-0\n ------------------------------------------\n\n 2)               |      finish_task_switch() {\n 2)   0.621 us    |        _spin_unlock_irq();\n 2)   2.202 us    |      }\n 2) ! 1002.197 us |    }\n 2) ! 1003.521 us |  }\n\nwhere as,\n\n echo nosleep-time \u003e /debug/tracing/trace_options\n\nproduces:\n\n 0)    \u003cidle\u003e-0    \u003d\u003e  yum-upd-3416\n ------------------------------------------\n\n 0)               |              finish_task_switch() {\n 0)   0.643 us    |                _spin_unlock_irq();\n 0)   2.342 us    |              }\n 0) + 41.302 us   |            }\n 0) + 42.453 us   |          }\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4bda2d517bfa3ce3d7044e06988cdddae7adffe2",
      "tree": "62d99deb281a0395942b462f7cff2d2b42f2d905",
      "parents": [
        "09f1f245c79585383de63e3ca54d0f91824bff3a"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Mar 24 02:14:31 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 08:26:52 2009 +0100"
      },
      "message": "tracing/filters: use trace_seq_printf() to print filters\n\nImpact: cleanup\n\nInstead of just using the trace_seq buffer to print the filters, use\ntrace_seq_printf() as it was intended to be used.\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: \u003d?ISO-8859-1?Q?Fr\u003dE9d\u003dE9ric?\u003d Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237878871.8339.59.camel@charm-linux\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "07edf7121374609709ef1b0889f6e7b8d6a62ec1",
      "tree": "ad1649c9546dc3ce23bb2f8609a7459a7ca2006e",
      "parents": [
        "9bd7d099ab3f10dd666da399c064999bae427cd9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Mar 22 23:10:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 23 09:22:14 2009 +0100"
      },
      "message": "tracing/events: don\u0027t use wake up for events\n\nImpact: fix hard-lockup with sched switch events\n\nSome ftrace events, such as sched wakeup, can be traced\nwhile the runqueue lock is hold. Since they are using\ntrace_current_buffer_unlock_commit(), they call wake_up()\nwhich can try to grab the runqueue lock too, resulting in\na deadlock.\n\nNow for all event, we call a new helper:\ntrace_nowake_buffer_unlock_commit() which do pretty the same than\ntrace_current_buffer_unlock_commit() except than it doesn\u0027t call\ntrace_wake_up().\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1237759847-21025-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cfb180f3e71b2a280a254c8646a9ab1beab63f84",
      "tree": "93fb1a319b40851ebb7a3cc0d9ea4cc9a88e919a",
      "parents": [
        "7ce7e4249921d5073e764f7ff7ad83cfa9894bd7"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sun Mar 22 03:31:17 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 22 18:38:47 2009 +0100"
      },
      "message": "tracing: add per-subsystem filtering\n\nThis patch adds per-subsystem filtering to the event tracing subsystem.\n\nIt adds a \u0027filter\u0027 debugfs file to each subsystem directory.  This file\ncan be written to to set filters; reading from it will display the\ncurrent set of filters set for that subsystem.\n\nBasically what it does is propagate the filter down to each event\ncontained in the subsystem.  If a particular event doesn\u0027t have a field\nwith the name specified in the filter, it simply doesn\u0027t get set for\nthat event.  You can verify whether or not the filter was set for a\nparticular event by looking at the filter file for that event.\n\nAs with per-event filters, compound expressions are supported, echoing\n\u00270\u0027 to the subsystem\u0027s filter file clears all filters in the subsystem,\netc.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237710677.7703.49.camel@charm-linux\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7ce7e4249921d5073e764f7ff7ad83cfa9894bd7",
      "tree": "d8a3026e85d3230ce39ca99f446abe76a710c337",
      "parents": [
        "2d622719f1572ef31e0616444a515eba3094d050"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sun Mar 22 03:31:04 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 22 18:38:46 2009 +0100"
      },
      "message": "tracing: add per-event filtering\n\nThis patch adds per-event filtering to the event tracing subsystem.\n\nIt adds a \u0027filter\u0027 debugfs file to each event directory.  This file can\nbe written to to set filters; reading from it will display the current\nset of filters set for that event.\n\nBasically, any field listed in the \u0027format\u0027 file for an event can be\nfiltered on (including strings, but not yet other array types) using\neither matching (\u0027\u003d\u003d\u0027) or non-matching (\u0027!\u003d\u0027) \u0027predicates\u0027.  A\n\u0027predicate\u0027 can be either a single expression:\n\n # echo pid !\u003d 0 \u003e filter\n\n # cat filter\n pid !\u003d 0\n\nor a compound expression of up to 8 sub-expressions combined using \u0027\u0026\u0026\u0027\nor \u0027||\u0027:\n\n # echo comm \u003d\u003d Xorg \u003e filter\n # echo \"\u0026\u0026 sig !\u003d 29\" \u003e filter\n\n # cat filter\n comm \u003d\u003d Xorg\n \u0026\u0026 sig !\u003d 29\n\nOnly events having field values matching an expression will be available\nin the trace output; non-matching events are discarded.\n\nNote that a compound expression is built up by echoing each\nsub-expression separately - it\u0027s not the most efficient way to do\nthings, but it keeps the parser simple and assumes that compound\nexpressions will be relatively uncommon.  In any case, a subsequent\npatch introducing a way to set filters for entire subsystems should\nmitigate any need to do this for lots of events.\n\nSetting a filter without an \u0027\u0026\u0026\u0027 or \u0027||\u0027 clears the previous filter\ncompletely and sets the filter to the new expression:\n\n # cat filter\n comm \u003d\u003d Xorg\n \u0026\u0026 sig !\u003d 29\n\n # echo comm !\u003d Xorg\n\n # cat filter\n comm !\u003d Xorg\n\nTo clear a filter, echo 0 to the filter file:\n\n # echo 0 \u003e filter\n # cat filter\n none\n\nThe limit of 8 predicates for a compound expression is arbitrary - for\nefficiency, it\u0027s implemented as an array of pointers to predicates, and\n8 seemed more than enough for any filter...\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237710665.7703.48.camel@charm-linux\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf027f645e6aee4f0ca6197a6b6a57f327fdb13f",
      "tree": "f8a20e8707967db5d9140f9069426f410a30dd32",
      "parents": [
        "0cf53ff62b3e9e491ff5e5f05b193fb6ce643047"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sun Mar 22 03:30:39 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 22 18:11:22 2009 +0100"
      },
      "message": "tracing: add run-time field descriptions for event filtering\n\nThis patch makes the field descriptions defined for event tracing\navailable at run-time, for the event-filtering mechanism introduced\nin a subsequent patch.\n\nThe common event fields are prepended with \u0027common_\u0027 in the format\ndisplay, allowing them to be distinguished from the other fields\nthat might internally have same name and can therefore be\nunambiguously used in filters.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237710639.7703.46.camel@charm-linux\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac199db0189c091f2863312061c0575937f68810",
      "tree": "0068aaa77ca00102ca60754eb32329f06821bba0",
      "parents": [
        "28bea271e58e429eccfad3d7ee2ad12d6ee015bf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Mar 19 20:26:15 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 20 10:17:07 2009 +0100"
      },
      "message": "ftrace: event profile hooks\n\nImpact: new tracing infrastructure feature\n\nProvide infrastructure to generate software perf counter events\nfrom tracepoints.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20090319194233.557364871@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "40ce74f19c28077550646c76d96a075bf312e461",
      "tree": "bd58d38b6ac806be6f59276f16d1e0758376fa1d",
      "parents": [
        "2fbcdb35aca614f9529a0e7d340146cf0b71684f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 19 14:03:53 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 19 15:58:47 2009 -0400"
      },
      "message": "tracing: remove recording function depth from trace_printk\n\nThe function depth in trace_printk was to facilitate the function\ngraph output. Now that the function graph calculates the depth within\nthe trace output, we no longer need to record the depth when the\ntrace_printk is called.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "327019b01e068d66dada6a8b2571180ab3674d20",
      "tree": "c81354a509d6962f6878145fcf3cdbe50a000a89",
      "parents": [
        "03418c7efaa429dc7647ac93e3862e3fe1816873",
        "62524d55e5b9ffe36e3bf3dd7a594114f150b449"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 06:59:56 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 06:59:56 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": "af4617bdba34aa556272b34c3986b0a4d588f568",
      "tree": "c46a6b695724ee27c0113f6affcebeffcefbcf23",
      "parents": [
        "37886f6a9f62d22530ffee8d3f9215c8345b6969"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 17 18:09:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 17 23:10:35 2009 -0400"
      },
      "message": "tracing: add global-clock option to provide cross CPU clock to traces\n\nImpact: feature to allow better serialized clock\n\nThis patch adds an option called \"global-clock\" that will allow\nthe tracer to switch to a slower but more accurate (across CPUs)\nclock.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4176935b58eeb636917e65a2c388e4607e36cce6",
      "tree": "dac4e0005cda5a3a5a313dde35bbac2877d9bd93",
      "parents": [
        "c269fc8c537d761f36cb98e637ae934d9331a9d5",
        "6adaad14d7d4d3ef31b4e2dc992b18b5da7c4eb3"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 17 10:37:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 17 10:37: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": "4ca530852346be239b7c19e7bec5d2b78855bebe",
      "tree": "96e5252faaf362115a96ed6df7c4e4f698a027dc",
      "parents": [
        "03303549b1695dc024d4a653cc16bd79f78f9750"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 16 19:20:15 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 16 23:27:06 2009 -0400"
      },
      "message": "tracing: protect reader of cmdline output\n\nImpact: fix to one cause of incorrect comm outputs in trace\n\nThe spinlock only protected the creation of a comm \u003c\u003d\u003e pid pair.\nBut it was possible that a reader could look up a pid, and get the\nwrong comm because it had no locking.\n\nThis also required changing trace_find_cmdline to copy the comm cache\nand not just send back a pointer to it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "7243f2145a9b06e5cf9a49fc9b8b9a4fff6fb42e",
      "tree": "50b73e168e0e8b711d5e1ca8878389464d6c905c",
      "parents": [
        "b478b782e110fdb4135caa3062b6d687e989d994",
        "62395efdb0ef42e664ca81677901268c403a6286",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/syscalls\u0027 and \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "bed1ffca022cc876fb83161d26670e9b5d3cf36b",
      "tree": "a896c79e9ea1af11f992826f1de7e2ece52fbe33",
      "parents": [
        "f58ba100678f421bdcb000a3c71793f432dfab93"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 13 15:42:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 16:57:42 2009 +0100"
      },
      "message": "tracing/syscalls: core infrastructure for syscalls tracing, enhancements\n\nImpact: new feature\n\nThis adds the generic support for syscalls tracing. This is\ncurrently exploited through a devoted tracer but other tracing\nengines can use it. (They just have to play with\n{start,stop}_ftrace_syscalls() and use the display callbacks\nunless they want to override them.)\n\nThe syscalls prototypes definitions are abused here to steal\nsome metadata informations:\n\n- syscall name, param types, param names, number of params\n\nThe syscall addr is not directly saved during this definition\nbecause we don\u0027t know if its prototype is available in the\nnamespace. But we don\u0027t really need it. The arch has just to\nbuild a function able to resolve the syscall number to its\nmetadata struct.\n\nThe current tracer prints the syscall names, parameters names\nand values (and their types optionally). Currently the value is\na raw hex but higher level values diplaying is on my TODO list.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236955332-10133-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "321bb5e1ac461c04b6a93f795010d6eb01d8c5ca",
      "tree": "409e0c0b867e2cb24abeec4bd8905d9cf1089cb6",
      "parents": [
        "ba9372a8f306c4e53a5f61dcbcd6c1e4a8c2e9ac"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Fri Mar 13 10:50:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:57:21 2009 +0100"
      },
      "message": "x86, hw-branch-tracer: add selftest\n\nAdd a selftest for the hw-branch-tracer.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nLKML-Reference: \u003c20090313105027.A30183@sedona.ch.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62a394eb77a1ddea73273f53ed8c3ccf6e04f2fb",
      "tree": "ee72d87524b29eb9457b45e02a4587d8fbd9191d",
      "parents": [
        "d2e82546ae98eee353fae57e389f487586fe380d",
        "1b3fa2ce64363c289b3b14723cca7290bf91cfce"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:23:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:23:39 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/syscalls\u0027; commit \u0027v2.6.29-rc8\u0027 into tracing/core\n"
    },
    {
      "commit": "ee08c6eccb7d1295516f7cf420fddf7b14e9146f",
      "tree": "ec6d209e47bb1a8910d16c1c8b4ea65959850689",
      "parents": [
        "4c6ed8f496fe89ff81b3d6e617a531bedfb613e4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Mar 07 05:52:59 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 06:25:43 2009 +0100"
      },
      "message": "tracing/ftrace: syscall tracing infrastructure, basics\n\nProvide basic callbacks to do syscall tracing.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1236401580-5758-2-git-send-email-fweisbec@gmail.com\u003e\n[ simplified it to a trace_printk() for now. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bdc067582b8b71c7771bab076bbc51569c594fb4",
      "tree": "a202353e4e365ae29c5bf95ca33eacd8eb4dfb54",
      "parents": [
        "eb1871f34358024acfa3523ef375ef14b7527173"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:12:52 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:15:46 2009 -0400"
      },
      "message": "tracing: add comment for use of double __builtin_consant_p\n\nImpact: documentation\n\nThe use of the double __builtin_contant_p checks in the event_trace_printk\ncan be confusing to developers and reviewers. This patch adds a comment\nto explain why it is there.\n\nRequested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLKML-Reference: \u003c20090313122235.43EB.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e9fb2b6d5845e24f104713591286b6f39761c027",
      "tree": "13239f3046b28b9b8b6166e438a4c509e57972c9",
      "parents": [
        "828275574e0161bdddb5817d4bd76a0265ef0470"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 14:19:25 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:00 2009 -0400"
      },
      "message": "tracing: have event_trace_printk use static tracer\n\nImpact: speed up on event tracing\n\nThe event_trace_printk is currently a wrapper function that calls\ntrace_vprintk. Because it uses a variable for the fmt it misses out\non the optimization of using the binary printk.\n\nThis patch makes event_trace_printk into a macro wrapper to use the\nfmt as the same as the trace_printks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "48ead02030f849d011259244bb4ea9b985479006",
      "tree": "4500f27dc7eb6567ca79dd03fa94fe9e56fbc316",
      "parents": [
        "db526ca329f855510e8ce672332eba3304aed590"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Mar 12 18:24:49 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:00 2009 -0400"
      },
      "message": "tracing/core: bring back raw trace_printk for dynamic formats strings\n\nImpact: fix callsites with dynamic format strings\n\nSince its new binary implementation, trace_printk() internally uses static\ncontainers for the format strings on each callsites. But the value is\nassigned once at build time, which means that it can\u0027t take dynamic\nformats.\n\nSo this patch unearthes the raw trace_printk implementation for the callers\nthat will need trace_printk to be able to carry these dynamic format\nstrings. The trace_printk() macro will use the appropriate implementation\nfor each callsite. Most of the time however, the binary implementation will\nstill be used.\n\nThe other impact of this patch is that mmiotrace_printk() will use the old\nimplementation because it calls the low level trace_vprintk and we can\u0027t\nguess here whether the format passed in it is dynamic or not.\n\nSome parts of this patch have been written by Steven Rostedt (most notably\nthe part that chooses the appropriate implementation for each callsites).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "1852fcce181faa237c010a3dbedb473cf9d4555f",
      "tree": "863cd12b573fd36436e7fb042f9bd96a73a9f725",
      "parents": [
        "73c5162aa362a543793f4a957c6c536dcbaa89ce"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 14:33:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:15:24 2009 -0400"
      },
      "message": "tracing: expand the ring buffers when an event is activated\n\nTo save memory, the tracer ring buffers are set to a minimum.\nThe activating of a trace expands the ring buffer size. This patch\nadds this expanding, when an event is activated.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "3c56819b14b00dd449bd776303e61f8532fad09f",
      "tree": "5a0617aa39fa441673382cf69d873b1906146e7e",
      "parents": [
        "b91facc367366b3f71375f337eb5997ec9ab4e69"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Feb 09 08:15:56 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 09 12:24:34 2009 -0500"
      },
      "message": "tracing: splice support for tracing_pipe\n\nAdded and implemented tracing_pipe_fops-\u003esplice_read(). This allows\nuserspace programs to get tracing data more efficiently.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b91facc367366b3f71375f337eb5997ec9ab4e69",
      "tree": "1f7c8914f493080cadcfdec23b33d9a5936fe98b",
      "parents": [
        "1dfba05d0f1a9b4245bb242a7c17fe448811a520"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Feb 06 18:30:44 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 12:37:27 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: handle the leaf functions from trace_pipe\n\nWhen one cats the trace file, the leaf functions are printed without brackets:\n\n function();\n\nwhereas in the trace_pipe file we\u0027ll see the following:\n\n function() {\n }\n\nThis is because the ring_buffer handling is not the same between those two files.\nOn the trace file, when an entry is printed, the iterator advanced and then we can\ncheck the next entry.\n\nThere is no iterator with trace_pipe, the current entry to print has been peeked\nand not consumed. So checking the next entry will still return the current one while\nwe don\u0027t consume it.\n\nThis patch introduces a new value for the output callbacks to ask the tracing\ncore to not consume the current entry after printing it.\n\nWe need it because we will have to consume the current entry ourself to check\nthe next one.\n\nNow the trace_pipe is able to handle well the leaf functions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1292211058aaf872eeb2a0e2677d237916b4501f",
      "tree": "7127ffe80e42faed85bf45b4182c97a39f299642",
      "parents": [
        "7447dce96f2233d250bc39a4a10a42f7c3dd46fc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 07 22:16:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:51:38 2009 +0100"
      },
      "message": "tracing/power: move the power trace headers to a dedicated file\n\nImpact: cleanup\n\nMove the power tracer headers to trace/power.h to keep ftrace.h and power bits\nmore easy to maintain as separated topics.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7447dce96f2233d250bc39a4a10a42f7c3dd46fc",
      "tree": "c02c991cca658e69a0c83c1a93b068df1d5caa53",
      "parents": [
        "2db270a80b8f2238e536876cfb3987af02684df8"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 07 21:33:57 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:51:37 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: provide a selftest for the function graph tracer\n\nMaking it more easy to do a basic regression test for this tracer.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44b0635481437140b0e29d6023f05e805d5e7620",
      "tree": "ff31986115075410d0479df307a6b9841976026c",
      "parents": [
        "4ad476e11f94fd3724c6e272d8220e99cd222b27",
        "57794a9d48b63e34acbe63282628c9f029603308"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:35:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:35:12 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core/devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n\nConflicts:\n\tkernel/trace/trace_hw_branches.c\n"
    },
    {
      "commit": "57794a9d48b63e34acbe63282628c9f029603308",
      "tree": "ed42d073f82cd91b8d8a331c60814aa699c3293d",
      "parents": [
        "a81bd80a0b0a405dc0483e2c428332d69da2c79f"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Fri Feb 06 17:33:27 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 07 20:03:36 2009 -0500"
      },
      "message": "trace: trivial fixes in comment typos.\n\nImpact: clean up\n\nFixed several typos in the comments.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "1830b52d0de8c60c4f5dfbac134aa8f69d815801",
      "tree": "2aa803853ac145fedd0d65324d77f64d25e7b3a2",
      "parents": [
        "43769f10b4826376cbf4ce17af74a5b4e8dc4fcd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 07 19:38:43 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 07 19:38:43 2009 -0500"
      },
      "message": "trace: remove deprecated entry-\u003ecpu\n\nImpact: fix to prevent developers from using entry-\u003ecpu\n\nWith the new ring buffer infrastructure, the cpu for the entry is\nimplicit with which CPU buffer it is on.\n\nThe original code use to record the current cpu into the generic\nentry header, which can be retrieved by entry-\u003ecpu. When the\nring buffer was introduced, the users were convert to use the\nthe cpu number of which cpu ring buffer was in use (this was passed\nto the tracers by the iterator: iter-\u003ecpu).\n\nUnfortunately, the cpu item in the entry structure was never removed.\nThis allowed for developers to use it instead of the proper iter-\u003ecpu,\nunknowingly, using an uninitialized variable. This was not the fault\nof the developers, since it would seem like the logical place to\nretrieve the cpu identifier.\n\nThis patch removes the cpu item from the entry structure and fixes\nall the users that should have been using iter-\u003ecpu.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b6f11df26fdc28324cf9c9e3b77f2dc985c1bb13",
      "tree": "e03b4b8b9dad8a2d3f81574c10aab8fb7a779cbb",
      "parents": [
        "51a763dd84253bab1d0a1e68e11a7753d1b702ca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 05 18:02:00 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 06 01:01:41 2009 +0100"
      },
      "message": "trace: Call tracing_reset_online_cpus before tracer-\u003einit()\n\nImpact: cleanup\n\nTo make it easy for ftrace plugin writers, as this was open coded in\nthe existing plugins\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "51a763dd84253bab1d0a1e68e11a7753d1b702ca"
}
