)]}'
{
  "log": [
    {
      "commit": "897f17a65389a26509bd0c79a9812d1c9ea8ea6f",
      "tree": "ec23bdc97840581c6f4881f6e427c66d72a1269c",
      "parents": [
        "5e0a093910876882f91f1d4b8a1635a099e6c7ba"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 16:31:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:55 2009 -0400"
      },
      "message": "tracing: combine the default tracers into one config\n\nBoth event tracer and sched switch plugin are selected by default\nby all generic tracers. But if no generic tracer is enabled, their options\nappear. But ether one of them will select the other, thus it only\nmakes sense to have the default tracers be selected by one option.\n\n[ Impact: clean up kconfig menu ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e0a093910876882f91f1d4b8a1635a099e6c7ba",
      "tree": "2e9fb5caa629c2f1f77f82a78863366b82ad05f6",
      "parents": [
        "2af15d6a44b871ad4c2a651302374cde8f335480"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 15:50:13 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:30 2009 -0400"
      },
      "message": "tracing: fix config options to not show when automatically selected\n\nThere are two options that are selected by all tracers, but we want\nto have those options available when no tracer is selected. These are\n\n The event tracer and sched switch tracer.\n\nThe are enabled by all tracers, but if a tracer is not selected we want\nthe options to appear. All tracers including them select TRACING.\nThus what we would like to do is:\n\n  config EVENT_TRACER\n\tbool \"prompt\"\n\tdepends on TRACING\n\tselect TRACING\n\nBut that gives us a bug in the kbuild system since we just created a\ncircular dependency. We only want the prompt to show when TRACING is off.\n\nThis patch adds GENERIC_TRACER that all tracers will select instead of\nTRACING. The two options (sched switch and event tracer) will select\nTRACING directly and depend on !GENERIC_TRACER. This solves the cicular\ndependency.\n\n[ Impact: hide options that are selected by default ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2af15d6a44b871ad4c2a651302374cde8f335480",
      "tree": "39f06d511e3e1d1970fe4571128549c1c26230c1",
      "parents": [
        "f2aebaee653a35b01c3665de2cbb1e31456b8ea8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 28 13:37:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 01 23:23:10 2009 -0400"
      },
      "message": "ftrace: add kernel command line function filtering\n\nWhen using ftrace\u003dfunction on the command line to trace functions\non boot up, one can not filter out functions that are commonly called.\n\nThis patch adds two new ftrace command line commands.\n\n  ftrace_notrace\u003dfunction-list\n  ftrace_filter\u003dfunction-list\n\nWhere function-list is a comma separated list of functions to filter.\nThe ftrace_notrace will make the functions listed not be included\nin the function tracing, and ftrace_filter will only trace the functions\nlisted.\n\nThese two act the same as the debugfs/tracing/set_ftrace_notrace and\ndebugfs/tracing/set_ftrace_filter respectively.\n\nThe simple glob expressions that are allowed by the filter files can also\nbe used by the command line interface.\n\n\tftrace_notrace\u003drcu*,*lock,*spin*\n\nWill not trace any function that starts with rcu, ends with lock, or has\nthe word spin in it.\n\nNote, if the self tests are enabled, they may interfere with the filtering\nset by the command lines.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5b6045a906f48d37591365c5dcdd6d1d146bfd4a",
      "tree": "33a7b9513c84e442eda0159ee294a02f33589f55",
      "parents": [
        "c2adae0970ca1db8adb92fb56ae3bcabd916e8bd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue May 26 17:28:02 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 28 01:21:03 2009 +0200"
      },
      "message": "trace: disable preemption before taking raw spinlocks\n\ns390 code uses smp_processor_id() in __raw_spin_lock() code which\nreveals that a (raw) spinlock is taken without preemption disabled.\nThis can potentially deadlock.\n\nTo fix this explicitly disable and enable preemption.\n\nBUG: using smp_processor_id() in preemptible [00000000] code: cat/2278\ncaller is trace_find_cmdline+0x40/0xfc\nCPU: 0 Not tainted 2.6.30-rc7-dirty #39\nProcess cat (pid: 2278, task: 000000003faedb68, ksp: 000000003b33b988)\n000000003b33b988 000000003b33bae0 0000000000000002 0000000000000000\n       000000003b33bb80 000000003b33baf8 000000003b33baf8 00000000000175d6\n       0000000000000001 000000003b33b988 000000003f9b0000 000000000000000b\n       000000000000000c 000000003b33bb40 000000003b33bae0 0000000000000000\n       0000000000000000 00000000000175d6 000000003b33bae0 000000003b33bb28\nCall Trace:\n([\u003c00000000000174b2\u003e] show_trace+0x112/0x170)\n [\u003c0000000000017582\u003e] show_stack+0x72/0x100\n [\u003c0000000000441538\u003e] dump_stack+0xc8/0xd8\n [\u003c000000000025c350\u003e] debug_smp_processor_id+0x114/0x130\n [\u003c00000000000bf0e4\u003e] trace_find_cmdline+0x40/0xfc\n [\u003c00000000000c35d4\u003e] trace_print_context+0x58/0xac\n [\u003c00000000000bb676\u003e] print_trace_line+0x416/0x470\n [\u003c00000000000bc8fe\u003e] s_show+0x4e/0x428\n [\u003c000000000013834e\u003e] seq_read+0x36a/0x5d4\n [\u003c0000000000112a78\u003e] vfs_read+0xc8/0x174\n [\u003c0000000000112c58\u003e] SyS_read+0x74/0xc4\n [\u003c000000000002c7ae\u003e] sysc_noemu+0x10/0x16\n [\u003c000002000012436c\u003e] 0x2000012436c\n1 lock held by cat/2278:\n #0:  (\u0026p-\u003elock){+.+.+.}, at: [\u003c0000000000138056\u003e] seq_read+0x72/0x5d4\n\n[ Impact: fix preempt-unsafe raw spinlock ]\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.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": "0e907c99391362385c8e3af2c43b904dd1fd5d73",
      "tree": "86f1fc73644d4a7db5e1cbc96434aa89d02879cc",
      "parents": [
        "b11c53e12f94a46b50bccc7a1a953d7ca1d54a31"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon May 25 18:13:59 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 03:30:31 2009 +0200"
      },
      "message": "ftrace: clean up of using ftrace_event_enable_disable()\n\nAlways use ftrace_event_enable_disable() to enable/disable an event\nso that we can factorize out the event toggling code.\n\n[ Impact: factorize and cleanup event tracing code ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c4A14FDFE.2080402@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b11c53e12f94a46b50bccc7a1a953d7ca1d54a31",
      "tree": "a0d658e31ffd7f05834c6026874cd4120a35dd29",
      "parents": [
        "29fcefba8a2f0fea11e2b721fe174a1832801284"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Mon May 25 18:11:59 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 26 03:03:21 2009 +0200"
      },
      "message": "ftrace: Add task_comm support for trace_event\n\nIf we enable a trace event alone without any tracer running (such as\nfunction tracer, sched switch tracer, etc...) it can\u0027t output enough\ntask command information.\n\nWe need to use the tracing_{start/stop}_cmdline_record() helpers\nwhich are designed to keep track of cmdlines for any tasks that\nwere scheduled during the tracing.\n\nBefore this patch:\n # echo 1 \u003e debugfs/tracing/events/sched/sched_switch/enable\n # cat debugfs/tracing/trace\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n            \u003c...\u003e-2289  [000] 526276.724790: sched_switch: task bash:2289 [120] \u003d\u003d\u003e sshd:2287 [120]\n            \u003c...\u003e-2287  [000] 526276.725231: sched_switch: task sshd:2287 [120] \u003d\u003d\u003e bash:2289 [120]\n            \u003c...\u003e-2289  [000] 526276.725452: sched_switch: task bash:2289 [120] \u003d\u003d\u003e sshd:2287 [120]\n            \u003c...\u003e-2287  [000] 526276.727181: sched_switch: task sshd:2287 [120] \u003d\u003d\u003e swapper:0 [140]\n           \u003cidle\u003e-0     [000] 526277.032734: sched_switch: task swapper:0 [140] \u003d\u003d\u003e events/0:5 [115]\n            \u003c...\u003e-5     [000] 526277.032782: sched_switch: task events/0:5 [115] \u003d\u003d\u003e swapper:0 [140]\n ...\n\nAfter this patch:\n # tracer: nop\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n             bash-2269  [000] 527347.989229: sched_switch: task bash:2269 [120] \u003d\u003d\u003e sshd:2267 [120]\n             sshd-2267  [000] 527347.990960: sched_switch: task sshd:2267 [120] \u003d\u003d\u003e bash:2269 [120]\n             bash-2269  [000] 527347.991143: sched_switch: task bash:2269 [120] \u003d\u003d\u003e sshd:2267 [120]\n             sshd-2267  [000] 527347.992959: sched_switch: task sshd:2267 [120] \u003d\u003d\u003e swapper:0 [140]\n           \u003cidle\u003e-0     [000] 527348.531989: sched_switch: task swapper:0 [140] \u003d\u003d\u003e events/0:5 [115]\n         events/0-5     [000] 527348.532115: sched_switch: task events/0:5 [115] \u003d\u003d\u003e swapper:0 [140]\n ...\n\nChangelog:\nv1-\u003ev2: Update Kconfig to select CONTEXT_SWITCH_TRACER in\n        ENABLE_EVENT_TRACING\nv2-\u003ev3: v2 can solve problem that was caused by config EVENT_TRACING\n        alone, but when CONFIG_FTRACE is off and CONFIG_TRACING is\n        selected by other config, compile fail happened again.\n        This version solves it.\n\n[ Impact: fix incomplete output of event tracing ]\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A14FDFE.2080402@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "4f5359685af6de7dca101393dc606620adbe963f",
      "tree": "1f9dc3fb9299008daa6a5fb6f03945008ea4a4f9",
      "parents": [
        "5537937696c55530447c20aa27daccb8d0d29b33"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon May 18 19:35:34 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 25 23:53:41 2009 +0200"
      },
      "message": "tracing: add trace_event_read_lock()\n\nI found that there is nothing to protect event_hash in\nftrace_find_event(). Rcu protects the event hashlist\nbut not the event itself while we use it after its extraction\nthrough ftrace_find_event().\n\nThis lack of a proper locking in this spot opens a race\nwindow between any event dereferencing and module removal.\n\nEg:\n\n--Task A--\n\nprint_trace_line(trace) {\n  event \u003d find_ftrace_event(trace)\n\n--Task B--\n\ntrace_module_remove_events(mod) {\n  list_trace_events_module(ev, mod) {\n    unregister_ftrace_event(ev-\u003eevent) {\n      hlist_del(ev-\u003eevent-\u003enode)\n        list_del(....)\n    }\n  }\n}\n|--\u003e module removed, the event has been dropped\n\n--Task A--\n\n  event-\u003eprint(trace); // Dereferencing freed memory\n\nIf the event retrieved belongs to a module and this module\nis concurrently removed, we may end up dereferencing a data\nfrom a freed module.\n\nRCU could solve this, but it would add latency to the kernel and\nforbid tracers output callbacks to call any sleepable code.\nSo this fix converts \u0027trace_event_mutex\u0027 to a read/write semaphore,\nand adds trace_event_read_lock() to protect ftrace_find_event().\n\n[ Impact: fix possible freed memory dereference in ftrace ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4A114806.7090302@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "5537937696c55530447c20aa27daccb8d0d29b33",
      "tree": "e3207e5a491822238ed299a5e7d96dfc72b1c43a",
      "parents": [
        "fd51d251e4cdb21f68e9dbc4336514d64a105a79"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Mon May 18 23:04:46 2009 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed May 20 19:23:11 2009 +0200"
      },
      "message": "ftrace: fix check for return value of register_module_notifier in event_trace_init\n\nregister_module_notifier() returns zero in the success case.\nSo fix the inverted fail case check in trace events modules\nhandler.\n\n[ Impact: fix spurious warning on ftrace initialization]\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "fd51d251e4cdb21f68e9dbc4336514d64a105a79",
      "tree": "478fb26aea6b7e79532f33cc5949b4fece18cdfc",
      "parents": [
        "143c145e3a475065a4be661468d0df1bd0b25f74"
      ],
      "author": {
        "name": "Stefan Raspl",
        "email": "raspl@linux.vnet.ibm.com",
        "time": "Tue May 19 09:59:08 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 19 10:29:21 2009 +0200"
      },
      "message": "blktrace: remove debugfs entries on bad path\n\ndebugfs directory entries for devices are not removed on some\nof the failure pathes in do_blk_trace_setup().\nOne way to reproduce is to start blktrace on multiple devices\nwith insufficient Vmalloc space: Devices will fail with\na message like this:\n\n\tBLKTRACESETUP(2) /dev/sdu failed: 5/Input/output error\n\nIf so, the respective entries in debugfs\n(e.g. /sys/kernel/debug/block/sdu) will remain and subsequent\nattempts to start blktrace on the respective devices will not\nsucceed due to existing directories.\n\n[ Impact: fix /debug/tracing file cleanup corner case ]\n\nSigned-off-by: Stefan Raspl \u003cstefan.raspl@linux.vnet.ibm.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: schwidefsky@de.ibm.com\nCc: heiko.carstens@de.ibm.com\nLKML-Reference: \u003c4A1266CC.5040801@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24ed0c4bfc7d2d7507bb9d50f7f3bbdcd85d76dd",
      "tree": "954ff0ff7f4249ec7a2e9e9233bb4d8e0670f9ce",
      "parents": [
        "1079cac0f4eb7d968395378b1625979d4c818dd6"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sun May 17 15:31:38 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 10:24:13 2009 +0200"
      },
      "message": "tracing: fix check for return value of register_module_notifier\n\nreturn zero should be correct, so fix it.\n\n[ Impact: eliminate incorrect syslog message ]\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1242545498-7285-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5872144f64b34a5942f6b4acedc90b02de72c58b",
      "tree": "65ab10576155c05d7ac319197896a31721f61499",
      "parents": [
        "8cd995b6deedf98b7694ed32a786ee7f793d1eec"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 15 11:07:56 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:55:12 2009 -0400"
      },
      "message": "tracing/filters: fix off-by-one bug\n\nWe should leave the last slot for the ending \u0027\\0\u0027.\n\n[ Impact: fix possible crash when the length of an operand is 128 ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A0CDC8C.30602@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8cd995b6deedf98b7694ed32a786ee7f793d1eec",
      "tree": "6c423c242027eacf07018ae9e0488ef035337c68",
      "parents": [
        "1ec7c4849c214fc78b023230264399836ea3b245"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 15 11:07:27 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:55:10 2009 -0400"
      },
      "message": "tracing/filters: add missing unlock in a failure path\n\n[ Impact: fix deadlock in a rare case we fail to allocate memory ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A0CDC6F.7070200@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1ec7c4849c214fc78b023230264399836ea3b245",
      "tree": "52a53fcd4d7ea0cd94b65bd8c6bf20402e3356af",
      "parents": [
        "29a679754b1a2581ee456eada6c2de7ce95068bb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 14 23:40:06 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 14 23:40:06 2009 -0400"
      },
      "message": "tracing: stop stack trace on first empty entry\n\nThe stack tracer stores eight entries in the ring buffer when an event\ntraces the stack. The output outputs all eight entries regardless of\nhow many entries were recorded.\n\nThis patch breaks out of the loop when a null entry is discovered.\n\n[ Impact: only print the stack that is recorded ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "168b6b1d0594c7866caa73b12f3b8d91075695f2",
      "tree": "2dd8d0e8b6ffc87360180c878a87b3632625b3f0",
      "parents": [
        "88eb0125362f2ab272cbaf84252cf101ddc2dec9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 22:11:05 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:33:06 2009 -0400"
      },
      "message": "ring-buffer: move code around to remove some branches\n\nThis is a bit of micro-optimizations. But since the ring buffer is used\nin tracing every function call, it is an extreme hot path. Every nanosecond\ncounts.\n\nThis change shows over 5% improvement in the ring-buffer-benchmark.\n\n[ Impact: more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "88eb0125362f2ab272cbaf84252cf101ddc2dec9",
      "tree": "acf8bac454d61874f35bf5e20cd30b448811608a",
      "parents": [
        "0f0c85fc80adbbd2265d89867d743f929d516805"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 16:28:23 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:14:03 2009 -0400"
      },
      "message": "ring-buffer: use internal time stamp function\n\nThe ring_buffer_time_stamp that is exported adds a little more overhead\nthan is needed for using it internally. This patch adds an internal\ntimestamp function that can be inlined (a single line function)\nand used internally for the ring buffer.\n\n[ Impact: a little less overhead to the ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0f0c85fc80adbbd2265d89867d743f929d516805",
      "tree": "0095c5a83727863eb38027c41b9a0cd74c1d283d",
      "parents": [
        "be957c447f7233a67904a1b11eb3ab61e702bf4d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 16:08:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 23:12:34 2009 -0400"
      },
      "message": "ring-buffer: small optimizations\n\nDoing some small changes in the fast path of the ring buffer recording\nsaves over 3% in the ring-buffer-benchmark test.\n\n[ Impact: a little faster ring buffer recording ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "be957c447f7233a67904a1b11eb3ab61e702bf4d",
      "tree": "fa92f4d46678c9a200ce9f92c1445da3bd71c74f",
      "parents": [
        "1cd8d7358948909ab80b254eb14bcebc555ad417"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 14:42:53 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 14:42:53 2009 -0400"
      },
      "message": "ring-buffer: move calculation of event length\n\nThe event length is calculated and passed in to rb_reserve_next_event\nin two different locations. Having rb_reserve_next_event do the\ncalculations directly makes only one location to do the change and\ncauses the calculation to be inlined by gcc.\n\nBefore:\n   text    data     bss     dec     hex filename\n  16538      24      12   16574    40be kernel/trace/ring_buffer.o\n\nAfter:\n   text    data     bss     dec     hex filename\n  16490      24      12   16526    408e kernel/trace/ring_buffer.o\n\n[ Impact: smaller more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1cd8d7358948909ab80b254eb14bcebc555ad417",
      "tree": "ff7d2bcd4f7b4ea12af66771d6a204b786c134c5",
      "parents": [
        "d988ff94c1074c4c914235c8591bcceafb585ecf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 11 14:08:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 14:19:00 2009 -0400"
      },
      "message": "ring-buffer: remove type parameter from rb_reserve_next_event\n\nThe rb_reserve_next_event is only called for the data type (type \u003d 0).\nThere is no reason to pass in the type to the function.\n\nBefore:\n   text    data     bss     dec     hex filename\n  16554      24      12   16590    40ce kernel/trace/ring_buffer.o\n\nAfter:\n   text    data     bss     dec     hex filename\n  16538      24      12   16574    40be kernel/trace/ring_buffer.o\n\n[ Impact: cleaner, smaller and slightly more efficient code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d988ff94c1074c4c914235c8591bcceafb585ecf",
      "tree": "46dc84aa84e04ae92cd66ed5cbf7a55452dcdb1c",
      "parents": [
        "5a772b2b3c68e7e0b503c5a48469113bb0634314"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 11:03:57 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 13:22:26 2009 -0400"
      },
      "message": "ring-buffer: check for divide by zero in ring-buffer-benchmark\n\nAlthough we check if \"missed\" is not zero, we divide by hit + missed,\nand the addition can possible overflow and become a divide by zero.\n\nThis patch checks for this case, and will report it when it happens\nthen modify \"hit\" to make the calculation be non zero.\n\n[ Impact: prevent possible divide by zero in ring-buffer-benchmark ]\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a772b2b3c68e7e0b503c5a48469113bb0634314",
      "tree": "f6c1a0c28cd9225778a4348aded45bae8b634126",
      "parents": [
        "79c5d3ce614d8fe706545c7bca2158b63db6bb5e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 10:56:33 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 11 13:22:26 2009 -0400"
      },
      "message": "ring-buffer: replace constants with time macros in ring-buffer-benchmark\n\nThe use of numeric constants is discouraged. It is cleaner and more\ndescriptive to use macros for constant time conversions.\n\nThis patch also removes an extra new line.\n\n[ Impact: more descriptive time conversions ]\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "049862579333cc6cd9e6edfd6987cd0addfd8c59",
      "tree": "171ce56995657c0dd92825b733afbd88242a3887",
      "parents": [
        "4671c79408a3f8a5a6a45e39c4c164dada3a5678"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon May 11 14:33:23 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 12:25:50 2009 +0200"
      },
      "message": "blktrace: pdu_buf of pc events should be unsigned\n\nI got this:\n  8,0    1   305.417782332  2037  I   R 32 (ffffff9e 10 00 ...) [bash]\n\nIt should be:\n  8,0    1   305.417782332  2037  I   R 32 (9e 10 00 ...) [bash]\n\n[ Impact: fix output of pc events ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A07C6B3.9080802@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4671c79408a3f8a5a6a45e39c4c164dada3a5678",
      "tree": "c8cc041841afe9d2c1be14a2410c1f468b7477be",
      "parents": [
        "29f93943d1916d1a3faa3f10f4a06994347ac990"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 16:27:41 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 08 16:30:26 2009 -0400"
      },
      "message": "tracing: add trace_set_clr_event to export event enabling function\n\nOther parts of the kernel may need to be able to enable or disable\nspecific events. Especially parts that create trace events.\n\n[ Impact: allow enabling of trace events by those that create the event ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "29f93943d1916d1a3faa3f10f4a06994347ac990",
      "tree": "128c64e3e8305fb1c6785ef150b22b2412f856f2",
      "parents": [
        "c142b15dc56ee6d55cb97a062e3c8e9c61e384c0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 08 16:06:47 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 08 16:06:47 2009 -0400"
      },
      "message": "tracing: initialize return value for __ftrace_set_clr_event\n\nCommit 8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2\ntracing/events: clean up for ftrace_set_clr_event()\n\nMoved out the code for ftrace_set_clr_event into a helper funciton but\ndid not initialize the return value. As a result, we do not warn about\na typo in the echoing of events in set_event.\n\nThis patch restores the old warning:\n\n # echo foobar \u003e set_event\n-bash: echo: write error: Invalid argument\n\n[ Impact: restore warning of invalid entries to set_event ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c142b15dc56ee6d55cb97a062e3c8e9c61e384c0",
      "tree": "d273ba8c5ce28bea224e4f48b9704e47ed68a2b4",
      "parents": [
        "8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 08 10:32:05 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 14:00:36 2009 +0200"
      },
      "message": "tracing/events: simplify system_enable_read()\n\nA smarter way to figure out the output of an enable file.\n\n[ Impact: clean up ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A0399A5.2080603@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f31bfe538ebafac187d2d4465a92e1d9ee6d8c2",
      "tree": "660b7340cadca779314e04b960618d7ac1c7d425",
      "parents": [
        "74f4fd21664148b8c454cc07bfe74e4dd51cf07b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri May 08 10:31:42 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 14:00:35 2009 +0200"
      },
      "message": "tracing/events: clean up for ftrace_set_clr_event()\n\nAdd a helper function __ftrace_set_clr_event(), and replace some\nftrace_set_clr_event() calls with this helper, thus we don\u0027t need any\nkstrdup() or kmalloc().\n\nAs a side effect, this patch fixes an issue in self tests code, which is\nsimilar to the one fixed in commit d6bf81ef0f7474434c2a049e8bf3c9146a14dd96\n(\"tracing: append \":*\" to internal setting of system events\")\n\nIt\u0027s a small issue and won\u0027t cause any bug in fact, but we should do things\nright anyway.\n\n[ Impact: prevent spurious event-enabling in tracing self-tests ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A03998E.3020503@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74f4fd21664148b8c454cc07bfe74e4dd51cf07b",
      "tree": "fa4074dff8913c25a9192c65c112de25cf07fbf4",
      "parents": [
        "7da3046d6ce6ea97494020081c509b642b7016af"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 19:58:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 20:01:11 2009 -0400"
      },
      "message": "ring-buffer: change WARN_ON from checking preempt_count to preemptible\n\nThere\u0027s a WARN_ON in the ring buffer code that makes sure preemption\nis disabled. It checks \"!preempt_count()\". But when CONFIG_PREEMPT is not\nenabled, preempt_count() is always zero, and this will trigger the warning.\n\n[ Impact: prevent false warning on non preemptible kernels ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7da3046d6ce6ea97494020081c509b642b7016af",
      "tree": "8bd27902977bc821980331054a6b2c5876bf2918",
      "parents": [
        "0574ea421b90e0e45a72c447dd3c2c79ffd8c153"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 19:52:20 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 19:52:20 2009 -0400"
      },
      "message": "ring-buffer: add total count in ring-buffer-benchmark\n\nIt is nice to see the overhead of the benchmark test when tracing is\ndisabled. That is, we turn off the ring buffer just to see what the\ncost of running the loop that calls into the ring buffer is.\n\nCurrently, if no entries wer made, we get 0. This is not informative.\nThis patch changes it to check if we had any \"missed\" (non recorded)\nevents. If so, a total count is also reported.\n\n[ Impact: evaluate the over head of the ring buffer benchmark test ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0574ea421b90e0e45a72c447dd3c2c79ffd8c153",
      "tree": "ec19f007794a8593f1c75f3f2d05c2471346298e",
      "parents": [
        "65b77242043f74bca6a0d733c0e48ef03a8c9893"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 14:20:28 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 14:20:28 2009 -0400"
      },
      "message": "ring-buffer: only periodically call cond_resched to ring-buffer-benchmark\n\nCalling cond_resched at every iteration of the loop adds a bit of\noverhead to the benchmark.\n\nThis patch does two things.\n\n1) only calls cond-resched when CONFIG_PREEMPT is not enabled\n2) only calls cond-resched after so many traces has been performed.\n\n[ Impact: less overhead to the ring-buffer-benchmark ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "65b77242043f74bca6a0d733c0e48ef03a8c9893",
      "tree": "f7ba92bd5633ee6389bd51191d5a736d7b4666ea",
      "parents": [
        "d6bf81ef0f7474434c2a049e8bf3c9146a14dd96"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 12:49:27 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 12:49:27 2009 -0400"
      },
      "message": "tracing: have menu default enabled when kernel debug is configured\n\nTracing can be very helpful to debug the kernel. When DEBUG_KERNEL is\nenabled it is nice to enable the trace menu as well.\n\nThis patch only make the tracing menu enabled by default, it does not\nmake any of the tracers enabled. And the menu is only enabled by\ndefault if DEBUG_KERNEL is enabled.\n\n[ Impact: show tracing options to those debugging the kernel ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d6bf81ef0f7474434c2a049e8bf3c9146a14dd96",
      "tree": "b2868093d4812c628a6752b1995491131cb08bc8",
      "parents": [
        "29c8000ee7da3a6756d26143991e573eaaf2a9f6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 11:49:35 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 11:49:35 2009 -0400"
      },
      "message": "tracing: append \":*\" to internal setting of system events\n\nThe system enabling of events uses the same code as the set_event file.\nIt passes in the name of the system to the parser and that will enable\nall the events that has that system as a name.\n\nThe problem is that it will also enable events with the same name as the\nsystem.\n\nIf you have system name foo, and system name bar, but within the system\nbar, there exists an event called foo. By setting the system name foo,\nyou will also be enabling the event foo in the system bar. This is not\nan expected result.\n\nThe solution is to pass in \"foo:*\", which will only enable the system\nfoo and not events called foo.\n\n[ Impact: prevent accidental enabling of events with same name as a system ]\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "29c8000ee7da3a6756d26143991e573eaaf2a9f6",
      "tree": "4c57a374639127ebccd6f4fca0feb02cde21e702",
      "parents": [
        "0ad5d703c6c0fcd385d956555460df95dff7eb7e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 07 11:13:42 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 07 11:16:18 2009 -0400"
      },
      "message": "ring-buffer: remove complex calculations in ring-buffer-test\n\nIngo Molnar thought that the code to calculate the time in cond_resched\nis a bit too ugly and is not needed. This patch removes it and replaces\nit with a simple call to cond_resched. I kept the comment that explains\nthe reason for the cond_resched.\n\n[ Impact: remove ugly code ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0ad5d703c6c0fcd385d956555460df95dff7eb7e",
      "tree": "4b777100f9be4fe90ca4bd043b9f98df672b5b3b",
      "parents": [
        "44347d947f628060b92449702071bfe1d31dfb75",
        "1cb81b143fa8f0e4629f10690862e2e52ca792ff"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:18:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 13:36:22 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/hw-branch-tracing\u0027 into tracing/core\n\nMerge reason: this topic is ready for upstream now. It passed\n              Oleg\u0027s review and Andrew had no further mm/*\n              objections/observations either.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44347d947f628060b92449702071bfe1d31dfb75",
      "tree": "c6ed74610d5b3295df4296659f80f5feb94b28cc",
      "parents": [
        "d94fc523f3c35bd8013f04827e94756cbc0212f4",
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:34 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on a .30-rc1 base and was missing out on\n              on a handful of tracing fixes present in .30-rc5-almost.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d94fc523f3c35bd8013f04827e94756cbc0212f4",
      "tree": "aacd8c0aaa2024437b7bfba4636afcc87f4890bf",
      "parents": [
        "5928c3cc0ffcb6894bbab6be591b7ae1786b2d87"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu May 07 15:11:15 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 10:07:28 2009 +0200"
      },
      "message": "tracing/events: fix concurrent access to ftrace_events list, fix\n\nIn filter_add_subsystem_pred() we should release event_mutex before\ncalling filter_free_subsystem_preds(), since both functions hold\nevent_mutex.\n\n[ Impact: fix deadlock when writing invalid pred into subsystem filter ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: tzanussi@gmail.com\nCc: a.p.zijlstra@chello.nl\nCc: fweisbec@gmail.com\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c4A028993.7020509@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5928c3cc0ffcb6894bbab6be591b7ae1786b2d87",
      "tree": "75503a660dafe84dcd434912c5a0bdf97cad3c8a",
      "parents": [
        "e8808c1019b048a43686dbd25c188a035842c2e2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 03 03:03:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 10:05:57 2009 +0200"
      },
      "message": "tracing/filters: support for operator reserved characters in strings\n\nWhen we set a filter for an event, such as:\n\necho \"name \u003d\u003d my_lock_name\" \u003e \\\n\t/debug/tracing/events/lockdep/lock_acquired/filter\n\nthen the following order of token type is parsed:\n\n- space\n- operator\n- parentheses\n- operand\n\nBecause the operators and parentheses have a higher precedence\nthan the operand characters, which is normal, then we can\u0027t\nuse any string containing such special characters:\n\n()\u003d\u003c\u003e!\u0026|\n\nTo get this support and also avoid ambiguous intepretation from\nthe parser or the human, we can do it using double quotes so that\nwe keep the usual languages habits.\n\nThen after this patch you can still declare string condition like\nbefore:\n\necho name \u003d\u003d myname\n\nBut if you want to compare against a string containing an operator\ncharacter, you can use double quotes:\n\necho \u0027name \u003d\u003d \"\u0026myname\"\u0027\n\nDon\u0027t forget to include the whole expression into single quotes or\nthe double ones will be eaten by echo.\n\n[ Impact: support strings with special characters for tracing filters ]\n\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Zhaolei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e8808c1019b048a43686dbd25c188a035842c2e2",
      "tree": "350eefee96e540ee855a6aefc64a17af25486234",
      "parents": [
        "8ae79a138e88aceeeb07077bff2883245fb7c218"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 03 02:48:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 10:05:57 2009 +0200"
      },
      "message": "tracing/filters: support for filters of dynamic sized arrays\n\nCurrently the filtering infrastructure supports well the\nnumeric types and fixed sized array types.\n\nBut the recently added __string() field uses a specific\nindirect offset mechanism which requires a specific\npredicate. Until now it wasn\u0027t supported.\n\nThis patch adds this support and implies very few changes,\nonly a new predicate is needed, the management of this specific\nfield can be done through the usual string helpers in the\nfiltering infrastructure.\n\n[ Impact: support all kinds of strings in the tracing filters ]\n\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Zhaolei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "8ae79a138e88aceeeb07077bff2883245fb7c218",
      "tree": "ebb58fcf7d06af26c5855f664e769f850de4b434",
      "parents": [
        "9456f0fa6d3cb944d3b9fc31c9a244e0362c26ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 22:52:15 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 23:11:42 2009 -0400"
      },
      "message": "tracing: add hierarchical enabling of events\n\nWith the current event directory, you can only enable individual events.\nThe file debugfs/tracing/set_event is used to be able to enable or\ndisable several events at once. But that can still be awkward.\n\nThis patch adds hierarchical enabling of events. That is, each directory\nin debugfs/tracing/events has an \"enable\" file. This file can enable\nor disable all events within the directory and below.\n\n # echo 1 \u003e /debugfs/tracing/events/enable\n\nwill enable all events.\n\n # echo 1 \u003e /debugfs/tracing/events/sched/enable\n\nwill enable all events in the sched subsystem.\n\n # echo 1 \u003e /debugfs/tracing/events/enable\n # echo 0 \u003e /debugfs/tracing/events/irq/enable\n\nwill enable all events, but then disable just the irq subsystem events.\n\nWhen reading one of these enable files, there are four results:\n\n 0 - all events this file affects are disabled\n 1 - all events this file affects are enabled\n X - there is a mixture of events enabled and disabled\n ? - this file does not affect any event\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9456f0fa6d3cb944d3b9fc31c9a244e0362c26ea",
      "tree": "9e6e97199f63c786a79966a5938873a98591e10c",
      "parents": [
        "71e1c8ac42ae4038ddb1367cce7097ab868dc532"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 21:54:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 23:11:41 2009 -0400"
      },
      "message": "tracing: reset ring buffer when removing modules with events\n\nLi Zefan found that there\u0027s a race using the event ids of events and\nmodules. When a module is loaded, an event id is incremented. We only\nhave 16 bits for event ids (65536) and there is a possible (but highly\nunlikely) race that we could load and unload a module that registers\nevents so many times that the event id counter overflows.\n\nWhen it overflows, it then restarts and goes looking for available\nids. An id is available if it was added by a module and released.\n\nThe race is if you have one module add an id, and then is removed.\nAnother module loaded can use that same event id. But if the old module\nstill had events in the ring buffer, the new module\u0027s call back would\nget bogus data.  At best (and most likely) the output would just be\ngarbage. But if the module for some reason used pointers (not recommended)\nthen this could potentially crash.\n\nThe safest thing to do is just reset the ring buffer if a module that\nregistered events is removed.\n\n[ Impact: prevent unpredictable results of event id overflows ]\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49FEAFD0.30106@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3e07a4f680adc66dfa175aa5021aedf340251b12",
      "tree": "c245b416cf3d88e4c2f1d0ff43d0021e59b20b47",
      "parents": [
        "6634ff26cce2da04e5c2a5481bcb8888e7d01786"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 18:36:59 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 18:36:59 2009 -0400"
      },
      "message": "ring-buffer: change test to be more latency friendly\n\nThe ring buffer benchmark/test runs a producer for 10 seconds.\nThis is done with preemption and interrupts enabled. But if the kernel\nis not compiled with CONFIG_PREEMPT, it basically stops everything\nbut interrupts for 10 seconds.\n\nAlthough this is just a test and is not for production, this attribute\ncan be quite annoying. It can also spawn badness elsewhere.\n\nThis patch solves the issues by calling \"cond_resched\" when the system\nis not compiled with CONFIG_PREEMPT. It also keeps track of the time\nspent to call cond_resched such that it does not go against the\ntime calculations. That is, if the task schedules away, the time scheduled\nout is removed from the test data. Note, this only works for non PREEMPT\nbecause we do not know when the task is scheduled out if we have PREEMPT\nenabled.\n\n[ Impact: prevent test from stopping the world for 10 seconds ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6634ff26cce2da04e5c2a5481bcb8888e7d01786",
      "tree": "64efca734e6cb10ff7cb19086e8f83b92eb40fd1",
      "parents": [
        "00c81a58c5b4e0de14ee33bfbc3d71c90f69f9ea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 15:30:07 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 15:30:07 2009 -0400"
      },
      "message": "ring-buffer: make moving the tail page a separate function\n\nIngo Molnar thought the code would be cleaner if we used a function call\ninstead of a goto for moving the tail page. After implementing this,\nit seems that gcc still inlines the result and the output is pretty much\nthe same. Since this is considered a cleaner approach, might as well\nimplement it.\n\n[ Impact: code clean up ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "00c81a58c5b4e0de14ee33bfbc3d71c90f69f9ea",
      "tree": "d34d323e0a3b67ee5ce4c0ae8a0b3dbbc9bf2562",
      "parents": [
        "8e7abf1c62941ebb7a1416cbc62392c8a0902625"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 12:40:51 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 12:49:20 2009 -0400"
      },
      "message": "ring-buffer: check for failed allocation in ring buffer benchmark\n\nThe result of the allocation of the ring buffer read page in the\nring buffer bench mark does not check the return to see if a page\nwas actually allocated. This patch fixes that.\n\n[ Impact: avoid NULL dereference ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8e7abf1c62941ebb7a1416cbc62392c8a0902625",
      "tree": "72b62a8ce2cecee2ed0cff586fb8bed10cf0eb2d",
      "parents": [
        "35cf723e99c0e26ddf51f037dffaa4ff2c2c9106"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 06 10:26:45 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 12:49:19 2009 -0400"
      },
      "message": "ring-buffer: remove unneeded conditional in rb_reserve_next\n\nThe code in __rb_reserve_next checks on page overflow if it is the\noriginal commiter and then resets the page back to the original\nsetting.  Although this is fine, and the code is correct, it is\na bit fragil. Some experimental work I did breaks it easily.\n\nThe better and more robust solution is to have all commiters that\noverflow the page, simply subtract what they added.\n\n[ Impact: more robust ring buffer account management ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "48dd0fed90e2b1f1ba87401439b85942181c6df3",
      "tree": "4be2982fd1697a9834d15b3ba3c70165ef0eee8a",
      "parents": [
        "22a7c31a9659deaddafbbcec6562d44141e84474"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Wed May 06 15:45:45 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 14:19:16 2009 +0200"
      },
      "message": "tracing: trace_output.c, fix false positive compiler warning\n\nThis compiler warning:\n\n  CC      kernel/trace/trace_output.o\n kernel/trace/trace_output.c: In function ‘register_ftrace_event’:\n kernel/trace/trace_output.c:544: warning: ‘list’ may be used uninitialized in this function\n\nIs wrong as \u0027list\u0027 is always initialized - but GCC (4.3.2) does not\nrecognize this relationship properly.\n\nWork around the warning by initializing the variable to NULL.\n\n[ Impact: fix false positive compiler warning ]\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22a7c31a9659deaddafbbcec6562d44141e84474",
      "tree": "0fe1c64e82d673597c78c6ce5f3569d9101b5281",
      "parents": [
        "a42aaa3bbce85ac487ad4fad5db99e8e91b7aac1"
      ],
      "author": {
        "name": "Alan D. Brunelle",
        "email": "Alan.Brunelle@hp.com",
        "time": "Mon May 04 16:35:08 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 14:13:01 2009 +0200"
      },
      "message": "blktrace: from-sector redundant in trace_block_remap\n\nRemove redundant from-sector parameter: it\u0027s /always/ the bio\u0027s sector\npassed in.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Alan D. Brunelle \u003calan.brunelle@hp.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c49FF517C.7000503@hp.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a42aaa3bbce85ac487ad4fad5db99e8e91b7aac1",
      "tree": "1f1b4ac4335774c154213e756d10247e5eac1ded",
      "parents": [
        "de1d7286060430e79a1d50ad6e5fee8fe863c5f6"
      ],
      "author": {
        "name": "Alan D. Brunelle",
        "email": "Alan.Brunelle@hp.com",
        "time": "Mon May 04 16:27:26 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 14:13:00 2009 +0200"
      },
      "message": "blktrace: correct remap names\n\nThis attempts to clarify names utilized during block I/O remap\noperations (partition, volume manager). It correctly matches up the\n/from/ information for both device \u0026 sector. This takes in the concept\nfrom Kosaki Motohiro and extends it to include better naming for the\n\"device_from\" field.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Alan D. Brunelle \u003calan.brunelle@hp.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c49FF4FAE.3000301@hp.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "20c8928abe70e204bd077ab6cfe23002d7788983",
      "tree": "e161656f99c814ebdd69df8b5a79dab58f80065e",
      "parents": [
        "2df75e415709ad12862028916c772c1f377f6a7c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 06 10:33:45 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 10:38:19 2009 +0200"
      },
      "message": "tracing/events: fix concurrent access to ftrace_events list\n\nA module will add/remove its trace events when it gets loaded/unloaded, so\nthe ftrace_events list is not \"const\", and concurrent access needs to be\nprotected.\n\nThis patch thus fixes races between loading/unloding modules and read\n\u0027available_events\u0027 or read/write \u0027set_event\u0027, etc.\n\nBelow shows how to reproduce the race:\n\n # for ((; ;)) { cat /mnt/tracing/available_events; } \u003e /dev/null \u0026\n # for ((; ;)) { insmod trace-events-sample.ko; rmmod sample; } \u0026\n\nAfter a while:\n\nBUG: unable to handle kernel paging request at 0010011c\nIP: [\u003cc1080f27\u003e] t_next+0x1b/0x2d\n...\nCall Trace:\n [\u003cc10c90e6\u003e] ? seq_read+0x217/0x30d\n [\u003cc10c8ecf\u003e] ? seq_read+0x0/0x30d\n [\u003cc10b4c19\u003e] ? vfs_read+0x8f/0x136\n [\u003cc10b4fc3\u003e] ? sys_read+0x40/0x65\n [\u003cc1002a68\u003e] ? sysenter_do_call+0x12/0x36\n\n[ Impact: fix races when concurrent accessing ftrace_events list ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4A00F709.3080800@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2df75e415709ad12862028916c772c1f377f6a7c",
      "tree": "3374a78cb06fe096e82d9e4d03ad03d048784967",
      "parents": [
        "96d17980fabeb757706d2d6db5a28580a6156bfc"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 06 10:33:04 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 06 10:38:19 2009 +0200"
      },
      "message": "tracing/events: fix memory leak when unloading module\n\nWhen unloading a module, memory allocated by init_preds() and\ntrace_define_field() is not freed.\n\n[ Impact: fix memory leak ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c4A00F6E0.3040503@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5092dbc96f3acdac5433b27c06860352dc6d23b9",
      "tree": "641b6b25439bf879769e20b4dc0f0bc9a6e6d702",
      "parents": [
        "aa20ae8444fc6c318272c643f856d8d8ad3e198d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 05 22:47:18 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 06 00:08:50 2009 -0400"
      },
      "message": "ring-buffer: add benchmark and tester\n\nThis patch adds code that can benchmark the ring buffer as well as\ntest it. This code can be compiled into the kernel (not recommended)\nor as a module.\n\nA separate ring buffer is used to not interfer with other users, like\nftrace. It creates a producer and a consumer (option to disable creation\nof the consumer) and will run for 10 seconds, then sleep for 10 seconds\nand then repeat.\n\nWhile running, the producer will write 10 byte loads into the ring\nbuffer with just putting in the current CPU number. The reader will\ncontinually try to read the buffer. The reader will alternate from reading\nthe buffer via event by event, or by full pages.\n\nThe output is a pr_info, thus it will fill up the syslogs.\n\n  Starting ring buffer hammer\n  End ring buffer hammer\n  Time:     9000349 (usecs)\n  Overruns: 12578640\n  Read:     5358440  (by events)\n  Entries:  0\n  Total:    17937080\n  Missed:   0\n  Hit:      17937080\n  Entries per millisec: 1993\n  501 ns per entry\n  Sleeping for 10 secs\n  Starting ring buffer hammer\n  End ring buffer hammer\n  Time:     9936350 (usecs)\n  Overruns: 0\n  Read:     28146644  (by pages)\n  Entries:  74\n  Total:    28146718\n  Missed:   0\n  Hit:      28146718\n  Entries per millisec: 2832\n  353 ns per entry\n  Sleeping for 10 secs\n\nTime:      is the time the test ran\nOverruns:  the number of events that were overwritten and not read\nRead:      the number of events read (either by pages or events)\nEntries:   the number of entries left in the buffer\n                 (the by pages will only read full pages)\nTotal:     Entries + Read + Overruns\nMissed:    the number of entries that failed to write\nHit:       the number of entries that were written\n\nThe above example shows that it takes ~353 nanosecs per entry when\nthere is a reader, reading by pages (and no overruns)\n\nThe event by event reader slowed the producer down to 501 nanosecs.\n\n[ Impact: see how changes to the ring buffer affect stability and performance ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa20ae8444fc6c318272c643f856d8d8ad3e198d",
      "tree": "662d8f33c284a43a41d5c9e9edfe13238bd3535e",
      "parents": [
        "94487d6d53af5acae10cf9fd52f74498994d46b1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 05 21:16:11 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 21:16:11 2009 -0400"
      },
      "message": "ring-buffer: move big if statement down\n\nIn the hot path of the ring buffer \"__rb_reserve_next\" there\u0027s a big\nif statement that does not even return back to the work flow.\n\n\tcode;\n\n\tif (cross to next page) {\n\n\t\t[ lots of code ]\n\n\t\treturn;\n\t}\n\n\tmore code;\n\nThe condition is even the unlikely path, although we do not denote it\nwith an unlikely because gcc is fine with it. The condition is true when\nthe write crosses a page boundary, and we need to start at a new page.\n\nHaving this if statement makes it hard to read, but calling another\nfunction to do the work is also not appropriate, because we are using a lot\nof variables that were set before the if statement, and we do not want to\nsend them as parameters.\n\nThis patch changes it to a goto:\n\n\tcode;\n\n\tif (cross to next page)\n\t\tgoto next_page;\n\n\tmore code;\n\n\treturn;\n\nnext_page:\n\n\t[ lots of code]\n\nThis makes the code easier to understand, and a bit more obvious.\n\nThe output from gcc is practically identical. For some reason, gcc decided\nto use different registers when I switched it to a goto. But other than that,\nthe logic is the same.\n\n[ Impact: easier to read code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "94487d6d53af5acae10cf9fd52f74498994d46b1",
      "tree": "4aac17393ab74d234d1f7da064758d6ebf047120",
      "parents": [
        "31b6e76e21b2ffd3cb2f6fe4149790a9fdadce2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 05 19:22:53 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 19:22:53 2009 -0400"
      },
      "message": "tracing: use proper export symbol for tracing api\n\nWhen adding the EXPORT_SYMBOL to some of the tracing API, I accidently\nused EXPORT_SYMBOL instead of EXPORT_SYMBOL_GPL. This patch fixes\nthat mistake.\n\n[ Impact: export the tracing code only for GPL modules ]\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "41ede23eded40832c955d98d4b71bc244809abb3",
      "tree": "044d968ac2d5784a80b46ba2ea04e639ac3e501b",
      "parents": [
        "afbab76a62b69ea6197e19727d4b8a8aef8deb25"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 01 20:26:54 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 17:22:02 2009 -0400"
      },
      "message": "ring-buffer: disable writers when resetting buffers\n\nAs a precaution, it is best to disable writing to the ring buffers\nwhen reseting them.\n\n[ Impact: prevent weird things if write happens during reset ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "afbab76a62b69ea6197e19727d4b8a8aef8deb25",
      "tree": "cfde06582fb3dbb7f8c00c7d1a8a57b0b0e9d0d1",
      "parents": [
        "778c55d44eb4f5f658915ed631d68ed9d1ac3ad1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 01 19:40:05 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 16:58:24 2009 -0400"
      },
      "message": "ring-buffer: have read page swap increment counter with page entries\n\nIn the swap page ring buffer code that is used by the ftrace splice code,\nwe scan the page to increment the counter of entries read.\n\nWith the number of entries already in the page we simply need to add it.\n\n[ Impact: speed up reading page from ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "778c55d44eb4f5f658915ed631d68ed9d1ac3ad1",
      "tree": "fb410e06820276a499a1ff116e02f0ab8a1f20ad",
      "parents": [
        "e4906eff9e6fbd2d311abcbcc53d5a531773c982"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri May 01 18:44:45 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 14:28:08 2009 -0400"
      },
      "message": "ring-buffer: record page entries in buffer page descriptor\n\nCurrently, when the ring buffer writer overflows the buffer and must\nwrite over non consumed data, we increment the overrun counter by\nreading the entries on the page we are about to overwrite. This reads\nthe entries one by one.\n\nThis is not very effecient. This patch adds another entry counter\ninto each buffer page descriptor that keeps track of the number of\nentries on the page. Now on overwrite, the overrun counter simply\nneeds to add the number of entries that is on the page it is about\nto overwrite.\n\n[ Impact: speed up of ring buffer in overwrite mode ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e4906eff9e6fbd2d311abcbcc53d5a531773c982",
      "tree": "05dd56b9336e7059cca3b651d542cc4b8bc2220b",
      "parents": [
        "c8d771835e18c938dae8690611d65fe98ad30f58"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 30 20:49:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 14:25:44 2009 -0400"
      },
      "message": "ring-buffer: convert cpu buffer entries to local_t\n\nThe entries counter in cpu buffer is not atomic. It can be updated by\nother interrupts or from another CPU (readers).\n\nBut making entries into \"atomic_t\" causes an atomic operation that can\nhurt performance. Instead we convert it to a local_t that will increment\na counter with a local CPU atomic operation (if the arch supports it).\n\nInstead of fighting with readers and overwrites that decrement the counter,\nI added a \"read\" counter. Every time a reader reads an entry it is\nincremented.\n\nWe already have a overrun counter and with that, the entries counter and\nthe read counter, we can calculate the total number of entries in the\nbuffer with:\n\n  (entries - overrun) - read\n\nAs long as the total number of entries in the ring buffer is less than\nthe word size, this will work. But since the entries counter was previously\na long, this is no different than what we had before.\n\nThanks to Andrew Morton for pointing out in the first version that\natomic_t does not replace unsigned long. I switched to atomic_long_t\neven though it is signed. A negative count is most likely a bug.\n\n[ Impact: keep accurate count of cpu buffer entries ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c8d771835e18c938dae8690611d65fe98ad30f58",
      "tree": "6c8ba52ab340e574c21418866bd985d55ab771e9",
      "parents": [
        "f0d2c681ac0a85142fc8abe65fc33fcad35cb9b7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 18:03:45 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 13:52:02 2009 -0400"
      },
      "message": "tracing: export stats of ring buffers to userspace\n\nThis patch adds stats to the ftrace ring buffers:\n\n # cat /debugfs/tracing/per_cpu/cpu0/stats\n entries: 42360\n overrun: 30509326\n commit overrun: 0\n nmi dropped: 0\n\nWhere entries are the total number of data entries in the buffer.\n\noverrun is the number of entries not consumed and were overwritten by\nthe writer.\n\ncommit overrun is the number of entries dropped due to nested writers\nwrapping the buffer before the initial writer finished the commit.\n\nnmi dropped is the number of entries dropped due to the ring buffer\nlock being held when an nmi was going to write to the ring buffer.\nNote, this field will be meaningless and will go away when the ring\nbuffer becomes lockless.\n\n[ Impact: let userspace know what is happening in the ring buffers ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f0d2c681ac0a85142fc8abe65fc33fcad35cb9b7",
      "tree": "eafd2b655fc7ad0695fc5dbc343bcc1eb17e2e32",
      "parents": [
        "d6ce96dabe2c4409fd009ec14250a1fdbab4b133"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 13:43:37 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 13:51:02 2009 -0400"
      },
      "message": "ring-buffer: add counters for commit overrun and nmi dropped entries\n\nThe WARN_ON in the ring buffer when a commit is preempted and the\nbuffer is filled by preceding writes can happen in normal operations.\nThe WARN_ON makes it look like a bug, not to mention, because\nit does not stop tracing and calls printk which can also recurse, this\nis prone to deadlock (the WARN_ON is not in a position to recurse).\n\nThis patch removes the WARN_ON and replaces it with a counter that\ncan be retrieved by a tracer. This counter is called commit_overrun.\n\nWhile at it, I added a nmi_dropped counter to count any time an NMI entry\nis dropped because the NMI could not take the spinlock.\n\n[ Impact: prevent deadlock by printing normal case warning ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d6ce96dabe2c4409fd009ec14250a1fdbab4b133",
      "tree": "08a49382ec96651ca9adf8b28eb1566482fe3f9e",
      "parents": [
        "9ee1983c9aa18f12388ef660d0c76a23dc112959"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 05 01:15:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 05 13:46:33 2009 -0400"
      },
      "message": "ring-buffer: export symbols\n\nI\u0027m adding a module to do a series of tests on the ring buffer as well\nas benchmarks. This module needs to have more of the ring buffer API\nexported. There\u0027s nothing wrong with reading the ring buffer from a\nmodule.\n\n[ Impact: allow modules to read pages from the ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8b3725621074040d380664964ffbc40610aef8c6",
      "tree": "3a78292a08cc9c87653be2e42d084a7d7f5989bf",
      "parents": [
        "a118e4d1402f1349fe3d953493e4168a300a752d"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:59 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:11 2009 +0200"
      },
      "message": "tracing/filters: a better event parser\n\nReplace the current event parser hack with a better one.  Filters are\nno longer specified predicate by predicate, but all at once and can\nuse parens and any of the following operators:\n\nnumeric fields:\n\n\u003d\u003d, !\u003d, \u003c, \u003c\u003d, \u003e, \u003e\u003d\n\nstring fields:\n\n\u003d\u003d, !\u003d\n\npredicates can be combined with the logical operators:\n\n\u0026\u0026, ||\n\nexamples:\n\n\"common_preempt_count \u003e 4\" \u003e filter\n\n\"((sig \u003e\u003d 10 \u0026\u0026 sig \u003c 15) || sig \u003d\u003d 17) \u0026\u0026 comm !\u003d bash\" \u003e filter\n\nIf there was an error, the erroneous string along with an error\nmessage can be seen by looking at the filter e.g.:\n\n((sig \u003e\u003d 10 \u0026\u0026 sig \u003c 15) || dsig \u003d\u003d 17) \u0026\u0026 comm !\u003d bash\n^\nparse_error: Field not found\n\nCurrently the caret for an error always appears at the beginning of\nthe filter; a real position should be used, but the error message\nshould be useful even without it.\n\nTo clear a filter, \u00270\u0027 can be written to the filter file.\n\nFilters can also be set or cleared for a complete subsystem by writing\nthe same filter as would be written to an individual event to the\nfilter file at the root of the subsytem.  Note however, that if any\nevent in the subsystem lacks a field specified in the filter being\nset, the set will fail and all filters in the subsytem are\nautomatically cleared.  This change from the previous version was made\nbecause using only the fields that happen to exist for a given event\nwould most likely result in a meaningless filter.\n\nBecause the logical operators are now implemented as predicates, the\nmaximum number of predicates in a filter was increased from 8 to 16.\n\n[ Impact: add new, extended trace-filter implementation ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905899.6416.121.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a118e4d1402f1349fe3d953493e4168a300a752d",
      "tree": "bd4c2fccee4528bf7d1536e33218516953904740",
      "parents": [
        "30e673b230f9d556eb81ef68a7b1a08c8b3b142c"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:53 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:06:03 2009 +0200"
      },
      "message": "tracing/filters: distinguish between signed and unsigned fields\n\nThe new filter comparison ops need to be able to distinguish between\nsigned and unsigned field types, so add an is_signed flag/param to the\nevent field struct/trace_define_fields().  Also define a simple macro,\nis_signed_type() to determine the signedness at compile time, used in the\ntrace macros.  If the is_signed_type() macro won\u0027t work with a specific\ntype, a new slightly modified version of TRACE_FIELD() called\nTRACE_FIELD_SIGN(), allows the signedness to be set explicitly.\n\n[ Impact: extend trace-filter code for new feature ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905893.6416.120.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30e673b230f9d556eb81ef68a7b1a08c8b3b142c",
      "tree": "219bb8cfce0b36f05e3c21ab10a29f8f56d47d7e",
      "parents": [
        "0f9a623dd6c9b5b4dd00c232f29525bfc7a8ecf2"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Tue Apr 28 03:04:47 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:05:54 2009 +0200"
      },
      "message": "tracing/filters: move preds into event_filter object\n\nCreate a new event_filter object, and move the pred-related members\nout of the call and subsystem objects and into the filter object - the\ndetails of the filter implementation don\u0027t need to be exposed in the\ncall and subsystem in any case, and it will also help make the new\nparser implementation a little cleaner.\n\n[ Impact: refactor trace-filter code to prepare for new features ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: fweisbec@gmail.com\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1240905887.6416.119.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7267fa6819467669f5cc2ba81a615dcc88158b4b",
      "tree": "281e3c2b9765c24364280f02fd9f9aa387c8aa6f",
      "parents": [
        "091069740304c979f957ceacec39c461d0192158"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 00:16:21 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 08:02:44 2009 +0200"
      },
      "message": "tracing: fix ref count in splice pages\n\nThe pages allocated for the splice binary buffer did not initialize\nthe ref count correctly. This caused pages not to be freed and causes\na drastic memory leak.\n\nThanks to logdev I was able to trace the tracer to find where the leak\nwas.\n\n[ Impact: stop memory leak when using splice ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d7d2b803159d4edeb051b0e5efbc1a8d9ef1c67",
      "tree": "751419481dc613a916bfe3efeeb14d7bdd2b9a5b",
      "parents": [
        "f2957f1f196b0217644a17c1379855a118a37d72"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 27 12:37:49 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Apr 29 00:42:01 2009 -0400"
      },
      "message": "ring-buffer: fix printk output\n\nThe warning output in trace_recursive_lock uses %d for a long when\nit should be %ld.\n\n[ Impact: fix compile warning ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f2957f1f196b0217644a17c1379855a118a37d72",
      "tree": "f033fac7d01e029f1b3fb5c39f37a80a5e861c4d",
      "parents": [
        "93459c6cb9816c52200993d29dd18cea1daee335"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 00:26:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Apr 29 00:26:30 2009 -0400"
      },
      "message": "tracing: have splice only copy full pages\n\nSplice works with pages, it is much more effecient to use an entire\npage than to copy bits over several pages.\n\nUsing logdev to trace the internals of the splice mechanism, I was\nable to see that splice can be very aggressive. When tracing is\noccurring, and the reader caught up to the writer, and the writer\nis on the reader page, the reader will copy what is there into the\nsplice page. Splice may iterate over several pages and if the\nwriter is still writing to the page, the reader will keep copying\nbits to new pages to pass to userspace.\n\nThis patch changes it to only pass data to userspace if the page\nis full (the writer has left the page). This has a small side effect\nthat splice can not read a partial page, and must wait for the\npage to fill. This should not be an issue. If tracing has stopped,\nthen a use of \"read\" will still read all of the page.\n\n[ Impact: better performance for ring buffer splice code ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "93459c6cb9816c52200993d29dd18cea1daee335",
      "tree": "9ee6a4e9fda5d77d0d05b7855cd2de59fb62d8a0",
      "parents": [
        "5beae6efd1004b44c3e257dc96087978e4c763c1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 00:23:13 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Apr 29 00:23:13 2009 -0400"
      },
      "message": "tracing: only add splice page if entries exist\n\nThe splice code allocates a page even when the ring buffer is empty.\nIt detects the ring buffer being empty when it it fails to copy\nanything from the ring buffer into the page.\n\nThis patch adds a check to see if there is anything in the ring buffer\nbefore allocating a page.\n\nThanks to logdev for letting me trace the tracer to find this.\n\n[ Impact: speed up due to removing unnecessary allocation ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5beae6efd1004b44c3e257dc96087978e4c763c1",
      "tree": "8d3e4bb6cc11387197cbd10518201b375cd84fce",
      "parents": [
        "cd891ae0305601bdb4d2e7e85282961c4ff256cd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 29 00:16:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Apr 29 00:16:21 2009 -0400"
      },
      "message": "tracing: fix ref count in splice pages\n\nThe pages allocated for the splice binary buffer did not initialize\nthe ref count correctly. This caused pages not to be freed and causes\na drastic memory leak.\n\nThanks to logdev I was able to trace the tracer to find where the leak\nwas.\n\n[ Impact: stop memory leak when using splice ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cd891ae0305601bdb4d2e7e85282961c4ff256cd",
      "tree": "b425f3c4eba7bd80eb0566d3b233503a9f76cc9d",
      "parents": [
        "701970b3a83cc639c1ec8fc6f40a7871cb99426f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 28 11:39:34 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 28 11:39:34 2009 -0400"
      },
      "message": "tracing: convert ftrace_dump spinlocks to raw\n\nftrace_dump is used for printing out the contents of the ftrace ring buffer\nto the console on failure. Currently it uses a spinlock to synchronize\nthe output from multiple failures on different CPUs. This spin lock\ncurrently is a normal spinlock and can cause issues with lockdep and\nlock tracing.\n\nThis patch converts it to raw since it is for error handling only.\nThe lock is local to the ftrace_dump and is not used by any other\ninfrastructure.\n\n[ Impact: prevent ftrace_dump from locking up by internal tracing ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "701970b3a83cc639c1ec8fc6f40a7871cb99426f",
      "tree": "c17cee9da25eaecee7a7e615eaa932becec663a4",
      "parents": [
        "060fa5c83e67901ba47ab484cfcdb32737d630ba"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 24 23:11:22 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 26 13:07:00 2009 +0200"
      },
      "message": "tracing/events: make modules have their own file_operations structure\n\nFor proper module reference counting, the file_operations that modules use\nmust have the \"owner\" field set to the module. Unfortunately, the trace events\nuse share file_operations. The same file_operations are used by all both\nkernel core and all modules.\n\nThis patch makes the modules allocate their own file_operations and\ncopies the functions from the core kernel. This allows those file\noperations to be owned by the module.\n\nCare is taken to free this code on module unload.\n\nThanks to Greg KH for reminding me that file_operations must be owned\nby the module to have reference counting take place.\n\n[ Impact: fix modular tracepoints / potential crash ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "060fa5c83e67901ba47ab484cfcdb32737d630ba",
      "tree": "c83ec27ae1064cfb290904f95cb85b3b0889b2a1",
      "parents": [
        "b8e65554d80b4c560d201362d0e8fa02109d89fd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 24 12:20:52 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 24 23:06:00 2009 -0400"
      },
      "message": "tracing/events: reuse trace event ids after overflow\n\nWith modules being able to add trace events, and the max trace event\ncounter is 16 bits (65536) we can overflow the counter easily\nwith a simple while loop adding and removing modules that contain\ntrace events.\n\nThis patch links together the registered trace events and on overflow\nsearches for available trace event ids. It will still fail if\nover 65536 events are registered, but considering that a typical\nkernel only has 22000 functions, 65000 events should be sufficient.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "416dfdcdb894432547ead4fcb9fa6a36b396059e",
      "tree": "8033fdda07397a59c5fa98c88927040906ce6c1a",
      "parents": [
        "56449f437add737a1e5e1cb7e00f63ac8ead1938",
        "091069740304c979f957ceacec39c461d0192158"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 24 10:11:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 24 10:11:23 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc3\u0027 into tracing/hw-branch-tracing\n\nConflicts:\n\tarch/x86/kernel/ptrace.c\n\nMerge reason: fix the conflict above, and also pick up the CONFIG_BROKEN\n              dependency change from upstream so that we can remove it\n\t      here.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "334d4169a6592d3fcd863bbe822a8f6985ffa9af",
      "tree": "3ac9c038304eaa69b06d9cac735fd62a8d6c47b3",
      "parents": [
        "c2518c4366f087ebc10b3919cb2461bbe4f42d0c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Apr 24 11:27:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 24 00:08:38 2009 -0400"
      },
      "message": "ring_buffer: compressed event header\n\nRB_MAX_SMALL_DATA \u003d 28bytes is too small for most tracers, it wastes\nan \u0027u32\u0027 to save the actually length for events which data size \u003e 28.\n\nThis fix uses compressed event header and enlarges RB_MAX_SMALL_DATA.\n\n[ Impact: saves about 0%-12.5%(depends on tracer) memory in ring_buffer ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49F13189.3090000@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "75db37d2f4c0ad9466ead57d467277d097b4105c",
      "tree": "a5b3f305471e9f544772353304608f8dca1c2226",
      "parents": [
        "89ec0dee9eba6275d47be0b878cf5f6d5c2fb6eb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 26 11:43:36 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 23 23:03:56 2009 -0400"
      },
      "message": "tracing: add size checks for exported ftrace internal structures\n\nThe events exported by TRACE_EVENT are automated and are guaranteed\nto be correct when used.\n\nThe internal ftrace structures on the other hand are more manually\nexported. These require the ftrace maintainer to make sure they\nare up to date.\n\nThis patch adds a size check to help flag when a type changes in\nan internal ftrace data structure, and the update needs to be reflected\nin the export.\n\nIf a export is incorrect, then the only harm is that the user space\ntools will not know how to correctly read the internal structures of\nftrace.\n\n[ Impact: help prevent inconsistent ftrace format print outs ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "89ec0dee9eba6275d47be0b878cf5f6d5c2fb6eb",
      "tree": "30db465c8194f2502af497d7276710279de97a7f",
      "parents": [
        "9be24414aad047dcf9d8d2a9a929321536c7ebec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 26 11:03:29 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 23 23:03:19 2009 -0400"
      },
      "message": "tracing: increase size of number of possible events\n\nWith the new event tracing registration, we must increase the number\nof events that can be registered. Currently the type field is only\none byte, which leaves us only 256 possible events.\n\nSince we do not save the CPU number in the tracer anymore (it is determined\nby the per cpu ring buffer that is used) we have an extra byte to use.\n\nThis patch increases the size of type from 1 byte (256 events) to\n2 bytes (65,536 events).\n\nIt also adds a WARN_ON_ONCE if we exceed that limit.\n\n[ Impact: allow more than 255 events ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9be24414aad047dcf9d8d2a9a929321536c7ebec",
      "tree": "c4299c263acf1859ff59a3cb03a26826e7d57660",
      "parents": [
        "6a74aa40907757ec98d8710ff66cd4cfe064e7d8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 26 10:25:24 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 23 23:01:36 2009 -0400"
      },
      "message": "tracing/wakeup: move access to wakeup_cpu into spinlock\n\nThe code had the following outside the lock:\n\n        if (next !\u003d wakeup_task)\n                return;\n\n        pc \u003d preempt_count();\n\n        /* The task we are waiting for is waking up */\n        data \u003d wakeup_trace-\u003edata[wakeup_cpu];\n\nOn initialization, wakeup_task is NULL and wakeup_cpu -1. This code\nis not under a lock. If wakeup_task is set on another CPU as that\ntask is waking up, we can see the wakeup_task before wakeup_cpu is\nset. If we read wakeup_cpu while it is still -1 then we will have\na bad data pointer.\n\nThis patch moves the reading of wakeup_cpu within the protection of\nthe spinlock used to protect the writing of wakeup_cpu and wakeup_task.\n\n[ Impact: remove possible race causing invalid pointer dereference ]\n\nReported-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "7a4f453b6d7379a7c380825949977c5a838aa012",
      "tree": "9f5450c7a1abc865b998885affe964d4670a08bc",
      "parents": [
        "3554228d4289098a8fe5cfd87512ec32a19bbe5a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 22 16:53:34 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 22 11:36:38 2009 +0200"
      },
      "message": "tracing/events: make struct trace_entry-\u003etype to be int type\n\nstruct trace_entry-\u003etype is unsigned char, while trace event\u0027s id is\nint type, thus for a event with id \u003e\u003d 256, it\u0027s entry-\u003etype is cast\nto (id % 256), and then we can\u0027t see the trace output of this event.\n\n # insmod trace-events-sample.ko\n # echo foo_bar \u003e /mnt/tracing/set_event\n # cat /debug/tracing/events/trace-events-sample/foo_bar/id\n 256\n # cat /mnt/tracing/trace_pipe\n           \u003c...\u003e-3548  [001]   215.091142: Unknown type 0\n           \u003c...\u003e-3548  [001]   216.089207: Unknown type 0\n           \u003c...\u003e-3548  [001]   217.087271: Unknown type 0\n           \u003c...\u003e-3548  [001]   218.085332: Unknown type 0\n\n[ Impact: fix output for trace events with id \u003e\u003d 256 ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c49EEDB0E.5070207@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3554228d4289098a8fe5cfd87512ec32a19bbe5a",
      "tree": "6153783ba611e8d55eb4f6dde08526ee733cfb4a",
      "parents": [
        "f66578a7637b87810cbb9041c4e3a77fd2fa4706"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 21 09:41:26 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 21 16:00:45 2009 +0200"
      },
      "message": "ring-buffer: only warn on wrap if buffer is bigger than two pages\n\nOn boot up, to save memory, ftrace allocates the minimum buffer\nwhich is two pages. Ftrace also goes through a series of tests\n(when configured) on boot up. These tests can fill up a page within\na single interrupt.\n\nThe ring buffer also has a WARN_ON when it detects that the buffer was\ncompletely filled within a single commit (other commits are allowed to\nbe nested).\n\nCombine the small buffer on start up, with the tests that can fill more\nthan a single page within an interrupt, this can trigger the WARN_ON.\n\nThis patch makes the WARN_ON only happen when the ring buffer consists\nof more than two pages.\n\n[ Impact: prevent false WARN_ON in ftrace startup tests ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20090421094616.GA14561@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f66578a7637b87810cbb9041c4e3a77fd2fa4706",
      "tree": "13b4ac67791369daa1b9559f427e128a70e6b9aa",
      "parents": [
        "e8082f3f5a17d7a7bfc7dd1050a3f958dc034e9a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 21 17:12:11 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 21 11:58:28 2009 +0200"
      },
      "message": "tracing/filters: allow user-input to be integer-like string\n\nSuppose we would like to trace all tasks named \u0027123\u0027, but this\nwill fail:\n\n # echo \u0027parent_comm \u003d\u003d 123\u0027 \u003e events/sched/sched_process_fork/filter\n bash: echo: write error: Invalid argument\n\nDon\u0027t guess the type of the filter pred in filter_parse(), but instead\nwe check it in __filter_add_pred().\n\n[ Impact: extend allowed filter field string values ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c49ED8DEB.6000700@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8082f3f5a17d7a7bfc7dd1050a3f958dc034e9a",
      "tree": "8c809037eb92171b1d8f9f2627111751d562267f",
      "parents": [
        "cb4764a6dbffd9bb3cf759421ae82384071a933d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 21 17:11:46 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 21 11:58:27 2009 +0200"
      },
      "message": "tracing/filters: don\u0027t remove old filters when failed to write subsys-\u003efilter\n\nIf writing subsys-\u003efilter returns EINVAL or ENOSPC, the original\nfilters in subsys/ and subsys/events/ will be removed. This is\ndefinitely wrong.\n\n[ Impact: fix filter setting semantics on error condition ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c49ED8DD2.2070700@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb4764a6dbffd9bb3cf759421ae82384071a933d",
      "tree": "36f28716865fdac826848f23160d7a25e332f8f5",
      "parents": [
        "aa18efb2a2f07e1cf062039848e9d369bb358724"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 18:16:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 18:16:44 2009 -0400"
      },
      "message": "tracing: use nowakeup version of commit for function event trace tests\n\nThe startup tests for the event tracer also runs with the function\ntracer enabled. The \"wakeup\" version of the trace commit was used\nwhich can grab spinlocks. If a task was preempted by an NMI\nthat called a function being traced, it could deadlock due to the\nfunction tracer trying to grab the same lock.\n\nThanks to Frederic Weisbecker for pointing out where the bug was.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa18efb2a2f07e1cf062039848e9d369bb358724",
      "tree": "e68169b1116a313a8db02e913443a2c2899f3bf2",
      "parents": [
        "e395898e98119085f666febbc7b631dd69bc637f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 16:16:11 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 16:16:11 2009 -0400"
      },
      "message": "tracing: use recursive counter over irq level\n\nAlthought using the irq level (hardirq_count, softirq_count and in_nmi)\nwas nice to detect bad recursion right away, but since the counters are\nnot atomically updated with respect to the interrupts, the function tracer\nmight trigger the test from an interrupt handler before the hardirq_count\nis updated. This will trigger a false warning.\n\nThis patch converts the recursive detection to a simple counter.\nIf the depth is greater than 16 then the recursive detection will trigger.\n16 is more than enough for any nested interrupts.\n\n[ Impact: fix false positive trace recursion detection ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e395898e98119085f666febbc7b631dd69bc637f",
      "tree": "aa10e8a7c79c30c74db67bae6a9aa65201839065",
      "parents": [
        "17487bfeb6cfb05920e6a9d5a54f345f2917b4e7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 13:32:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 13:32:44 2009 -0400"
      },
      "message": "tracing: remove recursive test from ring_buffer_event_discard\n\nThe ring_buffer_event_discard is not tied to ring_buffer_lock_reserve.\nIt can be called inside or outside the reserve/commit. Even if it\nis called inside the reserve/commit the commit part must also be called.\n\nOnly ring_buffer_discard_commit can be used as a replacement for\nring_buffer_unlock_commit.\n\nThis patch removes the trace_recursive_unlock from ring_buffer_event_discard\nsince it would be the wrong place to do so.\n\n[Impact: prevent breakage in trace recursive testing ]\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "17487bfeb6cfb05920e6a9d5a54f345f2917b4e7",
      "tree": "23064df0a7814788823484098450cb2924ff9a34",
      "parents": [
        "23de29de2d8b227943be191d59fb6d983996d55e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 13:24:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 13:24:21 2009 -0400"
      },
      "message": "tracing: fix recursive test level calculation\n\nThe recursive tests to detect same level recursion in the ring buffers\ndid not account for the hard/softirq_counts to be shifted. Thus the\nnumbers could be larger than then mask to be tested.\n\nThis patch includes the shift for the calculation of the irq depth.\n\n[ Impact: stop false positives in trace recursion detection ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "28d20e2d6e94434827e11c310788b87204b84559",
      "tree": "241f40d1c883680603396fcc5e810aeeaa238574",
      "parents": [
        "a7abe97fd8e7a6ccabba5a04a9f17be9211d418c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 12:12:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 12:12:44 2009 -0400"
      },
      "message": "tracing/events: call the correct event trace selftest init function\n\nThe late_initcall calls a helper function instead of the proper\ninit event selftest function.\n\nThis update may have been lost due to conflicting merges.\n\n[ Impact: fix compiler warning and call extended event trace self tests ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a7abe97fd8e7a6ccabba5a04a9f17be9211d418c",
      "tree": "5bd11a18c08cd3f53a7e48ba72443b52f84b9369",
      "parents": [
        "4ed9f0716e46bb9646f26e73f4a1b5b24db7947a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 10:59:34 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 20 17:55:35 2009 +0200"
      },
      "message": "tracing: rename EVENT_TRACER config to ENABLE_EVENT_TRACING\n\nCurrently we have two configs: EVENT_TRACING and EVENT_TRACER.\nAll tracers enable EVENT_TRACING. The EVENT_TRACER is only a\nconvenience to enable the EVENT_TRACING when no other tracers\nare enabled.\n\nThe names EVENT_TRACER and EVENT_TRACING are too similar and confusing.\nThis patch renames EVENT_TRACER to ENABLE_EVENT_TRACING to be more\nappropriate to what it actually does, as well as add a comment in\nthe help menu to explain the option\u0027s purpose.\n\n[ Impact: rename config option to reduce confusion ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4ed9f0716e46bb9646f26e73f4a1b5b24db7947a",
      "tree": "c900491f9a7a67d063745d10f24e4e4010ffd901",
      "parents": [
        "9ae5b8790037d05d32746f521af146c32089bfec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 10:47:36 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 11:07:49 2009 -0400"
      },
      "message": "tracing: create menuconfig for tracing infrastructure\n\nDuring testing we often use randconfig to test various kernels.\nThe current configuration set up does not give an easy way to disable\nall tracing with a single config. The case where randconfig would\ntest all tracing disabled is very unlikely.\n\nThis patch adds a config option to enable or disable all tracing.\nIt is hooked into the tracing menu just like other submenus are done.\n\n[ Impact: allow randconfig to easily produce all traces disabled ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9ae5b8790037d05d32746f521af146c32089bfec",
      "tree": "29b0ef5bc534490fa8a25a906d41b8d44ebcfe48",
      "parents": [
        "f3b9aae16219aaeca2dd5a9ca69f7a10faa063df"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 20 10:27:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 20 11:07:48 2009 -0400"
      },
      "message": "tracing: change branch profiling to a choice selection\n\nThis patch makes the branch profiling into a choice selection:\n\n  None               - no branch profiling\n  likely/unlikely    - only profile likely/unlikely branches\n  all                - profile all branches\n\nThe all profiler will also enable the likely/unlikely branches.\n\nThis does not change the way the profiler works or the dependencies\nbetween the profilers.\n\nWhat this patch does, is keep the branch profiling from being selected\nby an allyesconfig make. The branch profiler is very intrusive and\nit is known to break various architecture builds when selected as an\nallyesconfig.\n\n[ Impact: prevent branch profiler from being selected in allyesconfig ]\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f3b9aae16219aaeca2dd5a9ca69f7a10faa063df",
      "tree": "67086cbe4b26fc29035f7b800f56d16a653373f7",
      "parents": [
        "e057a5e5647a1c9d0d0054fbd298bfa04b3d1cb4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 19 23:39:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 20 10:59:20 2009 +0200"
      },
      "message": "tracing/ring-buffer: Add unlock recursion protection on discard\n\nThe pair of helpers trace_recursive_lock() and trace_recursive_unlock()\nhave been introduced recently to provide generic tracing recursion\nprotection.\n\nThey are used in a symetric way:\n\n - trace_recursive_lock() on buffer reserve\n - trace_recursive_unlock() on buffer commit\n\nHowever sometimes, we don\u0027t commit but discard on entry\nto the buffer, ie: in case of filter checking.\n\nThen we must also unlock the recursion protection on discard time,\notherwise the tracing gets definitely deactivated and a warning\nis raised spuriously, such as:\n\n111.119821] ------------[ cut here ]------------\n[  111.119829] WARNING: at kernel/trace/ring_buffer.c:1498 ring_buffer_lock_reserve+0x1b7/0x1d0()\n[  111.119835] Hardware name: AMILO Li 2727\n[  111.119839] Modules linked in:\n[  111.119846] Pid: 5731, comm: Xorg Tainted: G        W  2.6.30-rc1 #69\n[  111.119851] Call Trace:\n[  111.119863]  [\u003cffffffff8025ce68\u003e] warn_slowpath+0xd8/0x130\n[  111.119873]  [\u003cffffffff8028a30f\u003e] ? __lock_acquire+0x19f/0x1ae0\n[  111.119882]  [\u003cffffffff8028a30f\u003e] ? __lock_acquire+0x19f/0x1ae0\n[  111.119891]  [\u003cffffffff802199b0\u003e] ? native_sched_clock+0x20/0x70\n[  111.119899]  [\u003cffffffff80286dee\u003e] ? put_lock_stats+0xe/0x30\n[  111.119906]  [\u003cffffffff80286eb8\u003e] ? lock_release_holdtime+0xa8/0x150\n[  111.119913]  [\u003cffffffff802c8ae7\u003e] ring_buffer_lock_reserve+0x1b7/0x1d0\n[  111.119921]  [\u003cffffffff802cd110\u003e] trace_buffer_lock_reserve+0x30/0x70\n[  111.119930]  [\u003cffffffff802ce000\u003e] trace_current_buffer_lock_reserve+0x20/0x30\n[  111.119939]  [\u003cffffffff802474e8\u003e] ftrace_raw_event_sched_switch+0x58/0x100\n[  111.119948]  [\u003cffffffff808103b7\u003e] __schedule+0x3a7/0x4cd\n[  111.119957]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.119964]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.119971]  [\u003cffffffff80810c08\u003e] schedule+0x18/0x40\n[  111.119977]  [\u003cffffffff80810e09\u003e] preempt_schedule+0x39/0x60\n[  111.119985]  [\u003cffffffff80813bd3\u003e] _read_unlock+0x53/0x60\n[  111.119993]  [\u003cffffffff807259d2\u003e] sock_def_readable+0x72/0x80\n[  111.120002]  [\u003cffffffff807ad5ed\u003e] unix_stream_sendmsg+0x24d/0x3d0\n[  111.120011]  [\u003cffffffff807219a3\u003e] sock_aio_write+0x143/0x160\n[  111.120019]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120026]  [\u003cffffffff80721860\u003e] ? sock_aio_write+0x0/0x160\n[  111.120033]  [\u003cffffffff80721860\u003e] ? sock_aio_write+0x0/0x160\n[  111.120042]  [\u003cffffffff8031c283\u003e] do_sync_readv_writev+0xf3/0x140\n[  111.120049]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120057]  [\u003cffffffff80276ff0\u003e] ? autoremove_wake_function+0x0/0x40\n[  111.120067]  [\u003cffffffff8045d489\u003e] ? cap_file_permission+0x9/0x10\n[  111.120074]  [\u003cffffffff8045c1e6\u003e] ? security_file_permission+0x16/0x20\n[  111.120082]  [\u003cffffffff8031cab4\u003e] do_readv_writev+0xd4/0x1f0\n[  111.120089]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120097]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120105]  [\u003cffffffff8031cc18\u003e] vfs_writev+0x48/0x70\n[  111.120111]  [\u003cffffffff8031cd65\u003e] sys_writev+0x55/0xc0\n[  111.120119]  [\u003cffffffff80211e32\u003e] system_call_fastpath+0x16/0x1b\n[  111.120125] ---[ end trace 15605f4e98d5ccb5 ]---\n\n[ Impact: fix spurious warning triggering tracing shutdown ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e057a5e5647a1c9d0d0054fbd298bfa04b3d1cb4",
      "tree": "4495ffacfb31ff535c9e6fde5ea03f62dd3c3b53",
      "parents": [
        "8e668b5b3455207e4540fc7ccab9ecf70142f288"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 19 23:38:12 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 19 23:38:12 2009 +0200"
      },
      "message": "tracing/core: Add current context on tracing recursion warning\n\nIn case of tracing recursion detection, we only get the stacktrace.\nBut the current context may be very useful to debug the issue.\n\nThis patch adds the softirq/hardirq/nmi context with the warning\nusing lockdep context display to have a familiar output.\n\nv2: Use printk_once()\nv3: drop {hardirq,softirq}_context which depend on lockdep,\n    only keep what is part of current-\u003etrace_recursion,\n    sufficient to debug the warning source.\n\n[ Impact: print context necessary to debug recursion ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "3189cdb31622f4e40688ce5a6fc5d940b42bc805",
      "tree": "89f370c0079281c55f37230c17951514c1b508c9",
      "parents": [
        "261842b7c9099f56de2eb969c8ad65402d68e00e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 17 16:13:55 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 17 16:21:35 2009 -0400"
      },
      "message": "tracing: protect trace_printk from recursion\n\ntrace_printk can be called from any context, including NMIs.\nIf this happens, then we must test for for recursion before\ngrabbing any spinlocks.\n\nThis patch prevents trace_printk from being called recursively.\n\n[ Impact: prevent hard lockup in lockdep event tracer ]\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "261842b7c9099f56de2eb969c8ad65402d68e00e",
      "tree": "6cdf0b4b5ad188294da67520dc9579a0c67940ac",
      "parents": [
        "12acd473d45cf2e40de3782cb2de712e5cd4d715"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 16 21:41:52 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 17 16:21:32 2009 -0400"
      },
      "message": "tracing: add same level recursion detection\n\nThe tracing infrastructure allows for recursion. That is, an interrupt\nmay interrupt the act of tracing an event, and that interrupt may very well\nperform its own trace. This is a recursive trace, and is fine to do.\n\nThe problem arises when there is a bug, and the utility doing the trace\ncalls something that recurses back into the tracer. This recursion is not\ncaused by an external event like an interrupt, but by code that is not\nexpected to recurse. The result could be a lockup.\n\nThis patch adds a bitmask to the task structure that keeps track\nof the trace recursion. To find the interrupt depth, the following\nalgorithm is used:\n\n  level \u003d hardirq_count() + softirq_count() + in_nmi;\n\nHere, level will be the depth of interrutps and softirqs, and even handles\nthe nmi. Then the corresponding bit is set in the recursion bitmask.\nIf the bit was already set, we know we had a recursion at the same level\nand we warn about it and fail the writing to the buffer.\n\nAfter the data has been committed to the buffer, we clear the bit.\nNo atomics are needed. The only races are with interrupts and they reset\nthe bitmask before returning anywy.\n\n[ Impact: detect same irq level trace recursion ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "12acd473d45cf2e40de3782cb2de712e5cd4d715",
      "tree": "96606659bd0d981ca1c97c4753388e0b594a5eb1",
      "parents": [
        "b0afdc126d0515e76890f0a5f26b28501cfa298e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 17 16:01:56 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 17 16:21:28 2009 -0400"
      },
      "message": "tracing: add EXPORT_SYMBOL_GPL for trace commits\n\nNot all the necessary symbols were exported to allow for tracing\nby modules. This patch adds them in.\n\n[ Impact: allow modules to commit data to the ring buffer ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ac1adc55fc71c7515caa2eb0e63e49b3d1c6a47c",
      "tree": "7a97cf9512572c53d0802725f8e0ad6a2d4b2204",
      "parents": [
        "46de405f25f1d9fa73b657ffbb752aa0cc87a91d"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Fri Apr 17 00:27:08 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 18:28:27 2009 +0200"
      },
      "message": "tracing/filters: add filter_mutex to protect filter predicates\n\nThis patch adds a filter_mutex to prevent the filter predicates from\nbeing accessed concurrently by various external functions.\n\nIt\u0027s based on a previous patch by Li Zefan:\n        \"[PATCH 7/7] tracing/filters: make filter preds RCU safe\"\n\nv2 changes:\n\n- fixed wrong value returned in a add_subsystem_pred() failure case\n  noticed by Li Zefan.\n\n[ Impact: fix trace filter corruption/crashes on parallel access ]\n\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1239946028.6639.13.camel@tropicana\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "339ae5d3c3fc2025e3657637921495fd600027c7",
      "tree": "7749cf0d5c2d4a0cfd9029038d55b94478b9b56c",
      "parents": [
        "76aa81118ddfbb3dc31533030cf3ec329dd067a6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Apr 17 10:34:30 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 18:04:36 2009 +0200"
      },
      "message": "tracing: fix file mode of trace and README\n\ntrace is read-write and README is read-only.\n\n[ Impact: fix /debug/tracing/ file permissions. ]\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49E7EAB6.4070605@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ea21c1ecdb35ecdcac5fd9d95f62a1f6a7ffec0",
      "tree": "c38a7f2f30d145e7d53b24159b99bc4734d291b5",
      "parents": [
        "69abe6a5d18a9394baa325bab8f57748b037c517"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 16 12:15:44 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 17:10:35 2009 +0200"
      },
      "message": "tracing/events: perform function tracing in event selftests\n\nWe can find some bugs in the trace events if we stress the writes as well.\nThe function tracer is a good way to stress the events.\n\n[ Impact: extend scope of event tracer self-tests ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20090416161746.604786131@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69abe6a5d18a9394baa325bab8f57748b037c517",
      "tree": "4432c60f73d14af510ab13b9b474e174fd2454c5",
      "parents": [
        "d1b182a8d49ed6416325b4e0a1cb0f17cd4e702a"
      ],
      "author": {
        "name": "Avadh Patel",
        "email": "avadh4all@gmail.com",
        "time": "Fri Apr 10 16:04:48 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 17:04:12 2009 +0200"
      },
      "message": "tracing: add saved_cmdlines file to show cached task comms\n\nExport the cached task comms to userspace. This allows user apps to translate\nthe pids from a trace into their respective task command lines.\n\n[ Impact: let userspace apps reading binary buffer know comm\u0027s of pids ]\n\nSigned-off-by: Avadh Patel \u003cavadh4all@gmail.com\u003e\n[ added error checking and use of buf pointer to index file_buf ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d1b182a8d49ed6416325b4e0a1cb0f17cd4e702a",
      "tree": "f482bfba39828503f32ed994829d2d3cd6b81bfe",
      "parents": [
        "e6187007d6c365b551c69ea3df46f06fd1c8bd19"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 16:53:47 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 17:03:28 2009 +0200"
      },
      "message": "tracing/events/ring-buffer: expose format of ring buffer headers to users\n\nCurrently, every thing needed to read the binary output from the\nring buffers is available, with the exception of the way the ring\nbuffers handles itself internally.\n\nThis patch creates two special files in the debugfs/tracing/events\ndirectory:\n\n # cat /debug/tracing/events/header_page\n        field: u64 timestamp;   offset:0;       size:8;\n        field: local_t commit;  offset:8;       size:8;\n        field: char data;       offset:16;      size:4080;\n\n # cat /debug/tracing/events/header_event\n        type        :    2 bits\n        len         :    3 bits\n        time_delta  :   27 bits\n        array       :   32 bits\n\n        padding     : type \u003d\u003d 0\n        time_extend : type \u003d\u003d 1\n        data        : type \u003d\u003d 3\n\nThis is to allow a userspace app to see if the ring buffer format changes\nor not.\n\n[ Impact: allow userspace apps to know of ringbuffer format changes ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e6187007d6c365b551c69ea3df46f06fd1c8bd19",
      "tree": "6607598ccbe4f10470114f3667649c603d19cc0c",
      "parents": [
        "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:36:40 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 17:01:37 2009 +0200"
      },
      "message": "tracing/events: add startup tests for events\n\nAs events start to become popular, and the new way to add tracing\ninfrastructure into ftrace, it is important to catch any problems\nthat might happen with a mistake in the TRACE_EVENT macro.\n\nThis patch introduces a startup self test on the registered trace\nevents. Note, it can only do a generic test, any type of testing that\nneeds more involement is needed to be implemented by the tracepoint\ncreators.\n\nThe test goes down one by one enabling a trace point and running\nsome random tasks (random in the sense that I just made them up).\nThose tasks are creating threads, grabbing mutexes and spinlocks\nand using workqueues.\n\nAfter testing each event individually, it does the same test after\nenabling each system of trace points. Like sched, irq, lockdep.\n\nThen finally it enables all tracepoints and performs the tasks again.\nThe output to the console on bootup will look like this when everything\nworks:\n\nRunning tests on trace events:\nTesting event kfree_skb: OK\nTesting event kmalloc: OK\nTesting event kmem_cache_alloc: OK\nTesting event kmalloc_node: OK\nTesting event kmem_cache_alloc_node: OK\nTesting event kfree: OK\nTesting event kmem_cache_free: OK\nTesting event irq_handler_exit: OK\nTesting event irq_handler_entry: OK\nTesting event softirq_entry: OK\nTesting event softirq_exit: OK\nTesting event lock_acquire: OK\nTesting event lock_release: OK\nTesting event sched_kthread_stop: OK\nTesting event sched_kthread_stop_ret: OK\nTesting event sched_wait_task: OK\nTesting event sched_wakeup: OK\nTesting event sched_wakeup_new: OK\nTesting event sched_switch: OK\nTesting event sched_migrate_task: OK\nTesting event sched_process_free: OK\nTesting event sched_process_exit: OK\nTesting event sched_process_wait: OK\nTesting event sched_process_fork: OK\nTesting event sched_signal_send: OK\nRunning tests on trace event systems:\nTesting event system skb: OK\nTesting event system kmem: OK\nTesting event system irq: OK\nTesting event system lockdep: OK\nTesting event system sched: OK\nRunning tests on all trace events:\nTesting all events: OK\n\n[ folded in:\n\n  tracing: add #include \u003clinux/delay.h\u003e to fix build failure in test_work()\n\n  This build failure occured on a few rare configs:\n\n   kernel/trace/trace_events.c: In function ‘test_work’:\n   kernel/trace/trace_events.c:975: error: implicit declaration of function ‘udelay’\n   kernel/trace/trace_events.c:980: error: implicit declaration of function ‘msleep’\n\n  delay.h is included in way too many other headers, hiding cases\n  where new usage is added without header inclusion.\n\n  [ Impact: build fix ]\n\n  Signed-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n]\n\n[ Impact: add event tracer self-tests ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2",
      "tree": "8bbc46895be623a78316230362e94969dbb02135",
      "parents": [
        "f3948f8857ef5de239f28a61dddb1554a0ae4c2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:24:06 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 16:59:15 2009 +0200"
      },
      "message": "ftrace: use module notifier for function tracer\n\nThe hooks in the module code for the function tracer must be called\nbefore any of that module code runs. The function tracer hooks\nmodify the module (replacing calls to mcount to nops). If the code\nis executed while the change occurs, then the CPU can take a GPF.\n\nTo handle the above with a bit of paranoia, I originally implemented\nthe hooks as calls directly from the module code.\n\nAfter examining the notifier calls, it looks as though the start up\nnotify is called before any of the module\u0027s code is executed. This makes\nthe use of the notify safe with ftrace.\n\nOnly the startup notify is required to be \"safe\". The shutdown simply\nremoves the entries from the ftrace function list, and does not modify\nany code.\n\nThis change has another benefit. It removes a issue with a reverse dependency\nin the mutexes of ftrace_lock and module_mutex.\n\n[ Impact: fix lock dependency bug, cleanup ]\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f3948f8857ef5de239f28a61dddb1554a0ae4c2c",
      "tree": "62e5568c18b944d086366510fb0ff8ed71682897",
      "parents": [
        "1d54ad6da9192fed5dd3b60224d9f2dfea0dcd82"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 15 11:02:56 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 16 10:11:01 2009 +0200"
      },
      "message": "blktrace: fix context-info when mixed-using blk tracer and trace events\n\nWhen current tracer is set to blk tracer, TRACE_ITER_CONTEXT_INFO is\nunset, but actually context-info is printed:\n\n    pdflush-431   [000]   821.181576:   8,0    P   N [pdflush]\n\nAnd then if we enable TRACE_ITER_CONTEXT_INFO:\n\n    # echo context-info \u003e trace_options\n\nWe\u0027ll see context-info printed twice. What\u0027s worse, when we use blk\ntracer and trace events at the same time, we\u0027ll see no context-info\nfor trace events at all:\n\n    jbd2_commit_logging: dev dm-0:8 transaction 333227\n    jbd2_end_commit: dev dm-0:8 transaction 333227 head 332814\n      rm-25433 [001]  9578.307485:   8,18   m   N cfq25433 slice expired t\u003d0\n      rm-25433 [001]  9578.307486:   8,18   m   N cfq25433 put_queue\n\nThis patch adds blk_tracer-\u003eset_flags(), and context-info flag is unset\nonly when we set the output to classic mode.\n\nNote after this patch, one should unset context-info explicitly if he\nwants to get binary output that can be parsed by blkparse:\n\n    # echo nocontext-info \u003e trace_options\n    # echo bin \u003e trace_options\n    # echo blk \u003e current_tracer\n    # cat trace_pipe | blkparse -i -\n\nReported-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49E54E60.50408@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "1d54ad6da9192fed5dd3b60224d9f2dfea0dcd82"
}
