)]}'
{
  "log": [
    {
      "commit": "2fc1b6f0d0a719e1e2a30bf076a3a799feaf6af2",
      "tree": "3101c47095ef438b6657b7e0dbb57b2f7188666f",
      "parents": [
        "3b6cfdb1714a33ae4d2ca9fbc818a42cf7adee69"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Tue Apr 19 09:35:28 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:44 2011 -0400"
      },
      "message": "tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n\nFilesystem, like Btrfs, has some \"ULL\" macros, and when these macros are passed\nto tracepoints\u0027__print_symbolic(), there will be 64-\u003e32 truncate WARNINGS during\ncompiling on 32bit box.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4DACE6E0.7000507@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e4a9ea5ee7c8812a7bf0c3fb725ceeaa3d4c2fcc",
      "tree": "1b25668508fa302a6ada053c895cd55727f798f1",
      "parents": [
        "9ffdc6c37df131f89d52001e0ef03091b158826f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jan 27 09:15:30 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 02 21:37:13 2011 -0500"
      },
      "message": "tracing: Replace trace_event struct array with pointer array\n\nCurrently the trace_event structures are placed in the _ftrace_events\nsection, and at link time, the linker makes one large array of all\nthe trace_event structures. On boot up, this array is read (much like\nthe initcall sections) and the events are processed.\n\nThe problem is that there is no guarantee that gcc will place complex\nstructures nicely together in an array format. Two structures in the\nsame file may be placed awkwardly, because gcc has no clue that they\nare suppose to be in an array.\n\nA hack was used previous to force the alignment to 4, to pack the\nstructures together. But this caused alignment issues with other\narchitectures (sparc).\n\nInstead of packing the structures into an array, the structures\u0027 addresses\nare now put into the _ftrace_event section. As pointers are always the\nnatural alignment, gcc should always pack them tightly together\n(otherwise initcall, extable, etc would also fail).\n\nBy having the pointers to the structures in the section, we can still\niterate the trace_events without causing unnecessary alignment problems\nwith other architectures, or depending on the current behaviour of\ngcc that will likely change in the future just to tick us kernel developers\noff a little more.\n\nThe _ftrace_event section is also moved into the .init.data section\nas it is now only needed at boot up.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "042957801626465492b9428860de39a3cb2a8219",
      "tree": "b0997862babd5e474c500b1b4c522f3a03842106",
      "parents": [
        "45677454dd6d128608117abe7dcd2bdfdd7cdf72"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 12 22:32:11 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 19 10:18:47 2010 -0500"
      },
      "message": "tracing/events: Show real number in array fields\n\nCurrently we have in something like the sched_switch event:\n\n  field:char prev_comm[TASK_COMM_LEN];\toffset:12;\tsize:16;\tsigned:1;\n\nWhen a userspace tool such as perf tries to parse this, the\nTASK_COMM_LEN is meaningless. This is done because the TRACE_EVENT() macro\nsimply uses a #len to show the string of the length. When the length is\nan enum, we get a string that means nothing for tools.\n\nBy adding a static buffer and a mutex to protect it, we can store the\nstring into that buffer with snprintf and show the actual number.\nNow we get:\n\n  field:char prev_comm[16];       offset:12;      size:16;        signed:1;\n\nSomething much more useful.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "53cf810b1934f08a68e131aeeb16267a778f43df",
      "tree": "9407f9897084bb9669668c74f4f2c904f5e8877f",
      "parents": [
        "fe5542030dce3b951f9eaf3ecb9a7bc5fa7bfed1"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 18 02:11:42 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 18 14:37:44 2010 +0100"
      },
      "message": "tracing: Allow syscall trace events for non privileged users\n\nAs for the raw syscalls events, individual syscall events won\u0027t\nleak system wide information on task bound tracing. Allow non\nprivileged users to use them in such workflow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\n"
    },
    {
      "commit": "1ed0c5971159974185653170543a764cc061c857",
      "tree": "5887072ddc1c87776886c9a1b6ef61836f1ae925",
      "parents": [
        "61c32659b12c44e62de32fbf99f7e4ca783dc38b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 18 01:46:57 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 18 14:37:42 2010 +0100"
      },
      "message": "tracing: New macro to set up initial event flags value\n\nThis introduces the new TRACE_EVENT_FLAGS() macro in order\nto set up initial event flags value.\n\nThis macro must simply follow the definition of a trace event\nand take the event name and the flag value as parameters:\n\nTRACE_EVENT(my_event, .....\n....\n);\n\nTRACE_EVENT_FLAGS(my_event, 1)\n\nThis will set up 1 as the initial my_event-\u003eflags value.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\n"
    },
    {
      "commit": "819ce45afebd77a9de736fa5304ba8352d11dff9",
      "tree": "6e63ac0ac561c85f241efe0656995464fc012a8e",
      "parents": [
        "669336e4cf3e1cb95800f3f5924558a76d723c21"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 18:41:24 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 02 01:31:28 2010 +0200"
      },
      "message": "tracing: Drop cpparg() macro\n\nDrop the cpparg() macro that wraps CPP parameters. We already have\nthe PARAM() macro for that, no need to have several versions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "bc289ae98b75d93228d24f521ef02a076e506e94",
      "tree": "50d151d0fbde1b106932c0f80a2639839d261ca3",
      "parents": [
        "985023dee6e212493831431ba2e3ce8918f001b2"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Jun 03 18:26:24 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 20 22:05:34 2010 -0400"
      },
      "message": "tracing: Reduce latency and remove percpu trace_seq\n\n__print_flags() and __print_symbolic() use percpu trace_seq:\n\n1) Its memory is allocated at compile time, it wastes memory if we don\u0027t use tracing.\n2) It is percpu data and it wastes more memory for multi-cpus system.\n3) It disables preemption when it executes its core routine\n   \"trace_seq_printf(s, \"%s: \", #call);\" and introduces latency.\n\nSo we move this trace_seq to struct trace_iterator.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4C078350.7090106@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a1d0ce8213e9ddf4046ef5ba95c55762d075f541",
      "tree": "c72fb18588de555c8fa0c61452ae14ffe37dbf8a",
      "parents": [
        "d62f85d1e22e537192ce494c89540e1ac0d8bfc7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 08 11:22:06 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 28 21:13:14 2010 -0400"
      },
      "message": "tracing: Use class-\u003ereg() for all registering of events\n\nBecause kprobes and syscalls need special processing to register\nevents, the class-\u003ereg() method was created to handle the differences.\n\nBut instead of creating a default -\u003ereg for perf and ftrace events,\nthe code was scattered with:\n\n\tif (class-\u003ereg)\n\t\tclass-\u003ereg();\n\telse\n\t\tdefault_reg();\n\nThis is messy and can also lead to bugs.\n\nThis patch cleans up this code and creates a default reg() entry for\nthe events allowing for the code to directly call the class-\u003ereg()\nwithout the condition.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8",
      "tree": "3f44aa013d31d34951e9610e79ff14c1148ad6ac",
      "parents": [
        "7be7923633a142402266d642ccebf74f556a649b",
        "018378c55b03f88ff513aba4e0e93b8d4a9cf241"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:57 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "b0f82b81fe6bbcf78d478071f33e44554726bc81",
      "tree": "6305c095b927f956a791b9dce687cb94a21718e6",
      "parents": [
        "c9cf4dbb4d9ca715d8fedf13301a53296429abc6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 07:47:21 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 08 23:31:27 2010 +0200"
      },
      "message": "perf: Drop the skip argument from perf_arch_fetch_regs_caller\n\nDrop this argument now that we always want to rewind only to the\nstate of the first caller.\nIt means frame pointers are not necessary anymore to reliably get\nthe source of an event. But this also means we need this helper\nto be a macro now, as an inline function is not an option since\nwe need to know when to provide a default implentation.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "3771f0771154675d4a0ca780be2411f3cc357208",
      "tree": "106512f307e2aa0a89f92c01598d5fa75903af47",
      "parents": [
        "8a49542c0554af7d0073aac0ee73ee65b807ef34"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 12:31:09 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:09 2010 +0200"
      },
      "message": "perf_events, trace: Fix probe unregister race\n\ntracepoint_probe_unregister() does not synchronize against the probe\ncallbacks, so do that explicitly. This properly serializes the callbacks\nand the free of the data used therein.\n\nAlso, use this_cpu_ptr() where possible.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274438476.1674.1702.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5617b200ac52e35f7e8cf05a17b0a2d50f6b3e9",
      "tree": "40d5e99660c77c5791392d349a93113c044dbf14",
      "parents": [
        "cad719d86e9dbd06634eaba6401e022c8101d6b2",
        "49c177461bfbedeccbab22bf3905db2f9da7f1c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (61 commits)\n  tracing: Add __used annotation to event variable\n  perf, trace: Fix !x86 build bug\n  perf report: Support multiple events on the TUI\n  perf annotate: Fix up usage of the build id cache\n  x86/mmiotrace: Remove redundant instruction prefix checks\n  perf annotate: Add TUI interface\n  perf tui: Remove annotate from popup menu after failure\n  perf report: Don\u0027t start the TUI if -D is used\n  perf: Fix getline undeclared\n  perf: Optimize perf_tp_event_match()\n  perf: Remove more code from the fastpath\n  perf: Optimize the !vmalloc backed buffer\n  perf: Optimize perf_output_copy()\n  perf: Fix wakeup storm for RO mmap()s\n  perf-record: Share per-cpu buffers\n  perf-record: Remove -M\n  perf: Ensure that IOC_OUTPUT isn\u0027t used to create multi-writer buffers\n  perf, trace: Optimize tracepoints by using per-tracepoint-per-cpu hlist to track events\n  perf, trace: Optimize tracepoints by removing IRQ-disable from perf/tracepoint interaction\n  perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfig\n  ...\n"
    },
    {
      "commit": "49c177461bfbedeccbab22bf3905db2f9da7f1c3",
      "tree": "e58f08de9c82eab2589bfc22ece178af44c3b495",
      "parents": [
        "87f44bbc246c5244c76a701f8eefba7788bce64a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 25 06:19:35 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 25 06:19:35 2010 -0700"
      },
      "message": "tracing: Add __used annotation to event variable\n\nThe TRACE_EVENT() macros automate creation of trace events. To automate\ninitialization, the set up variables are loaded in a special section\nthat is read on boot up. GCC is not aware that these static variables\nare used and will complain about them if we do not inform GCC that\nthey are indeed used.\n\nOne of the declarations of the event element was missing a __used\nannotation. This patch adds it.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff5f149b6aec8edbfa3698721667acd043009a33",
      "tree": "d052553eb296dfee3f01b1cb2b717cb7ccf3127a",
      "parents": [
        "f0218b3e9974f06014b61be8987159f4a20e011e",
        "580d607cd666dfabfc1c7b0fb08c8ac690c7c87f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 21 11:49:57 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 21 11:49:57 2010 -0400"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-7\n\nConflicts:\n\tinclude/linux/ftrace_event.h\n\tinclude/trace/ftrace.h\n\tkernel/trace/trace_event_perf.c\n\tkernel/trace/trace_kprobe.c\n\tkernel/trace/trace_syscalls.c\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33cf23b0a535475aead57707cb9f4fe135a93544",
      "tree": "67e14f77f0eeab847a26a6cbfcb44eecb5fa2fda",
      "parents": [
        "7a9b149212f3716c598afe973b6261fd58453b7a",
        "95bb335c0ebe96afe926387a1ef3a096bd884a82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (182 commits)\n  [SCSI] aacraid: add an ifdef\u0027d device delete case instead of taking the device offline\n  [SCSI] aacraid: prohibit access to array container space\n  [SCSI] aacraid: add support for handling ATA pass-through commands.\n  [SCSI] aacraid: expose physical devices for models with newer firmware\n  [SCSI] aacraid: respond automatically to volumes added by config tool\n  [SCSI] fcoe: fix fcoe module ref counting\n  [SCSI] libfcoe: FIP Keep-Alive messages for VPorts are sent with incorrect port_id and wwn\n  [SCSI] libfcoe: Fix incorrect MAC address clearing\n  [SCSI] fcoe: fix a circular locking issue with rtnl and sysfs mutex\n  [SCSI] libfc: Move the port_id into lport\n  [SCSI] fcoe: move link speed checking into its own routine\n  [SCSI] libfc: Remove extra pointer check\n  [SCSI] libfc: Remove unused fc_get_host_port_type\n  [SCSI] fcoe: fixes wrong error exit in fcoe_create\n  [SCSI] libfc: set seq_id for incoming sequence\n  [SCSI] qla2xxx: Updates to ISP82xx support.\n  [SCSI] qla2xxx: Optionally disable target reset.\n  [SCSI] qla2xxx: ensure flash operation and host reset via sg_reset are mutually exclusive\n  [SCSI] qla2xxx: Silence bogus warning by gcc for wrap and did.\n  [SCSI] qla2xxx: T10 DIF support added.\n  ...\n"
    },
    {
      "commit": "1c024eca51fdc965290acf342ae16a476c2189d0",
      "tree": "28dc160cc70a20eeb8b8825d6d52ea88a6188413",
      "parents": [
        "b7e2ecef92d2e7785e6d76b41e5ba8bcbc45259d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 19 14:02:22 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:56 2010 +0200"
      },
      "message": "perf, trace: Optimize tracepoints by using per-tracepoint-per-cpu hlist to track events\n\nAvoid the swevent hash-table by using per-tracepoint\nhlists.\n\nAlso, avoid conditionals on the fast path by ordering\nwith probe unregister so that we should never get on\nthe callback path without the data being there.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.473188012@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b7e2ecef92d2e7785e6d76b41e5ba8bcbc45259d",
      "tree": "341c3a03743108bbdf82ee0eed9f4c4085f1b694",
      "parents": [
        "1c34bde13a3cdcd4c7c6322f8052e67c2c91caf1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 19 10:52:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:56 2010 +0200"
      },
      "message": "perf, trace: Optimize tracepoints by removing IRQ-disable from perf/tracepoint interaction\n\nImproves performance.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1274259525.5605.10352.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfacc4d6c98b89609250269f518c1f54c30454ef",
      "tree": "e7effbee7bdc85d18f7b26ab9cb5c9f700d1481a",
      "parents": [
        "f869097e884d8cb65b2bb7831ca57b7dffb66fdd",
        "85cb68b27c428d477169f3aa46c72dba103a17bd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 20 14:38:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 20 14:38:55 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "4f41c013f553957765902fb01475972f0af3e8e7",
      "tree": "ddaa54947cc990094a4b270f2f8b3d6da195044f",
      "parents": [
        "ef4f30f54e265c2f6f9ac9eda4db158a4e16050b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 18:08:32 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:46 2010 +0200"
      },
      "message": "perf/ftrace: Optimize perf/tracepoint interaction for single events\n\nWhen we\u0027ve got but a single event per tracepoint\nthere is no reason to try and multiplex it so don\u0027t.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
      "tree": "2d96a9e9c28cf6fa628a278decc00ad55a8b043b",
      "parents": [
        "3aaf51ace5975050ab43c7d4d7e439e0ae7d13d7",
        "94f3ca95787ada3d64339a4ecb2754236ab563f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (311 commits)\n  perf tools: Add mode to build without newt support\n  perf symbols: symbol inconsistency message should be done only at verbose\u003d1\n  perf tui: Add explicit -lslang option\n  perf options: Type check all the remaining OPT_ variants\n  perf options: Type check OPT_BOOLEAN and fix the offenders\n  perf options: Check v type in OPT_U?INTEGER\n  perf options: Introduce OPT_UINTEGER\n  perf tui: Add workaround for slang \u003c 2.1.4\n  perf record: Fix bug mismatch with -c option definition\n  perf options: Introduce OPT_U64\n  perf tui: Add help window to show key associations\n  perf tui: Make \u003c- exit menus too\n  perf newt: Add single key shortcuts for zoom into DSO and threads\n  perf newt: Exit browser unconditionally when CTRL+C, q or Q is pressed\n  perf newt: Fix the \u0027A\u0027/\u0027a\u0027 shortcut for annotate\n  perf newt: Make \u003c- exit the ui_browser\n  x86, perf: P4 PMU - fix counters management logic\n  perf newt: Make \u003c- zoom out filters\n  perf report: Report number of events, not samples\n  perf hist: Clarify events_stats fields usage\n  ...\n\nFix up trivial conflicts in kernel/fork.c and tools/perf/builtin-record.c\n"
    },
    {
      "commit": "f0218b3e9974f06014b61be8987159f4a20e011e",
      "tree": "29a593c4d71ab18cb0c450a34e79bf6bea66877e",
      "parents": [
        "1eaa4787a774c4896518c81f24e8bccaa2244924",
        "9d192e118a094087494997ea1c8a2faf39af38c5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 17 22:26:53 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 18 00:35:23 2010 -0400"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-6\n\nConflicts:\n\tinclude/trace/ftrace.h\n\tkernel/trace/trace_kprobe.c\n\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "32c0edaeaad74a7883e736ae0f3798784cfc2a80",
      "tree": "e70784ed690172cb0f1b4365b93aa077d40219c9",
      "parents": [
        "80decc70afc57c87eee9d6b836aec2ecacba3457"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 23 10:38:03 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:33:15 2010 -0400"
      },
      "message": "tracing: Remove duplicate id information in event structure\n\nNow that the trace_event structure is embedded in the ftrace_event_call\nstructure, there is no need for the ftrace_event_call id field.\nThe id field is the same as the trace_event type field.\n\nRemoving the id and re-arranging the structure brings down the tracepoint\nfootprint by another 5K.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4895024\t1023812\t 861512\t6780348\t 6775bc\tvmlinux.print\n4894944\t1018052\t 861512\t6774508\t 675eec\tvmlinux.id\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "80decc70afc57c87eee9d6b836aec2ecacba3457",
      "tree": "3aec4c67a5518a9c4e60a6914c5dbb9eb82e952f",
      "parents": [
        "a9a5776380208a3e48a92d0c763ee1a3b486fb73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 23 10:00:22 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:20:34 2010 -0400"
      },
      "message": "tracing: Move print functions into event class\n\nCurrently, every event has its own trace_event structure. This is\nfine since the structure is needed anyway. But the print function\nstructure (trace_event_functions) is now separate. Since the output\nof the trace event is done by the class (with the exception of events\ndefined by DEFINE_EVENT_PRINT), it makes sense to have the class\ndefine the print functions that all events in the class can use.\n\nThis makes a bigger deal with the syscall events since all syscall events\nuse the same class. The savings here is another 30K.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4900382\t1048964\t 861512\t6810858\t 67ecea\tvmlinux.init\n4900446\t1049028\t 861512\t6810986\t 67ed6a\tvmlinux.preprint\n4895024\t1023812\t 861512\t6780348\t 6775bc\tvmlinux.print\n\nTo accomplish this, and to let the class know what event is being\nprinted, the event structure is embedded in the ftrace_event_call\nstructure. This should not be an issues since the event structure\nwas created for each event anyway.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a9a5776380208a3e48a92d0c763ee1a3b486fb73",
      "tree": "5ecd41c3b373e2156f5bf748ae777e022296a30c",
      "parents": [
        "0405ab80aa94afb13bf9ac4a6fc9f2923d4b9114"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 22 18:46:14 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:20:32 2010 -0400"
      },
      "message": "tracing: Allow events to share their print functions\n\nMultiple events may use the same method to print their data.\nInstead of having all events have a pointer to their print funtions,\nthe trace_event structure now points to a trace_event_functions structure\nthat will hold the way to print ouf the event.\n\nThe event itself is now passed to the print function to let the print\nfunction know what kind of event it should print.\n\nThis opens the door to consolidating the way several events print\ntheir output.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4900382\t1048964\t 861512\t6810858\t 67ecea\tvmlinux.init\n4900446\t1049028\t 861512\t6810986\t 67ed6a\tvmlinux.preprint\n\nThis change slightly increases the size but is needed for the next change.\n\nv3: Fix the branch tracer events to handle this change.\n\nv2: Fix the new function graph tracer event calls to handle this change.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0405ab80aa94afb13bf9ac4a6fc9f2923d4b9114",
      "tree": "43eedc09bb15ecfda26adb661d59badeacea0de6",
      "parents": [
        "2e33af029556cb8bd22bf4f86f42d540249177ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 22 11:46:44 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:20:30 2010 -0400"
      },
      "message": "tracing: Move raw_init from events to class\n\nThe raw_init function pointer in the event is used to initialize\nvarious kinds of events. The type of initialization needed is usually\nclassed to the kind of event it is.\n\nTwo events with the same class will always have the same initialization\nfunction, so it makes sense to move this to the class structure.\n\nPerhaps even making a special system structure would work since\nthe initialization is the same for all events within a system.\nBut since there\u0027s no system structure (yet), this will just move it\nto the class.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4900375\t1053380\t 861512\t6815267\t 67fe23\tvmlinux.fields\n4900382\t1048964\t 861512\t6810858\t 67ecea\tvmlinux.init\n\nThe text grew very slightly, but this is a constant growth that happened\nwith the changing of the C files that call the init code.\nThe bigger savings is the data which will be saved the more events share\na class.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2e33af029556cb8bd22bf4f86f42d540249177ea",
      "tree": "8a479d21300c7692d61093846054f626e3e71ed5",
      "parents": [
        "2239291aeb0379fe47980b0e560e0eb9fd7e82ec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 22 10:35:55 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:20:23 2010 -0400"
      },
      "message": "tracing: Move fields from event to class structure\n\nMove the defined fields from the event to the class structure.\nSince the fields of the event are defined by the class they belong\nto, it makes sense to have the class hold the information instead\nof the individual events. The events of the same class would just\nhold duplicate information.\n\nAfter this change the size of the kernel dropped another 3K:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4900252\t1057412\t 861512\t6819176\t 680d68\tvmlinux.regs\n4900375\t1053380\t 861512\t6815267\t 67fe23\tvmlinux.fields\n\nAlthough the text increased, this was mainly due to the C files\nhaving to adapt to the change. This is a constant increase, where\nnew tracepoints will not increase the Text. But the big drop is\nin the data size (as well as needed allocations to hold the fields).\nThis will give even more savings as more tracepoints are created.\n\nNote, if just TRACE_EVENT()s are used and not DECLARE_EVENT_CLASS()\nwith several DEFINE_EVENT()s, then the savings will be lost. But\nwe are pushing developers to consolidate events with DEFINE_EVENT()\nso this should not be an issue.\n\nThe kprobes define a unique class to every new event, but are dynamic\nso it should not be a issue.\n\nThe syscalls however have a single class but the fields for the individual\nevents are different. The syscalls use a metadata to define the\nfields. I moved the fields list from the event to the metadata and\nadded a \"get_fields()\" function to the class. This function is used\nto find the fields. For normal events and kprobes, get_fields() just\nreturns a pointer to the fields list_head in the class. For syscall\nevents, it returns the fields list_head in the metadata for the event.\n\nv2:  Fixed the syscall fields. The syscall metadata needs a list\n     of fields for both enter and exit.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2239291aeb0379fe47980b0e560e0eb9fd7e82ec",
      "tree": "e75bb60ec24e6fd7137f01db48e0ea7e5b1eddd4",
      "parents": [
        "38516ab59fbc5b3bb278cf5e1fe2867c70cff32e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 21 12:27:06 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 14:19:14 2010 -0400"
      },
      "message": "tracing: Remove per event trace registering\n\nThis patch removes the register functions of TRACE_EVENT() to enable\nand disable tracepoints. The registering of a event is now down\ndirectly in the trace_events.c file. The tracepoint_probe_register()\nis now called directly.\n\nThe prototypes are no longer type checked, but this should not be\nan issue since the tracepoints are created automatically by the\nmacros. If a prototype is incorrect in the TRACE_EVENT() macro, then\nother macros will catch it.\n\nThe trace_event_class structure now holds the probes to be called\nby the callbacks. This removes needing to have each event have\na separate pointer for the probe.\n\nTo handle kprobes and syscalls, since they register probes in a\ndifferent manner, a \"reg\" field is added to the ftrace_event_class\nstructure. If the \"reg\" field is assigned, then it will be called for\nenabling and disabling of the probe for either ftrace or perf. To let\nthe reg function know what is happening, a new enum (trace_reg) is\ncreated that has the type of control that is needed.\n\nWith this new rework, the 82 kernel events and 618 syscall events\nhas their footprint dramatically lowered:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4914025\t1088868\t 861512\t6864405\t 68be15\tvmlinux.class\n4918492\t1084612\t 861512\t6864616\t 68bee8\tvmlinux.tracepoint\n4900252\t1057412\t 861512\t6819176\t 680d68\tvmlinux.regs\n\nThe size went from 6863829 to 6819176, that\u0027s a total of 44K\nin savings. With tracepoints being continuously added, this is\ncritical that the footprint becomes minimal.\n\nv5: Added #ifdef CONFIG_PERF_EVENTS around a reference to perf\n    specific structure in trace_events.c.\n\nv4: Fixed trace self tests to check probe because regfunc no longer\n    exists.\n\nv3: Updated to handle void *data in beginning of probe parameters.\n    Also added the tracepoint: check_trace_callback_type_##call().\n\nv2: Changed the callback probes to pass void * and typecast the\n    value within the function.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "38516ab59fbc5b3bb278cf5e1fe2867c70cff32e",
      "tree": "904476d7780a27001281b9cb93c7959128f9a1d7",
      "parents": [
        "53da59aa6dd881fd0bbdd058a8a299d90ce9dd1d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 20 17:04:50 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 09:50:34 2010 -0400"
      },
      "message": "tracing: Let tracepoints have data passed to tracepoint callbacks\n\nThis patch adds data to be passed to tracepoint callbacks.\n\nThe created functions from DECLARE_TRACE() now need a mandatory data\nparameter. For example:\n\nDECLARE_TRACE(mytracepoint, int value, value)\n\nWill create the register function:\n\nint register_trace_mytracepoint((void(*)(void *data, int value))probe,\n                                void *data);\n\nAs the first argument, all callbacks (probes) must take a (void *data)\nparameter. So a callback for the above tracepoint will look like:\n\nvoid myprobe(void *data, int value)\n{\n}\n\nThe callback may choose to ignore the data parameter.\n\nThis change allows callbacks to register a private data pointer along\nwith the function probe.\n\n\tvoid mycallback(void *data, int value);\n\n\tregister_trace_mytracepoint(mycallback, mydata);\n\nThen the mycallback() will receive the \"mydata\" as the first parameter\nbefore the args.\n\nA more detailed example:\n\n  DECLARE_TRACE(mytracepoint, TP_PROTO(int status), TP_ARGS(status));\n\n  /* In the C file */\n\n  DEFINE_TRACE(mytracepoint, TP_PROTO(int status), TP_ARGS(status));\n\n  [...]\n\n       trace_mytracepoint(status);\n\n  /* In a file registering this tracepoint */\n\n  int my_callback(void *data, int status)\n  {\n\tstruct my_struct my_data \u003d data;\n\t[...]\n  }\n\n  [...]\n\tmy_data \u003d kmalloc(sizeof(*my_data), GFP_KERNEL);\n\tinit_my_data(my_data);\n\tregister_trace_mytracepoint(my_callback, my_data);\n\nThe same callback can also be registered to the same tracepoint as long\nas the data registered is different. Note, the data must also be used\nto unregister the callback:\n\n\tunregister_trace_mytracepoint(my_callback, my_data);\n\nBecause of the data parameter, tracepoints declared this way can not have\nno args. That is:\n\n  DECLARE_TRACE(mytracepoint, TP_PROTO(void), TP_ARGS());\n\nwill cause an error.\n\nIf no arguments are needed, a new macro can be used instead:\n\n  DECLARE_TRACE_NOARGS(mytracepoint);\n\nSince there are no arguments, the proto and args fields are left out.\n\nThis is part of a series to make the tracepoint footprint smaller:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4914025\t1088868\t 861512\t6864405\t 68be15\tvmlinux.class\n4918492\t1084612\t 861512\t6864616\t 68bee8\tvmlinux.tracepoint\n\nAgain, this patch also increases the size of the kernel, but\nlays the ground work for decreasing it.\n\n v5: Fixed net/core/drop_monitor.c to handle these updates.\n\n v4: Moved the DECLARE_TRACE() DECLARE_TRACE_NOARGS out of the\n     #ifdef CONFIG_TRACE_POINTS, since the two are the same in both\n     cases. The __DECLARE_TRACE() is what changes.\n     Thanks to Frederic Weisbecker for pointing this out.\n\n v3: Made all register_* functions require data to be passed and\n     all callbacks to take a void * parameter as its first argument.\n     This makes the calling functions comply with C standards.\n\n     Also added more comments to the modifications of DECLARE_TRACE().\n\n v2: Made the DECLARE_TRACE() have the ability to pass arguments\n     and added a new DECLARE_TRACE_NOARGS() for tracepoints that\n     do not need any arguments.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8f0820183056ad26dabc0202115848a92f1143fc",
      "tree": "c9e1cb9d41e37d5075704efbde3c97121820e0c5",
      "parents": [
        "23e117fa44429cc054cb27d5621d64e4ced91e52"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 20 10:47:33 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 14 09:33:49 2010 -0400"
      },
      "message": "tracing: Create class struct for events\n\nThis patch creates a ftrace_event_class struct that event structs point to.\nThis class struct will be made to hold information to modify the\nevents. Currently the class struct only holds the events system name.\n\nThis patch slightly increases the size, but this change lays the ground work\nof other changes to make the footprint of tracepoints smaller.\n\nWith 82 standard tracepoints, and 618 system call tracepoints\n(two tracepoints per syscall: enter and exit):\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n4913961\t1088356\t 861512\t6863829\t 68bbd5\tvmlinux.orig\n4914025\t1088868\t 861512\t6864405\t 68be15\tvmlinux.class\n\nThis patch also cleans up some stale comments in ftrace.h.\n\nv2: Fixed missing semi-colon in macro.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a2e3995951176e1aaa63d17ae2e1d26ac99003d",
      "tree": "7305a7dc2c1822e5d4fec610d1c9bb6ddfadce70",
      "parents": [
        "59c31b69d278b760fb84266f99c1dcb0f73ec51d"
      ],
      "author": {
        "name": "Kei Tokunaga",
        "email": "tokunaga.keiich@jp.fujitsu.com",
        "time": "Thu Apr 01 20:40:58 2010 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Apr 30 12:50:22 2010 -0500"
      },
      "message": "[SCSI] ftrace: add __print_hex()\n\n__print_hex() prints values in an array in hex (w/o \u00270x\u0027) (space separated)\nEX) 92 33 32 f3 ee 4d\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tomohiro Kusumi \u003ckusumi.tomohiro@jp.fujitsu.com\u003e\nSigned-off-by: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "6cc8a7c1d8560c042f486b23318a6291569ab96b",
      "tree": "bda763c18ab78e92bb36d7e250765a493cce4b19",
      "parents": [
        "6f4dee06fbf0133917f3d76fa3fb50e18b10c1f5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 19 01:23:53 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 04 15:23:07 2010 +0200"
      },
      "message": "perf: Fetch hot regs from the template caller\n\nTrace events can be defined from a template using\nDECLARE_EVENT_CLASS/DEFINE_EVENT or directly with TRACE_EVENT.\n\nIn both cases we have a template tracepoint handler, used to\nrecord the trace, to which we pass our ftrace event instance.\n\nIn the function level, if the class is named \"foo\" and the event\nis named \"blah\", we have the following chain of calls:\n\nperf_trace_blah() -\u003e perf_trace_templ_foo()\n\nIn the case we have several events sharing the class \"blah\",\nwe\u0027ll have multiple users of perf_trace_templ_foo(), and it\nwon\u0027t be inlined by the compiler. This is usually what happens\nwith the DECLARE_EVENT_CLASS/DEFINE_EVENT based definition.\n\nBut if perf_trace_blah() is the only caller of perf_trace_templ_foo()\nthere are fair chances that it will be inlined.\n\nThe problem is that we fetch the regs from perf_trace_templ_foo()\nafter we rewinded the frame pointer to the second caller, we want\nto reach the caller of perf_trace_blah() to get the right source\nof the event. And we do this by always assuming that\nperf_trace_templ_foo() is not inlined. But as shown above this\nis not always true. And if it is inlined we miss the first caller,\nlosing the most important level of precision.\n\nWe get:\n\t    61.31%       ls  [kernel.kallsyms]  [k] do_softirq\n                         |\n                         --- do_softirq\n                             irq_exit\n                             do_IRQ\n                             common_interrupt\n                            |\n                            |--25.00%-- tty_buffer_request_room\n\nInstead of:\n\t    61.31%       ls  [kernel.kallsyms]  [k] __do_softirq\n                         |\n                         --- __do_softirq\n                             do_softirq\n                             irq_exit\n                             do_IRQ\n                             common_interrupt\n                            |\n                            |--25.00%-- tty_buffer_request_room\n\nTo fix this, we fetch the regs from perf_trace_blah() rather than\nperf_trace_templ_foo() so that we don\u0027t have to deal with inlining\nsurprises.\n\nThat also bring us the advantage of having the true source of the\nevent even if we don\u0027t have frame pointers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "50354a8a28d0c91695a2d6d25b5a821bfe557a07",
      "tree": "02b582c0618f35ecb7c15439054ebade31c9b05d",
      "parents": [
        "4bdde044dc36ac7b01f7502394d52619af9d1927"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 24 10:58:24 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:56:56 2010 -0400"
      },
      "message": "tracing: Update comments\n\nMake some comments consistent with the code.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BA97FD0.7090202@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f82c37e7bb4c4d9b6a476c642d5c2d2efbd6f240",
      "tree": "09fc553c2fb6f527962048d139159dc139e04afc",
      "parents": [
        "c6b9e73f2fee8bb86058f296de808b326473456b",
        "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  perf: Fix unexported generic perf_arch_fetch_caller_regs\n  perf record: Don\u0027t try to find buildids in a zero sized file\n  perf: export perf_trace_regs and perf_arch_fetch_caller_regs\n  perf, x86: Fix hw_perf_enable() event assignment\n  perf, ppc: Fix compile error due to new cpu notifiers\n  perf: Make the install relative to DESTDIR if specified\n  kprobes: Calculate the index correctly when freeing the out-of-line execution slot\n  perf tools: Fix sparse CPU numbering related bugs\n  perf_event: Fix oops triggered by cpu offline/online\n  perf: Drop the obsolete profile naming for trace events\n  perf: Take a hot regs snapshot for trace events\n  perf: Introduce new perf_fetch_caller_regs() for hot regs snapshot\n  perf/x86-64: Use frame pointer to walk on irq and process stacks\n  lockdep: Move lock events under lockdep recursion protection\n  perf report: Print the map table just after samples for which no map was found\n  perf report: Add multiple event support\n  perf session: Change perf_session post processing functions to take histogram tree\n  perf session: Add storage for seperating event types in report\n  perf session: Change add_hist_entry to take the tree root instead of session\n  perf record: Add ID and to recorded event data when recording multiple events\n  ...\n"
    },
    {
      "commit": "97d5a22005f38057b4bc0d95f81cd26510268794",
      "tree": "b981789b1cec8ac36527e52204e407b32efa0ea6",
      "parents": [
        "c530665c31c0140b74ca7689e7f836177796e5bd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 05 05:35:37 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 10 14:47:18 2010 +0100"
      },
      "message": "perf: Drop the obsolete profile naming for trace events\n\nDrop the obsolete \"profile\" naming used by perf for trace events.\nPerf can now do more than simple events counting, so generalize\nthe API naming.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\n"
    },
    {
      "commit": "c530665c31c0140b74ca7689e7f836177796e5bd",
      "tree": "ac9ebb98aca58fdf84cc18958a94393a9a7bbdf3",
      "parents": [
        "5331d7b84613b8325362dde53dc2bff2fb87d351"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 03 07:16:16 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 10 14:40:38 2010 +0100"
      },
      "message": "perf: Take a hot regs snapshot for trace events\n\nWe are taking a wrong regs snapshot when a trace event triggers.\nEither we use get_irq_regs(), which gives us the interrupted\nregisters if we are in an interrupt, or we use task_pt_regs()\nwhich gives us the state before we entered the kernel, assuming\nwe are lucky enough to be no kernel thread, in which case\ntask_pt_regs() returns the initial set of regs when the kernel\nthread was started.\n\nWhat we want is different. We need a hot snapshot of the regs,\nso that we can get the instruction pointer to record in the\nsample, the frame pointer for the callchain, and some other\nthings.\n\nLet\u0027s use the new perf_fetch_caller_regs() for that.\n\nComparison with perf record -e lock: -R -a -f -g\nBefore:\n\n        perf  [kernel]                   [k] __do_softirq\n               |\n               --- __do_softirq\n                  |\n                  |--55.16%-- __open\n                  |\n                   --44.84%-- __write_nocancel\n\nAfter:\n\n            perf  [kernel]           [k] perf_tp_event\n               |\n               --- perf_tp_event\n                  |\n                  |--41.07%-- lock_acquire\n                  |          |\n                  |          |--39.36%-- _raw_spin_lock\n                  |          |          |\n                  |          |          |--7.81%-- hrtimer_interrupt\n                  |          |          |          smp_apic_timer_interrupt\n                  |          |          |          apic_timer_interrupt\n\nThe old case was producing unreliable callchains. Now having\nright frame and instruction pointers, we have the trace we\nwant.\n\nAlso syscalls and kprobe events already have the right regs,\nlet\u0027s use them instead of wasting a retrieval.\n\nv2: Follow the rename perf_save_regs() -\u003e perf_fetch_caller_regs()\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Archs \u003clinux-arch@vger.kernel.org\u003e\n"
    },
    {
      "commit": "8d53dd546f36073e0d29b0cfc24c665db301e3e7",
      "tree": "1cd2582e669fe2ff580ddc707705e5efb18251de",
      "parents": [
        "99ee4ca746dda71326db7645463b4075ac1d665c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Mar 03 17:50:18 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 12:07:35 2010 +0100"
      },
      "message": "rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n\nChange the pair of rcu_dereference() calls in\nftrace_perf_buf_prepare() to rcu_dereference_sched().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1267667418-32233-3-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6556a6743549defc32e5f90ee2cb1ecd833a44c3",
      "tree": "622306583d4a3c13235a8bfc012854c125c597f1",
      "parents": [
        "e0d272429a34ff143bfa04ee8e29dd4eed2964c7",
        "1dd2980d990068e20045b90c424518cc7f3657ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (172 commits)\n  perf_event, amd: Fix spinlock initialization\n  perf_event: Fix preempt warning in perf_clock()\n  perf tools: Flush maps on COMM events\n  perf_events, x86: Split PMU definitions into separate files\n  perf annotate: Handle samples not at objdump output addr boundaries\n  perf_events, x86: Remove superflous MSR writes\n  perf_events: Simplify code by removing cpu argument to hw_perf_group_sched_in()\n  perf_events, x86: AMD event scheduling\n  perf_events: Add new start/stop PMU callbacks\n  perf_events: Report the MMAP pgoff value in bytes\n  perf annotate: Defer allocating sym_priv-\u003ehist array\n  perf symbols: Improve debugging information about symtab origins\n  perf top: Use a macro instead of a constant variable\n  perf symbols: Check the right return variable\n  perf/scripts: Tag syscall_name helper as not yet available\n  perf/scripts: Add perf-trace-python Documentation\n  perf/scripts: Remove unnecessary PyTuple resizes\n  perf/scripts: Add syscall tracing scripts\n  perf/scripts: Add Python scripting engine\n  perf/scripts: Remove check-perf-trace from listed scripts\n  ...\n\nFix trivial conflict in tools/perf/util/probe-event.c\n"
    },
    {
      "commit": "86c38a31aa7f2dd6e74a262710bf8ebf7455acc5",
      "tree": "167d2c46917233373e597cc5f82d3f9132170e65",
      "parents": [
        "0c54dd341fb701928b8e5dca91ced1870c55b05b"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Feb 24 13:59:23 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 09:38:11 2010 -0500"
      },
      "message": "tracing: Fix ftrace_event_call alignment for use with gcc 4.5\n\nGCC 4.5 introduces behavior that forces the alignment of structures to\n use the largest possible value. The default value is 32 bytes, so if\n some structures are defined with a 4-byte alignment and others aren\u0027t\n declared with an alignment constraint at all - it will align at 32-bytes.\n\n For things like the ftrace events, this results in a non-standard array.\n When initializing the ftrace subsystem, we traverse the _ftrace_events\n section and call the initialization callback for each event. When the\n structures are misaligned, we could be treating another part of the\n structure (or the zeroed out space between them) as a function pointer.\n\n This patch forces the alignment for all the ftrace_event_call structures\n to 4 bytes.\n\n Without this patch, the kernel fails to boot very early when built with\n gcc 4.5.\n\n It\u0027s trivial to check the alignment of the members of the array, so it\n might be worthwhile to add something to the build system to do that\n automatically. Unfortunately, that only covers this case. I\u0027ve asked one\n of the gcc developers about adding a warning when this condition is seen.\n\nCc: stable@kernel.org\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nLKML-Reference: \u003c4B85770B.6010901@suse.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "83f0d53993b2967e54186468b0fc4321447f68f1",
      "tree": "1e53910353eae38830e56199bc916caf4cd22362",
      "parents": [
        "c7c6b1fe9f942c1a30585ec2210a09dfff238506"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 16 10:38:47 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 16 10:38:47 2010 -0500"
      },
      "message": "tracing: Add notrace to TRACE_EVENT implementation functions\n\nThe functions used to implement the TRACE_EVENT macro show up in\nfunction tracing. This is considered a distraction, and these should\nnot be displayed. For example:\n\n     \u003cidle\u003e-0     [000]    57.202149: task_of \u003c-update_stats_wait_end\n     \u003cidle\u003e-0     [000]    57.202149: ftrace_raw_event_sched_stat_wait \u003c-update_stats_wait_end\n     \u003cidle\u003e-0     [000]    57.202150: ftrace_raw_event_id_sched_stat_template \u003c-ftrace_raw_event_sched_stat_wait\n     \u003cidle\u003e-0     [000]    57.202150: sched_stat_wait: comm\u003dsshd pid\u003d2735 delay\u003d19207 [ns]\n\nThe \"ftrace_raw_event_*\" traces are just the utility functions used\nby TRACE_EVENT tracepoints.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nRequested-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "430ad5a600a83956749307b13257c464c3826b55",
      "tree": "9cd3dd3f54e29397ff303478de9fe6902f675b9b",
      "parents": [
        "339ce1a4dc2ca26444c4f65c31b71a5056f3bb0b"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jan 28 09:32:29 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jan 29 02:02:57 2010 +0100"
      },
      "message": "perf: Factorize trace events raw sample buffer operations\n\nIntroduce ftrace_perf_buf_prepare() and ftrace_perf_buf_submit() to\ngather the common code that operates on raw events sampling buffer.\nThis cleans up redundant code between regular trace events, syscall\nevents and kprobe events.\n\nChangelog v1-\u003ev2:\n- Rename function name as per Masami and Frederic\u0027s suggestion\n- Add __kprobes for ftrace_perf_buf_prepare() and make\n  ftrace_perf_buf_submit() inline as per Masami\u0027s suggestion\n- Export ftrace_perf_buf_prepare since modules will use it\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c4B60E92D.9000808@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "61405fea92c42d072d9b8bd189689f1502a838af",
      "tree": "013ea3e7ed71f4114004d5852d40b6e89e128f76",
      "parents": [
        "9c443dfdd31eddea6cbe6ee0ca469fbcc4e1dc3b",
        "1703f2c321a8a531c393e137a82602e16c6061cb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:58:37 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 10:08:50 2010 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: queue up dependent patch, update to -rc4\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0fa0edaf32b9a78b9854f1da98d4511a501089b0",
      "tree": "2226710ff7f455cfc9ed9e29252337f70cf3ab33",
      "parents": [
        "5a65e956220efc2421e21ee56d6153fd5c533a95"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 15 15:39:57 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 06 12:08:46 2010 -0500"
      },
      "message": "tracing: Remove show_format and related macros from TRACE_EVENT\n\nThe previous patches added the use of print_fmt string and changes\nthe trace_define_field() function to also create the fields and\nformat output for the event format files.\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n5857201\t1355780\t9336808\t16549789\t fc879d\tvmlinux\n5884589\t1351684\t9337896\t16574169\t fce6d9\tvmlinux-orig\n\nThe above shows the size of the vmlinux after this patch set\ncompared to the vmlinux-orig which is before the patch set.\n\nThis saves us 27k on text, 1k on bss and adds just 4k of data.\n\nThe total savings of 24k in size.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B273D4D.40604@cn.fujitsu.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "509e760cd91c831983097ae174cb6c0b8c6c8e6b",
      "tree": "985da24e69e80b81713c2901c94b127c961cd426",
      "parents": [
        "809826a389040e0ad9d646b587bccc0e34691afd"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 15 15:39:42 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 06 11:41:54 2010 -0500"
      },
      "message": "tracing: Add print_fmt field\n\nThis is part of a patch set that removes the show_format method\nin the ftrace event macros.\n\nThe print_fmt field is added to hold the string that shows\nthe print_fmt in the event format files. This patch only adds\nthe field but it is currently not used. Later patches will use\nthis field to enable us to remove the show_format field\nand function.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B273D3E.2000704@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "fb7ae981cb9fe8665b9da97e8734745e030c151d",
      "tree": "7b127c1bd4c0457c30f57d0f9c6ceacf69ab88c2",
      "parents": [
        "e96dc9674cb597de4fee757ed005c8465072d13f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 15 15:39:38 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 30 10:27:06 2009 -0500"
      },
      "message": "tracing: Fix sign fields in ftrace_define_fields_##call()\n\nAdd is_signed_type() call to trace_define_field() in ftrace macros.\n\nThe code previously just passed in 0 (false), disregarding whether\nor not the field was actually a signed type.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B273D3A.6020007@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "07b139c8c81b97bbe55c68daf0cbeca8b1c609ca",
      "tree": "ea410cac398bef3cc6cc7e2d2dc3527b50aac6d1",
      "parents": [
        "659d8cfbb225f1fa5a4f8671a847ef3ab5a89660"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Dec 21 14:27:35 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 28 10:33:06 2009 +0100"
      },
      "message": "perf events: Remove CONFIG_EVENT_PROFILE\n\nQuoted from Ingo:\n\n| This reminds me - i think we should eliminate CONFIG_EVENT_PROFILE -\n| it\u0027s an unnecessary Kconfig complication. If both PERF_EVENTS and\n| EVENT_TRACING is enabled we should expose generic tracepoints.\n|\n| Nor is it limited to event \u0027profiling\u0027, so it has become a misnomer as\n| well.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c4B2F1557.2050705@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e00bf2ec60605eb95687b7a0c3b83c87c48541dc",
      "tree": "e0b63423355286bc14cee438b39e9ba681f7327a",
      "parents": [
        "8d18eaaff5acaa58369be342c86e607643ce10c7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:17:29 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:28 2009 +0100"
      },
      "message": "tracing: Change event-\u003eprofile_count to be int type\n\nLike total_profile_count, struct ftrace_event_call::profile_count\nis protected by event_mutex, so it doesn\u0027t need to be atomic_t.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c4B1DC549.5010705@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "3b8e4273814a7f9e9a74ece517d9206fea919aaa",
      "tree": "aa7960d90fe8cd4b04537bf9ea84ac73cb3b69ad",
      "parents": [
        "614a71a26ba3d97e9fa85649db69a682b78e407d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:14:52 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:37:25 2009 +0100"
      },
      "message": "tracing: Move a printk out of ftrace_raw_reg_event_foo()\n\nMove the printk from each ftrace_raw_reg_event_foo() to\nits caller ftrace_event_enable_disable(). This avoids each\nregfunc trace event callbacks to handle a same error report\nthat can be carried from the caller.\n\nSee how much space this saves:\n\n   text    data     bss     dec     hex filename\n5345151 1961864 7103260 14410275         dbe223 vmlinux.o.old\n5331487 1961864 7103260 14396611         dbacc3 vmlinux.o\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c4B1DC4AC.802@cn.fujitsu.com\u003e\n[start cmdline record before calling regfunc to avoid lost\nwindow of pid to comm resolution]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "614a71a26ba3d97e9fa85649db69a682b78e407d",
      "tree": "f0e52c9fa62f4e4230bc2ead2449caae3b30ff87",
      "parents": [
        "87d9b4e1c52867a45331a9a5495f6448e0c68b23"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:14:36 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:34:23 2009 +0100"
      },
      "message": "tracing: Pull up calls to trace_define_common_fields()\n\nCall trace_define_common_fields() in event_create_dir() only.\nThis avoids trace events to handle it from their define_fields\ncallbacks and shrinks the kernel code size:\n\n   text    data     bss     dec     hex filename\n5346802 1961864 7103260 14411926         dbe896 vmlinux.o.old\n5345151 1961864 7103260 14410275         dbe223 vmlinux.o\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nLKML-Reference: \u003c4B1DC49C.8000107@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "87d9b4e1c52867a45331a9a5495f6448e0c68b23",
      "tree": "dcac60fbfa60eec687d723fad780165cec5fd9b1",
      "parents": [
        "4819568f23a8bef0ca99b740ca60fe2450ab0aac"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 08 11:14:20 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 18:34:23 2009 +0100"
      },
      "message": "tracing: Extract duplicate ftrace_raw_init_event_foo()\n\nUse a generic trace_event_raw_init() function for all event\u0027s raw_init\ncallbacks (but kprobes) instead of defining the same version for each\nof these.\nThis shrinks the kernel code:\n\n   text    data     bss     dec     hex filename\n5355293 1961928 7103260 14420481         dc0a01 vmlinux.o.old\n5346802 1961864 7103260 14411926         dbe896 vmlinux.o\n\nraw_init can\u0027t be removed, because ftrace events and kprobe events\nuse different raw_init callbacks. Though it\u0027s possible to totally\nremove raw_init, I choose to leave it as it is for now.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c4B1DC48C.7080603@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "4819568f23a8bef0ca99b740ca60fe2450ab0aac",
      "tree": "18fa04e59e34dd96fd33c7edbeb49b8336ec688b",
      "parents": [
        "dd7f59435782a02ceb6d16b9ce823dd3345d75ec"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Dec 12 13:06:13 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 13 08:14:45 2009 +0100"
      },
      "message": "ftrace.h: Use common pr_info fmt string\n\nReduces fmt string space a bit.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1260651974.2637.4.camel@Joe-Laptop.home\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
      "tree": "e7731554085e22b6b63411b1ebb401079f3e0bbb",
      "parents": [
        "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1",
        "d103d01e4b19f185d3c85f77402b605534c32e89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:21 2009 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (470 commits)\n  x86: Fix comments of register/stack access functions\n  perf tools: Replace %m with %a in sscanf\n  hw-breakpoints: Keep track of user disabled breakpoints\n  tracing/syscalls: Make syscall events print callbacks static\n  tracing: Add DEFINE_EVENT(), DEFINE_SINGLE_EVENT() support to docbook\n  perf: Don\u0027t free perf_mmap_data until work has been done\n  perf_event: Fix compile error\n  perf tools: Fix _GNU_SOURCE macro related strndup() build error\n  trace_syscalls: Remove unused syscall_name_to_nr()\n  trace_syscalls: Simplify syscall profile\n  trace_syscalls: Remove duplicate init_enter_##sname()\n  trace_syscalls: Add syscall_nr field to struct syscall_metadata\n  trace_syscalls: Remove enter_id exit_id\n  trace_syscalls: Set event_enter_##sname-\u003edata to its metadata\n  trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit\n  perf_event: Initialize data.period in perf_swevent_hrtimer()\n  perf probe: Simplify event naming\n  perf probe: Add --list option for listing current probe events\n  perf probe: Add argv_split() from lib/argv_split.c\n  perf probe: Move probe event utility functions to probe-event.c\n  ...\n"
    },
    {
      "commit": "091ad3658e3c76c5fb05f65bfb64a0246f8f31b5",
      "tree": "90f67be68a31e2001a4a73e0325a2a7798240a51",
      "parents": [
        "28b4e0d86acf59ae3bc422921138a4958458326e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:04:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:04:55 2009 +0100"
      },
      "message": "events: Rename TRACE_EVENT_TEMPLATE() to DECLARE_EVENT_CLASS()\n\nIt is not quite obvious at first sight what TRACE_EVENT_TEMPLATE\ndoes: does it define an event as well beyond defining a template?\n\nTo clarify this, rename it to DECLARE_EVENT_CLASS, which follows\nthe various \u0027DECLARE_*()\u0027 idioms we already have in the kernel:\n\n  DECLARE_EVENT_CLASS(class)\n\n    DEFINE_EVENT(class, event1)\n    DEFINE_EVENT(class, event2)\n    DEFINE_EVENT(class, event3)\n\nTo complete this logic we should also rename TRACE_EVENT() to:\n\n  DEFINE_SINGLE_EVENT(single_event)\n\n... but in a more quiet moment of the kernel cycle.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B0E286A.2000405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5bc9721684e9412f3e0465222f317c362a8ab47",
      "tree": "380e76f64fd58e1f68715514e4b37734f3098fb3",
      "parents": [
        "ff038f5c37c2070829004a0678372766c2b32180"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 18 20:36:26 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 24 18:23:53 2009 -0500"
      },
      "message": "tracing: Create new DEFINE_EVENT_PRINT\n\nAfter creating the TRACE_EVENT_TEMPLATE I started to look at other\ntrace points to see what duplication was made. I noticed that there\nare several trace points where they are almost identical except for\nthe name and the output format. Since TRACE_EVENT_TEMPLATE was successful\nin bringing down the size of trace events, I added a DEFINE_EVENT_PRINT.\n\nDEFINE_EVENT_PRINT is used just like DEFINE_EVENT is. That is, the\nDEFINE_EVENT_PRINT also uses a TRACE_EVENT_TEMPLATE, but it allows the\ndeveloper to overwrite the print format. If there are two or more\nTRACE_EVENTS that are identical except for the name and print, then\nthey can be converted to use a TRACE_EVENT_TEMPLATE. Since the\nTRACE_EVENT_TEMPLATE already does the print output, the first trace event\nwould have its print format held in the TRACE_EVENT_TEMPLATE and\nbe defined with a DEFINE_EVENT. The rest will use the DEFINE_EVENT_PRINT\nand override the print format.\n\nConverting the sched trace points to both DEFINE_EVENT and\nDEFINE_EVENT_PRINT. Five were converted to DEFINE_EVENT and two were\nconverted to DEFINE_EVENT_PRINT.\n\nI was able to get the following:\n\n$ size kernel/sched.o-*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  79299\t   6776\t   2520\t  88595\t  15a13\tkernel/sched.o-notrace\n 101941\t  11896\t   2584\t 116421\t  1c6c5\tkernel/sched.o-templ\n 104779\t  11896\t   2584\t 119259\t  1d1db\tkernel/sched.o-trace\n\nsched.o-notrace is the scheduler compiled with no trace points.\nsched.o-templ is with the use of DEFINE_EVENT and DEFINE_EVENT_PRINT\nsched.o-trace is the current trace events.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff038f5c37c2070829004a0678372766c2b32180",
      "tree": "69a48d73eb959ae3c9be3814c42e37a8ea188c41",
      "parents": [
        "fa7c27ee9394fc0d52404b2a89882e95868a60b9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 18 20:27:27 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 24 17:52:11 2009 -0500"
      },
      "message": "tracing: Create new TRACE_EVENT_TEMPLATE\n\nThere are some places in the kernel that define several tracepoints and\nthey are all identical besides the name. The code to enable, disable and\nrecord is created for every trace point even if most of the code is\nidentical.\n\nThis patch adds TRACE_EVENT_TEMPLATE that lets the developer create\na template TRACE_EVENT and create trace points with DEFINE_EVENT, which\nis based off of a given template. Each trace point used by this\nwill share most of the code, and bring down the size of the kernel\nwhen there are several duplicate events.\n\nUsage is:\n\nTRACE_EVENT_TEMPLATE(name, proto, args, tstruct, assign, print);\n\nWhich would be the same as defining a normal TRACE_EVENT.\n\nTo create the trace events that the trace points will use:\n\nDEFINE_EVENT(template, name, proto, args) is done. The template\nis the name of the TRACE_EVENT_TEMPLATE to use. The name is the\nname of the trace point. The parameters proto and args must be the same\nas the proto and args of the template. If they are not the same,\nthen a compile error will result. I tried hard removing this duplication\nbut the C preprocessor is not powerful enough (or my CPP magic\nexperience points is not at a high enough level) to not need them.\n\nA lot of trace events are coming in with new XFS development. Most of\nthe trace points are identical except for the name. The following shows\nthe advantage of having TRACE_EVENT_TEMPLATE:\n\n$ size fs/xfs/xfs.o.*\n    text          data     bss     dec     hex filename\n  452114          2788    3520  458422   6feb6 fs/xfs/xfs.o.old\n  638482         38116    3744  680342   a6196 fs/xfs/xfs.o.template\n  996954         38116    4480 1039550   fdcbe fs/xfs/xfs.o.trace\n\nxfs.o.old is without any tracepoints.\nxfs.o.template uses the new TRACE_EVENT_TEMPLATE.\nxfs.o.trace uses the current TRACE_EVENT macros.\n\nRequested-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4ed7c92d68a5387ba5f7030dc76eab03558e27f5",
      "tree": "38d758819c41261275c2dbd6f64976f824c5fd27",
      "parents": [
        "f67218c3e93abaf0f480bb94b53d234853ffe4de"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 23 11:37:29 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 11:49:57 2009 +0100"
      },
      "message": "perf_events: Undo some recursion damage\n\nMake perf_swevent_get_recursion_context return a context number\nand disable preemption.\n\nThis could be used to remove the IRQ disable from the trace bit\nand index the per-cpu buffer with.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20091123103819.993226816@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ce71b9df8893ec954e56c5979df6da274f20f65e",
      "tree": "76e8a5e33393c2f4fca4083628fc142dcbb55250",
      "parents": [
        "e25613683bd5c46d3e8c8ae6416dccc9f357dcdc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 22 05:26:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 09:03:42 2009 +0100"
      },
      "message": "tracing: Use the perf recursion protection from trace event\n\nWhen we commit a trace to perf, we first check if we are\nrecursing in the same buffer so that we don\u0027t mess-up the buffer\nwith a recursing trace. But later on, we do the same check from\nperf to avoid commit recursion. The recursion check is desired\nearly before we touch the buffer but we want to do this check\nonly once.\n\nThen export the recursion protection from perf and use it from\nthe trace events before submitting a trace.\n\nv2: Put appropriate Reported-by tag\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c1258864015-10579-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "811cb50baf63461ce0bdb234927046131fc7fa8b",
      "tree": "ea161607e94f11754048c8769b37f58d55fe8de6",
      "parents": [
        "a646365cc330b5aaf4452c91f61b1e0d1acf68d0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Nov 13 23:40:09 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 13 22:20:34 2009 -0500"
      },
      "message": "tracing: Fix event format export\n\nFor some reason the export of the event print format to userspace\nuses \u0027#fmt\u0027 which breaks if the format string is anything but a plain\nstring, for example if it is built with macros then the macro names\nare exported instead of their contents.\n\nUse\n\t\"\\\"%s\\\"\", fmt\ninstead of\n\t\"%s\", #fmt\nto export the string and not the way it is built.\n\nFor example, in net/mac80211/driver-trace.h for the trace event drv_start\nthere is:\n\n        TP_printk(\n                LOCAL_PR_FMT, LOCAL_PR_ARG\n        )\n\nWhich use to produce:\n\n print fmt: LOCAL_PR_FMT, REC-\u003ewiphy_name\n\nNow produces:\n\n print fmt: \"%s\", REC-\u003ewiphy_name\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nLKML-Reference: \u003c20091113224009.GB23942@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "444a2a3bcd6d5bed5c823136f68fcc93c0fe283f",
      "tree": "6a57308586b4e723238646074e79298845803520",
      "parents": [
        "09879b99d44d701c603935ef2549004405d7f8f9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 06 04:13:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 08 10:31:42 2009 +0100"
      },
      "message": "tracing, perf_events: Protect the buffer from recursion in perf\n\nWhile tracing using events with perf, if one enables the\nlockdep:lock_acquire event, it will infect every other perf\ntrace events.\n\nBasically, you can enable whatever set of trace events through\nperf but if this event is part of the set, the only result we\ncan get is a long list of lock_acquire events of rcu read lock,\nand only that.\n\nThis is because of a recursion inside perf.\n\n1) When a trace event is triggered, it will fill a per cpu\n   buffer and submit it to perf.\n\n2) Perf will commit this event but will also protect some data\n   using rcu_read_lock\n\n3) A recursion appears: rcu_read_lock triggers a lock_acquire\n   event that will fill the per cpu event and then submit the\n   buffer to perf.\n\n4) Perf detects a recursion and ignores it\n\n5) Perf continues its work on the previous event, but its buffer\n   has been overwritten by the lock_acquire event, it has then\n   been turned into a lock_acquire event of rcu read lock\n\nSuch scenario also happens with lock_release with\nrcu_read_unlock().\n\nWe could turn the rcu_read_lock() into __rcu_read_lock() to drop\nthe lock debugging from perf fast path, but that would make us\nlose the rcu debugging and that doesn\u0027t prevent from other\npossible kind of recursion from perf in the future.\n\nThis patch adds a recursion protection based on a counter on the\nperf trace per cpu buffers to solve the problem.\n\n-v2: Fixed lost whitespace, added reviewed-by tag\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c1257477185-7838-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43315956509ca6913764861ac7dec128b91eb1ec",
      "tree": "60fd5647f150a46e63093a41417c2eef3e776b3d",
      "parents": [
        "9bf4e7fba8006d19846fec877b6da0616b2772de",
        "6beba7adbe092e63dfe8d09fbd1e3ec140474a13"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 23 08:23:20 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 23 08:23:20 2009 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 into perf/probes\n\nConflicts:\n\ttools/perf/Makefile\n\nMerge reason:\n\n - fix the conflict\n - pick up the pr_*() infrastructure to queue up dependent patch\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26a50744b21fff65bd754874072857bee8967f4d",
      "tree": "4819820f0841090232fcd2525f496f787fd411c7",
      "parents": [
        "d9b2002c406011164f245de7a81304625989f1c9"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Oct 06 01:09:50 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 06 15:04:45 2009 +0200"
      },
      "message": "tracing/events: Add \u0027signed\u0027 field to format files\n\nThe sign info used for filters in the kernel is also useful to\napplications that process the trace stream.  Add it to the format\nfiles and make it available to userspace.\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: rostedt@goodmis.org\nCc: lizf@cn.fujitsu.com\nCc: hch@infradead.org\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c1254809398-8078-2-git-send-email-tzanussi@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7a4b414eed51f1653bb05ebe84122bf9a7ae18b",
      "tree": "bd6603a0c27de4c138a1767871897e9cd3e1a1d2",
      "parents": [
        "1f0ab40976460bc4673fa204ce917a725185d8f2",
        "a724eada8c2a7b62463b73ccf73fd0bb6e928aeb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "message": "Merge commit \u0027linus/master\u0027 into tracing/kprobes\n\nConflicts:\n\tkernel/trace/Makefile\n\tkernel/trace/trace.h\n\tkernel/trace/trace_event_types.h\n\tkernel/trace/trace_export.c\n\nMerge reason:\n\tSync with latest significant tracing core changes.\n"
    },
    {
      "commit": "43c1266ce4dc06bfd236cec31e11e9ecd69c0bef",
      "tree": "40a86739ca4c36200f447f655b01c57cfe646e26",
      "parents": [
        "b8c7f1dc5ca4e0d10709182233cdab932cef593d",
        "57c0c15b5244320065374ad2c54f4fbec77a6428"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Tidy up after the big rename\n  perf: Do the big rename: Performance Counters -\u003e Performance Events\n  perf_counter: Rename \u0027event\u0027 to event_id/hw_event\n  perf_counter: Rename list_entry -\u003e group_entry, counter_list -\u003e group_list\n\nManually resolved some fairly trivial conflicts with the tracing tree in\ninclude/trace/ftrace.h and kernel/trace/trace_syscalls.c.\n"
    },
    {
      "commit": "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6",
      "tree": "81f98a3ab46c589792057fe2392c1e10f8ad7893",
      "parents": [
        "dfc65094d0313cc48969fa60bcf33d693aeb05a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:02:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:28:04 2009 +0200"
      },
      "message": "perf: Do the big rename: Performance Counters -\u003e Performance Events\n\nBye-bye Performance Counters, welcome Performance Events!\n\nIn the past few months the perfcounters subsystem has grown out its\ninitial role of counting hardware events, and has become (and is\nbecoming) a much broader generic event enumeration, reporting, logging,\nmonitoring, analysis facility.\n\nNaming its core object \u0027perf_counter\u0027 and naming the subsystem\n\u0027perfcounters\u0027 has become more and more of a misnomer. With pending\ncode like hw-breakpoints support the \u0027counter\u0027 name is less and\nless appropriate.\n\nAll in one, we\u0027ve decided to rename the subsystem to \u0027performance\nevents\u0027 and to propagate this rename through all fields, variables\nand API names. (in an ABI compatible fashion)\n\nThe word \u0027event\u0027 is also a bit shorter than \u0027counter\u0027 - which makes\nit slightly more convenient to write/handle as well.\n\nThanks goes to Stephane Eranian who first observed this misnomer and\nsuggested a rename.\n\nUser-space tooling and ABI compatibility is not affected - this patch\nshould be function-invariant. (Also, defconfigs were not touched to\nkeep the size down.)\n\nThis patch has been generated via the following script:\n\n  FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n  sed -i \\\n    -e \u0027s/PERF_EVENT_/PERF_RECORD_/g\u0027 \\\n    -e \u0027s/PERF_COUNTER/PERF_EVENT/g\u0027 \\\n    -e \u0027s/perf_counter/perf_event/g\u0027 \\\n    -e \u0027s/nb_counters/nb_events/g\u0027 \\\n    -e \u0027s/swcounter/swevent/g\u0027 \\\n    -e \u0027s/tpcounter_event/tp_event/g\u0027 \\\n    $FILES\n\n  for N in $(find . -name perf_counter.[ch]); do\n    M\u003d$(echo $N | sed \u0027s/perf_counter/perf_event/g\u0027)\n    mv $N $M\n  done\n\n  FILES\u003d$(find . -name perf_event.*)\n\n  sed -i \\\n    -e \u0027s/COUNTER_MASK/REG_MASK/g\u0027 \\\n    -e \u0027s/COUNTER/EVENT/g\u0027 \\\n    -e \u0027s/\\\u003cevent\\\u003e/event_id/g\u0027 \\\n    -e \u0027s/counter/event/g\u0027 \\\n    -e \u0027s/Counter/Event/g\u0027 \\\n    $FILES\n\n... to keep it as correct as possible. This script can also be\nused by anyone who has pending perfcounters patches - it converts\na Linux kernel tree over to the new naming. We tried to time this\nchange to the point in time where the amount of pending patches\nis the smallest: the end of the merge window.\n\nNamespace clashes were fixed up in a preparatory patch - and some\nstylistic fallout will be fixed up in a subsequent patch.\n\n( NOTE: \u0027counters\u0027 are still the proper terminology when we deal\n  with hardware registers - and these sed scripts are a bit\n  over-eager in renaming them. I\u0027ve undone some of that, but\n  in case there\u0027s something left where \u0027counter\u0027 would be\n  better than \u0027event\u0027 we can undo that on an individual basis\n  instead of touching an otherwise nicely automated patch. )\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "20ab4425a77a1f34028cc6ce57053c22c184ba5f",
      "tree": "ca821b19593c3821fa13a520201537ad35e4c98d",
      "parents": [
        "e5e25cf47b0bdd1f7e9b8bb6368ee48e16de0c87"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 18 06:10:28 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 18 07:25:44 2009 +0200"
      },
      "message": "tracing: Allocate the ftrace event profile buffer dynamically\n\nCurrently the trace event profile buffer is allocated in the stack. But\nthis may be too much for the stack, as the events can have large\nstatically defined field size and can also grow with dynamic arrays.\n\nAllocate two per cpu buffer for all profiled events. The first cpu\nbuffer is used to host every non-nmi context traces. It is protected\nby disabling the interrupts while writing and committing the trace.\n\nThe second buffer is reserved for nmi. So that there is no race between\nthem and the first buffer.\n\nThe whole write/commit section is rcu protected because we release\nthese buffers while deactivating the last profiling trace event.\n\nv2: Move the buffers from trace_event to be global, as pointed by\n    Steven Rostedt.\n\nv3: Fix the syscall events to handle the profiling buffer races\n    by disabling interrupts, now that the buffers are globals.\n\nSuggested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5e25cf47b0bdd1f7e9b8bb6368ee48e16de0c87",
      "tree": "043e6215359853812130324a24e3d03511b41e2b",
      "parents": [
        "0efb4d20723d58edbad29d1ff98a86b631adb5e6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 18 00:54:43 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 18 06:14:32 2009 +0200"
      },
      "message": "tracing: Factorize the events profile accounting\n\nFactorize the events enabling accounting in a common tracing core\nhelper. This reduces the size of the profile_enable() and\nprofile_disable() callbacks for each trace events.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a48f494e1dbdcf4fb7c02100ae3208c4c1daecbf",
      "tree": "08c56167c5a3152c10c006e0aa67fe19f6e66831",
      "parents": [
        "ec827c7ece8901044e6b3f92aeea489be9e1bcf7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 14 11:18:02 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 14 11:18:02 2009 -0400"
      },
      "message": "tracing: have TRACE_EVENT macro use __flags to not shadow parameter\n\nThe generated functions of TRACE_EVENT uses \"flags\" in one of the\nsub macros which shadows a parameter in the outside macro.\n\nSimple fix is to make the submacro use __flags instead.\n\nDiscovered by sparse.\n\nReported-by: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ec827c7ece8901044e6b3f92aeea489be9e1bcf7",
      "tree": "e856e477b5ca2dfa2073709856d8493b201ae377",
      "parents": [
        "08a408161749d2406f94f4e3d47cfdbc826ad1cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 14 10:50:23 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 14 10:50:23 2009 -0400"
      },
      "message": "tracing: add static to generated TRACE_EVENT functions\n\nSome of the generated functions used in the TRACE_EVENT macros are\nnot declared static, but they are not global.\n\nDiscovered by sparse.\n\nReported-by: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8f8ffe2485bcaa890800681451d380779cea06af",
      "tree": "1d2ef3a27f1cab9a2b9014f4b75886a96a1ae8db",
      "parents": [
        "70069577323e6f72b845166724f34b9858134437",
        "d28daf923ac5e4a0d7cecebae56f3e339189366b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 11 01:09:23 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Sep 11 01:09:23 2009 +0200"
      },
      "message": "Merge commit \u0027tracing/core\u0027 into tracing/kprobes\n\nConflicts:\n\tkernel/trace/trace_export.c\n\tkernel/trace/trace_kprobe.c\n\nMerge reason: This topic branch lacks an important\nbuild fix in tracing/core:\n\n\t0dd7b74787eaf7858c6c573353a83c3e2766e674:\n\ttracing: Fix double CPP substitution in TRACE_EVENT_FN\n\nthat prevents from multiple tracepoint headers inclusion crashes.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\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": "8e254c1d183f0225ad21f9049641529e56cce4da",
      "tree": "5b559726a38b60c6bc92b3c8667c676db1038701",
      "parents": [
        "73222acf966792c7fda219724af963339be32e62"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 31 16:49:41 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 31 10:58:08 2009 +0200"
      },
      "message": "tracing/filters: Defer pred allocation\n\ninit_preds() allocates about 5392 bytes of memory (on x86_32) for\na TRACE_EVENT. With my config, at system boot total memory occupied\nis:\n\n\t5392 * (642 + 15) \u003d\u003d 3459KB\n\n642 \u003d\u003d cat available_events | wc -l\n15 \u003d\u003d number of dirs in events/ftrace\n\nThat\u0027s quite a lot, so we\u0027d better defer memory allocation util\nit\u0027s needed, that\u0027s when filter is used.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nLKML-Reference: \u003c4A9B8EA5.6020700@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0dd7b74787eaf7858c6c573353a83c3e2766e674",
      "tree": "110fd833b620a60e34aa00aaf316f8fd80ee7f86",
      "parents": [
        "66c6e29f24a50173fc1e761c3e2483c8d64e3b1a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 28 00:50:06 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 28 13:55:04 2009 +0200"
      },
      "message": "tracing: Fix double CPP substitution in TRACE_EVENT_FN\n\nTRACE_EVENT_FN relays on TRACE_EVENT by reprocessing its parameters\ninto the ftrace events CPP macro. This leads to a double substitution\nin some cases.\n\nFor example, a bad consequence is a format always prefixed by\n\"%s, %s\\n\" for every TRACE_EVENT_FN based events.\n\nEg:\n\tcat /debug/tracing/events/syscalls/sys_enter/format\n\t[...]\n\tprint fmt: \"%s, %s\\n\", \"\\\"NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)\\\"\",\\\n\t\"REC-\u003eid, REC-\u003eargs[0], REC-\u003eargs[1], REC-\u003eargs[2], REC-\u003eargs[3],\\\n\tREC-\u003eargs[4], REC-\u003eargs[5]\"\n\nThis creates a failure in post-processing tools such as perf trace or\ntrace-cmd.\n\nThen drop this double substitution and replace it by a new __cpparg()\nmacro that relays CPP arguments containing commas.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Josh Stone \u003cjistone@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c1251413406-6704-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd1a5c849bdcc5c89e4a6a18216cd2b9a7a8a78f",
      "tree": "1a807fef00b8a700d90683d4f1d480d95eec9669",
      "parents": [
        "b1cf540f0e5278ecfe8532557e547d833ed269d7"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Aug 13 16:34:53 2009 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 27 00:46:40 2009 +0200"
      },
      "message": "tracing: Ftrace dynamic ftrace_event_call support\n\nAdd dynamic ftrace_event_call support to ftrace. Trace engines can add\nnew ftrace_event_call to ftrace on the fly. Each operator function of\nthe call takes an ftrace_event_call data structure as an argument,\nbecause these functions may be shared among several ftrace_event_calls.\n\nChanges from v13:\n - Define remove_subsystem_dir() always (revirt a2ca5e03), because\n   trace_remove_event_call() uses it.\n - Modify syscall tracer because of ftrace_event_call change.\n\n[fweisbec@gmail.com: Fixed conflict against latest tracing/core]\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Przemysław Pawełczyk \u003cprzemyslaw@pawelczyk.it\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nLKML-Reference: \u003c20090813203453.31965.71901.stgit@localhost.localdomain\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "35dce1a99d010f3d738af4ce1b9b77302fdfe69c",
      "tree": "e34a37de965a79a2ae301de4d0557f500111dde6",
      "parents": [
        "7cb2e3ee2aeec5b83ecadba929a2dc575dd4008f",
        "1c569f0264ea629c10bbab471dd0626ce4d3f19f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 26 08:29:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 26 08:29:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into tracing/core\n\nConflicts:\n\tinclude/linux/tracepoint.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43b51ead3f752a3935116e5b1a94254b8573734f",
      "tree": "5d9e88635c85ba7b1d273dea3c4d8d96e5000154",
      "parents": [
        "aa38e9fc3ea804290efd3a39316d7f7e6c945800"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Aug 07 10:33:22 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 26 00:32:06 2009 -0400"
      },
      "message": "tracing/filters: Add __field_ext() to TRACE_EVENT\n\nAdd __field_ext(), so a field can be assigned to a specific\nfilter_type, which matches a corresponding filter function.\n\nFor example, a later patch will allow this:\n\t__field_ext(const char *, str, FILTER_PTR_STR);\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A7B9272.6050709@cn.fujitsu.com\u003e\n\n[\n  Fixed a -1 to FILTER_OTHER\n  Forward ported to latest kernel.\n]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "97419875865859fd2403e66266c02ce028e2f5ab",
      "tree": "7df6e6df767e9c8ff538a50bcae17638a1c8da99",
      "parents": [
        "3d27d8cb34fc156beb86de2338ca4029873a5cc6"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "jistone@redhat.com",
        "time": "Mon Aug 24 14:43:13 2009 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 26 00:36:41 2009 +0200"
      },
      "message": "tracing: Move tracepoint callbacks from declaration to definition\n\nIt\u0027s not strictly correct for the tracepoint reg/unreg callbacks to\noccur when a client is hooking up, because the actual tracepoint may not\nbe present yet.  This happens to be fine for syscall, since that\u0027s in\nthe core kernel, but it would cause problems for tracepoints defined in\na module that hasn\u0027t been loaded yet.  It also means the reg/unreg has\nto be EXPORTed for any modules to use the tracepoint (as in SystemTap).\n\nThis patch removes DECLARE_TRACE_WITH_CALLBACK, and instead introduces\nDEFINE_TRACE_FN which stores the callbacks in struct tracepoint.  The\ncallbacks are used now when the active state of the tracepoint changes\nin set_tracepoint \u0026 disable_tracepoint.\n\nThis also introduces TRACE_EVENT_FN, so ftrace events can also provide\nregistration callbacks if needed.\n\nSigned-off-by: Josh Stone \u003cjistone@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Li Zefan \u003clizf@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: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nLKML-Reference: \u003c1251150194-1713-4-git-send-email-jistone@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e647d6b314266adb904d4b84973eda0afa856946",
      "tree": "e4f18b57d37a25910b3d19b6c2461f87db0084a3",
      "parents": [
        "14be96c9716cb8c46dca94bd890defd7856e0734"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Aug 19 15:54:32 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 19 15:02:24 2009 +0200"
      },
      "message": "tracing/events: Add trace_define_common_fields()\n\nExtract duplicate code. Also prepare for the later patch.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A8BAFB8.1010304@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14be96c9716cb8c46dca94bd890defd7856e0734",
      "tree": "d9a064f3191182f16ff01176b17c4dda073d8dc8",
      "parents": [
        "10a5b66f625904ad5a2867cf7a28073e1236ff32"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Aug 19 15:53:52 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 19 15:02:23 2009 +0200"
      },
      "message": "tracing/events: Add ftrace_event_call param to define_fields()\n\nThis parameter is needed by syscall events to add define_fields()\nhandler.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A8BAF90.6060801@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8f9f4d79a677f55c8ec3acbe87b33a87e2df0de",
      "tree": "3b20dcf2c7b49fe23e0641805ca7aaac921bc46d",
      "parents": [
        "0ac676fb50f5f8a22e5e80afc40bf38e31b77c00"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 11 17:42:52 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 11 20:35:29 2009 +0200"
      },
      "message": "tracing: Add ftrace event call parameter to its field descriptor handler\n\nAdd the struct ftrace_event_call as a parameter of its show_format()\ncallback. This way we can use it from the syscall trace events to\nretrieve the syscall name from the ftrace event call parameter and\ndescribe its fields using the syscalls metadata.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.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\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\n"
    },
    {
      "commit": "69fd4f0eb2ececbf8ade55e31a933e174965745e",
      "tree": "bebe7f5b88b8e2c6c240390e4e546d0c3522e79b",
      "parents": [
        "f744bd576a827c5b02e756b81fc2578edf8179b8"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Mon Aug 10 16:52:44 2009 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 11 20:35:27 2009 +0200"
      },
      "message": "tracing: Add ftrace_event_call void * \u0027data\u0027 field\n\nadd an optional void * pointer to \u0027ftrace_event_call\u0027 that is\npassed in for regfunc and unregfunc.\n\nThis prepares for syscall tracepoints creation by passing the name of\nthe syscall we want to trace and then retrieve its number through our\narch syscall table.\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": "1853db0e02ae4088f102b0d8e59e83dc98f93f03",
      "tree": "9fd877538baf1904a31eb5436536954cdced5293",
      "parents": [
        "304703aba31a87903b8c0db8f5e6890cac2d596d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 10 16:38:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 10 16:51:19 2009 +0200"
      },
      "message": "perf_counter: Zero dead bytes from ftrace raw samples size alignment\n\nAfter aligning the ftrace raw samples, there are dead bytes storing\nrandom data from the stack. We don\u0027t want to leak these to userspace,\nthen zero these out.\n\nBefore:\n\n\t0x2de88 [0x50]: event: 9\n\t.\n\t. ... raw event: size 80 bytes\n\t.  0000:  09 00 00 00 01 00 50 00 d0 c7 00 81 ff ff ff ff  ......P........\n\t.  0010:  68 01 00 00 68 01 00 00 2c 00 00 00 00 00 00 00  h...h...,......\n\t.  0020:  2c 00 00 00 2b 00 01 02 68 01 00 00 68 01 00 00  ,...+...h...h..\n\t.  0030:  6b 6f 6e 64 65 6d 61 6e 64 2f 30 00 00 00 00 00  kondemand/0....\n\t.  0040:  68 01 00 00 40 7f 46 81 ff ff ff ff 00 10 1b 7f  h...@.F........\n                                                      ^  ^  ^  ^\n                                                         Leak\n\nAfter:\n\n\t0x2d318 [0x50]: event: 9\n\t.\n\t. ... raw event: size 80 bytes\n\t.  0000:  09 00 00 00 01 00 50 00 d0 c7 00 81 ff ff ff ff  ......P........\n\t.  0010:  68 01 00 00 68 01 00 00 68 14 00 00 00 00 00 00  h...h...h......\n\t.  0020:  2c 00 00 00 2b 00 01 02 68 01 00 00 68 01 00 00  ,...+...h...h..\n\t.  0030:  6b 6f 6e 64 65 6d 61 6e 64 2f 30 00 00 00 00 00  kondemand/0....\n\t.  0040:  68 01 00 00 a0 80 46 81 ff ff ff ff 00 00 00 00  h.....F........\n                                                      ^  ^  ^  ^\n\t\t\t\t\t\t\t Fixed\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c1249915116-5210-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\n"
    },
    {
      "commit": "304703aba31a87903b8c0db8f5e6890cac2d596d",
      "tree": "bd233c6fd72d1d674c4a9537cfd6519069914d74",
      "parents": [
        "a4e95fc2cbb31d70a65beffeaf8773f881328c34"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 10 16:11:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 10 16:18:50 2009 +0200"
      },
      "message": "perf_counter: Subtract the buffer size field from the event record size\n\nWe compute the perf raw sample size by aligning the raw ftrace\nevent size plus the buffer size field itself. We do that\ninstead of aligning only the perf raw sample size, so that we\nmight economize some in some cases.\n\nBut this buffer size field is not stored in the perf raw\nsample, we must then substract its size from the buffer once we\ncomputed the alignment unless we may get a useless u32 field in\nthe buffer.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20090810141129.GA5124@nowhere\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a044560c3a1f0ad75ce685c1ed7604820b9ed319",
      "tree": "51fa4979ad02d388b35e1a56020bfbd8c2e5329d",
      "parents": [
        "c0a8865e32c8d1a562db38e06ef31ef23282f646"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 10 11:16:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 10 11:33:09 2009 +0200"
      },
      "message": "perf_counter: Correct PERF_SAMPLE_RAW output\n\nPERF_SAMPLE_* output switches should unconditionally output the\ncorrect format, as they are the only way to unambiguously parse\nthe PERF_EVENT_SAMPLE data.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1249896447.17467.74.camel@twins\u003e\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": "3a6593050fbd8bbcaed3a44d01c31d907315c86c",
      "tree": "5bbaa0015ed0b0986146cc6fa9390f559bcb66b1",
      "parents": [
        "e3560336be655c6791316482fe288b119f34c427"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 21 17:34:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 09 12:47:25 2009 +0200"
      },
      "message": "perf_counter, ftrace: Fix perf_counter integration\n\nAdds possible second part to the assign argument of TP_EVENT().\n\n  TP_perf_assign(\n\t__perf_count(foo);\n\t__perf_addr(bar);\n  )\n\nWhich, when specified make the swcounter increment with @foo instead\nof the usual 1, and report @bar for PERF_SAMPLE_ADDR (data address\nassociated with the event) when this triggers a counter overflow.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d536cb3fb9993bdcd5a2fbaa6b0670ded4e101c",
      "tree": "63c4a6ec6de75d9a2db7d677c768a5f2953fa237",
      "parents": [
        "68fd60a8c8bca6af51805c45f286f0f2572ac977"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 16 10:54:02 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 11:38:44 2009 -0400"
      },
      "message": "tracing/events: record the size of dynamic arrays\n\nWhen a dynamic array is defined, we add __data_loc_foo in\ntrace_entry to record the offset of the array, but the\nsize of the array is not recorded, which causes 2 problems:\n\n- the event filter just compares the first 2 chars of the strings.\n\n- parsers can\u0027t parse dynamic arrays.\n\nSo we encode the size of each dynamic array in the higher 16 bits\nof __data_loc_foo, while the offset is in lower 16 bits.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A5E964A.9000403@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "68fd60a8c8bca6af51805c45f286f0f2572ac977",
      "tree": "7f7272bf201093e878f1f07c0bfe233f7e781634",
      "parents": [
        "d34a4debef933061924ee17c2ede33f5c44925fb"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Jul 16 10:53:34 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 20 10:52:51 2009 -0400"
      },
      "message": "tracing/events: add missing type info of dynamic arrays\n\nThe format file doesn\u0027t contain enough information for\n__dynamic_array/__string. The type name is missing.\n\nBefore:\n  # cat format:\n  name: irq_handler_entry\n  ...\n          field:__data_loc name;  offset:16;      size:2;\n\nAfter:\n  # cat format:\n  name: irq_handler_entry\n  ...\n          field:__data_loc char[] name;  offset:16;      size:2;\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A5E962E.9020900@cn.fujitsu.com\u003e\nSigned-off-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\n"
    },
    {
      "commit": "6ff9a64d2aaa6eae396adc95e9c91c0cbfa6dbe4",
      "tree": "1ca1b9a0aff32f1542a9dc3d2f5ccac7ab8a52e3",
      "parents": [
        "bc5c6c043d8381676339fb3da59cc4cc5921d368"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 10 14:28:34 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 10 14:28:34 2009 -0400"
      },
      "message": "tracing: do not translate event helper macros in print format\n\nBy moving the macro that creates the print format code above the\ndefining of the event macro helpers (__get_str, __print_symbolic,\nand __get_dynamic_array), we get a little cleaner print format.\n\nInstead of:\n\n  (char *)((void *)REC + REC-\u003e__data_loc_name)\n\nwe get:\n\n   __get_str(name)\n\nInstead of:\n\n   ({ static const struct trace_print_flags symbols[] \u003d { { HI_SOFTIRQ, \"HI\" }, {\n\nwe get:\n\n   __print_symbolic(REC-\u003evec, { HI_SOFTIRQ, \"HI\" }, {\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "56d8bd3f0b98972312cad683947ec90b21011199",
      "tree": "8ed2bb43d0f00923dd81b5b2c19c91b09e3977c6",
      "parents": [
        "048dc50c5e7eada19ebabbad70b7966d14283d41"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 03 14:52:03 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 03 10:29:48 2009 -0400"
      },
      "message": "tracing: fix multiple use of __print_flags and __print_symbolic\n\nHere is an updated patch to include the extra call to\ntrace_seq_init() as requested. This is vs. the latest\n-tip tree and fixes the use of multiple __print_flags\nand __print_symbolic in a single tracer. Also tested\nto ensure its working now:\n\nmount.gfs2-2534  [000]   235.850587: gfs2_glock_queue: 8.7 glock 1:2 dequeue PR\nmount.gfs2-2534  [000]   235.850591: gfs2_demote_rq: 8.7 glock 1:0 demote EX to NL flags:DI\nmount.gfs2-2534  [000]   235.850591: gfs2_glock_queue: 8.7 glock 1:0 dequeue EX\nglock_workqueue-2529  [000]   235.850666: gfs2_glock_state_change: 8.7 glock 1:0 state EX \u003d\u003e NL tgt:NL dmt:NL flags:lDpI\nglock_workqueue-2529  [000]   235.850672: gfs2_glock_put: 8.7 glock 1:0 state NL \u003d\u003e IV flags:I\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nLKML-Reference: \u003c1244037123.29604.603.camel@localhost.localdomain\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7fcb7c472f455d1711eb5a7633204dba8800a6d6",
      "tree": "ba64de513bdbe5550c6fc08078a356359830ec99",
      "parents": [
        "a9c1c3abe1160a5632e48c929b02b740556bf423"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 01 15:35:46 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:25:15 2009 -0400"
      },
      "message": "tracing/events: introduce __dynamic_array()\n\n__string() is limited:\n\n  - it\u0027s a char array, but we may want to define array with other types\n  - a source string should be available, but we may just know the string size\n\nWe introduce __dynamic_array() to break those limitations, and __string()\nbecomes a wrapper of it. As a side effect, now __get_str() can be used\nin TP_fast_assign but not only TP_print.\n\nTake XFS for example, we have the string length in the dirent, but the\nstring itself is not NULL-terminated, so __dynamic_array() can be used:\n\nTRACE_EVENT(xfs_dir2,\n\tTP_PROTO(struct xfs_da_args *args),\n\tTP_ARGS(args),\n\n\tTP_STRUCT__entry(\n\t\t__field(int, namelen)\n\t\t__dynamic_array(char, name, args-\u003enamelen + 1)\n\t\t...\n\t),\n\n\tTP_fast_assign(\n\t\tchar *name \u003d __get_str(name);\n\n\t\tif (args-\u003enamelen)\n\t\t\tmemcpy(name, args-\u003ename, args-\u003enamelen);\n\t\tname[args-\u003enamelen] \u003d \u0027\\0\u0027;\n\n\t\t__entry-\u003enamelen \u003d args-\u003enamelen;\n\t),\n\n\tTP_printk(\"name %.*s namelen %d\",\n\t\t  __entry-\u003enamelen ? __get_str(name) : NULL\n\t\t  __entry-\u003enamelen)\n);\n\n[ Impact: allow defining dynamic size arrays ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2384D2.3080403@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a9c1c3abe1160a5632e48c929b02b740556bf423",
      "tree": "07d2313c9b8c637e6532e61efe034dba5a697231",
      "parents": [
        "6e25db44a7ad7eb380f4ec774ec00a8fcddea112"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 01 15:35:13 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:24:53 2009 -0400"
      },
      "message": "tracing/events: put TP_fast_assign into braces\n\nCurrently TP_fast_assign has a limitation that we can\u0027t define local\nvariables in it.\n\nHere\u0027s one use case when we introduce __dynamic_array():\n\nTP_fast_assign(\n\ttype *p \u003d __get_dynamic_array(item);\n\n\tfoo(p);\n\tbar(p);\n),\n\n[ Impact: allow defining local variables in TP_fast_assign ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2384B1.90100@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6e25db44a7ad7eb380f4ec774ec00a8fcddea112",
      "tree": "35531dfe6f96b7883fc3014bbd0239eba616d414",
      "parents": [
        "897f17a65389a26509bd0c79a9812d1c9ea8ea6f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 29 11:24:59 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:24:13 2009 -0400"
      },
      "message": "tracing/events: fix a typo in __string() format output\n\n\"tsize\" should be \"\\tsize\". Also remove the space before \"__str_loc\".\n\nBefore:\n # cat tracing/events/irq/irq_handler_entry/format\n        ...\n        field:int irq;  offset:12;      size:4;\n        field: __str_loc name;  offset:16;tsize:2;\n        ...\n\nAfter:\n # cat tracing/events/irq/irq_handler_entry/format\n\t...\n        field:int irq;  offset:12;      size:4;\n        field:__str_loc name;   offset:16;      size:2;\n\t...\n\n[ Impact: standardize __string field description in events format file ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f2aebaee653a35b01c3665de2cbb1e31456b8ea8",
      "tree": "e9a873c81bb4105d10a04d925f15e53e9ad1ac0c",
      "parents": [
        "5b6045a906f48d37591365c5dcdd6d1d146bfd4a"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Wed May 27 21:36:02 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 28 01:22:06 2009 +0200"
      },
      "message": "ftrace: don\u0027t convert function\u0027s local variable name in macro\n\n\"call\" is an argument of macro, but it is also used as a local\nvariable name of function in macro.\nWe should keep this local variable name distinct from any\nCPP macro parameter name if both are in the same macro scope,\nalthough it hasn\u0027t caused any problem yet.\n\n[ Impact: robustify macro ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "0f4fc29dd68dfab9c6ddd5d087d34a5b6818cb00",
      "tree": "af3d210c8db9adcf117580c949fb708badcb520b",
      "parents": [
        "62ba180e80f4194a498585ac0e4c07daa8ca08d1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 20 19:21:47 2009 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 20:31:50 2009 +0200"
      },
      "message": "tracing: add __print_symbolic to trace events\n\nThis patch adds __print_symbolic which is similar to __print_flags but\nworks for an enumeration type instead. That is, there is only a one to one\nmapping between the values and the symbols. When a match is made, then\nit is printed, otherwise the hex value is outputed.\n\n[ Impact: add interface for showing symbol names in events ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "be74b73a57645cc253d881ab0c1014eb64b9cf22",
      "tree": "83f14ae9a43fe98a1363d30d20d60245e1115382",
      "parents": [
        "0e907c99391362385c8e3af2c43b904dd1fd5d73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 26 20:25:22 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 20:25:22 2009 +0200"
      },
      "message": "tracing: add __print_flags for events\n\nDevelopers have been asking for the ability in the ftrace event tracer\nto display names of bits in a flags variable.\n\nInstead of printing out c2, it would be easier to read FOO|BAR|GOO,\nassuming that FOO is bit 1, BAR is bit 6 and GOO is bit 7.\n\nSome examples where this would be useful are the state flags in a context\nswitch, kmalloc flags, and even permision flags in accessing files.\n\n[\n  v2 changes include:\n\n  Frederic Weisbecker\u0027s idea of using a mask instead of bits,\n  thus we can output GFP_KERNEL instead of GPF_WAIT|GFP_IO|GFP_FS.\n\n  Li Zefan\u0027s idea of allowing the caller of __print_flags to add their\n  own delimiter (or no delimiter) where we can get for file permissions\n  rwx instead of r|w|x.\n]\n\n[\n  v3 changes:\n\n   Christoph Hellwig\u0027s idea of using an array instead of va_args.\n]\n\n[ Impact: better displaying of flags in trace output ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b0aae68cc5508f3c2fbf728988c954db4c8b8a53",
      "tree": "af1253c54cf3edc83806acab14a60d1529e81709",
      "parents": [
        "4f5359685af6de7dca101393dc606620adbe963f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu May 21 13:59:18 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 00:15:21 2009 +0200"
      },
      "message": "tracing/events: change the type of __str_loc_item to unsigned short\n\nWhen defining a dynamic size string, we add __str_loc_##item to the\ntrace entry, and it stores the location of the actual string in\nentry-\u003e_str_data[]\n\n\u0027unsigned short\u0027 should be sufficient to store this information, thus\nwe save 2 bytes per dyn-size string in the ring buffer.\n\n[ Impact: reduce memory occupied by dyn-size strings in ring buffer ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A14EDB6.2050507@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\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": "b8e65554d80b4c560d201362d0e8fa02109d89fd",
      "tree": "21ebf291cf1ac97533cac99619652cd21bbd04f2",
      "parents": [
        "160031b556e93590fa8635210d73d93c3d3853a9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 24 11:50:39 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 24 11:50:39 2009 -0400"
      },
      "message": "tracing: remove deprecated TRACE_FORMAT\n\nThe TRACE_FORMAT macro has been deprecated by the TRACE_EVENT macro.\nThere are no more users. All new users must use the TRACE_EVENT macro.\n\n[ Impact: remove old functionality ]\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6a74aa40907757ec98d8710ff66cd4cfe064e7d8",
      "tree": "804f0043f9aa684dd00d4a0ef4f950c2da4d6550",
      "parents": [
        "7e7ca9a22dbbc5c91763cd16923c7509918709b6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 22 00:41:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 22 12:30:49 2009 +0200"
      },
      "message": "tracing/events: protect __get_str()\n\nThe __get_str() macro is used in a code part then its content should be\nprotected with parenthesis.\n\n[ Impact: make macro definition more robust ]\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "9cbf117662e24c6d33245666804487f92c21b59d",
      "tree": "c4c7bed1ccb7a0a332abdc7cbf4620c98a0321cf",
      "parents": [
        "7a4f453b6d7379a7c380825949977c5a838aa012"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 19 04:51:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 22 12:29:18 2009 +0200"
      },
      "message": "tracing/events: provide string with undefined size support\n\nThis patch provides the support for dynamic size strings on\nevent tracing.\n\nThe key concept is to use a structure with an ending char array field of\nundefined size and use such ability to allocate the minimal size on the\nring buffer to make one or more string entries fit inside, as opposite\nto a fixed length strings with upper bound.\n\nThe strings themselves are represented using fields which have an offset\nvalue from the beginning of the entry.\n\nThis patch provides three new macros:\n\n__string(item, src)\n\nThis one declares a string to the structure inside TP_STRUCT__entry.\nYou need to provide the name of the string field and the source that will\nbe copied inside.\nThis will also add the dynamic size of the string needed for the ring\nbuffer entry allocation.\nA stack allocated structure is used to temporarily store the offset\nof each strings, avoiding double calls to strlen() on each event\ninsertion.\n\n__get_str(field)\n\nThis one will give you a pointer to the string you have created. This\nis an abstract helper to resolve the absolute address given the field\nname which is a relative address from the beginning of the trace_structure.\n\n__assign_str(dst, src)\n\nUse this macro to automatically perform the string copy from src to\ndst. src must be a variable to assign and dst is the name of a __string\nfield.\n\nExample on how to use it:\n\nTRACE_EVENT(my_event,\n\tTP_PROTO(char *src1, char *src2),\n\n\tTP_ARGS(src1, src2),\n\tTP_STRUCT__entry(\n\t\t__string(str1, src1)\n\t\t__string(str2, src2)\n\t),\n\tTP_fast_assign(\n\t\t__assign_str(str1, src1);\n\t\t__assign_str(str2, src2);\n\t),\n\tTP_printk(\"%s %s\", __get_str(src1), __get_str(src2))\n)\n\nOf course you can mix-up any __field or __array inside this\nTRACE_EVENT. The position of the __string or __assign_str\ndoesn\u0027t matter.\n\nChanges in v2:\n\nAddress the suggestion of Steven Rostedt: drop the opening_string() macro\nand redefine __ending_string() to get the size of the string to be copied\ninstead of overwritting the whole ring buffer allocation.\n\nChanges in v3:\n\nAddress other suggestions of Steven Rostedt and Peter Zijlstra with\nsome changes: drop the __ending_string and the need to have only one\nstring field.\nUse offsets instead of absolute addresses.\n\n[ Impact: allow more compact memory usage for string tracing ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    }
  ],
  "next": "7a4f453b6d7379a7c380825949977c5a838aa012"
}
