)]}'
{
  "log": [
    {
      "commit": "0ea1c4156bf9e2eb370cc5c6fa6eb112bd844dec",
      "tree": "f07c37d42ca285f7cc88307c6b3586bc11e80090",
      "parents": [
        "5be71b61f17b0e3bc8ad0b1a1b7b53ab7d574ebb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Mar 15 22:10:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:13:17 2009 +0100"
      },
      "message": "tracing/syscalls: select kallsysms\n\nSyscall tracing must select kallsysms.\n\nThe arch code builds a table to find the syscall metadata by syscall\nnumber. It needs the syscalls names resolution from the symbol table\nto know which name found on the syscalls metadatas match a function\npointer from the arch sys_call_table.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237151439-6755-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5be71b61f17b0e3bc8ad0b1a1b7b53ab7d574ebb",
      "tree": "7ab4c915871b464a08de974570900381b169e034",
      "parents": [
        "6404434525bb9f8f2239998f30fd7c93f2efa5b3"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Mar 15 22:10:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:13:16 2009 +0100"
      },
      "message": "tracing/syscalls: protect thread flag toggling from races\n\nImpact: fix syscall tracer enable/disable race\n\nThe current thread flag toggling is racy as shown in the following\nscenario:\n\n- task A is the last user of syscall tracing, it releases the\n  TIF_SYSCALL_FTRACE on each tasks\n\n- at the same time task B start syscall tracing. refcount \u003d\u003d 0 so\n  it sets up TIF_SYSCALL_FTRACE on each tasks.\n\nThe effect of the mixup is unpredictable.\nSo this fix adds a mutex on {start,stop}_syscall_tracing().\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c1237151439-6755-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6404434525bb9f8f2239998f30fd7c93f2efa5b3",
      "tree": "9c761f4d724f73a4ca9792accb576289432e4fbb",
      "parents": [
        "ac99c58c9e56967037382e31f865b72b10127965"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Mar 15 22:10:36 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:13:16 2009 +0100"
      },
      "message": "tracing/syscalls: various cleanups\n\nImpact: cleanup\n\n- Drop unused cpu variable\n- Fix some errors on comments\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237151439-6755-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac99c58c9e56967037382e31f865b72b10127965",
      "tree": "703c5f043cb8067cca699b6c3b6a481430912dd5",
      "parents": [
        "7243f2145a9b06e5cf9a49fc9b8b9a4fff6fb42e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Mar 15 22:10:35 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:13:15 2009 +0100"
      },
      "message": "tracing/syscalls: fix missing release of tracing\n\nImpact: fix \u0027stuck\u0027 syscall tracer\n\nThe syscall tracer uses a refcounter to enable several users\nsimultaneously.\n\nBut the refcounter did not behave correctly and always restored\nits value to 0 after calling start_syscall_tracing(). Therefore,\nstop_syscall_tracing() couldn\u0027t release correctly the tasks from\ntracing.\n\nAlso the tracer forgot to reset the buffer when it is released.\n\nDrop the pointless refcount decrement on start_syscall_tracing()\nand reset the buffer when we release the tracer.\n\nThis fixes two reported issue:\n\n- when we switch from syscall tracer to another tracer, syscall\n  tracing continued.\n\n- incorrect use of the refcount.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1237151439-6755-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7243f2145a9b06e5cf9a49fc9b8b9a4fff6fb42e",
      "tree": "50b73e168e0e8b711d5e1ca8878389464d6c905c",
      "parents": [
        "b478b782e110fdb4135caa3062b6d687e989d994",
        "62395efdb0ef42e664ca81677901268c403a6286",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/syscalls\u0027 and \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "bed1ffca022cc876fb83161d26670e9b5d3cf36b",
      "tree": "a896c79e9ea1af11f992826f1de7e2ece52fbe33",
      "parents": [
        "f58ba100678f421bdcb000a3c71793f432dfab93"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 13 15:42:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 16:57:42 2009 +0100"
      },
      "message": "tracing/syscalls: core infrastructure for syscalls tracing, enhancements\n\nImpact: new feature\n\nThis adds the generic support for syscalls tracing. This is\ncurrently exploited through a devoted tracer but other tracing\nengines can use it. (They just have to play with\n{start,stop}_ftrace_syscalls() and use the display callbacks\nunless they want to override them.)\n\nThe syscalls prototypes definitions are abused here to steal\nsome metadata informations:\n\n- syscall name, param types, param names, number of params\n\nThe syscall addr is not directly saved during this definition\nbecause we don\u0027t know if its prototype is available in the\nnamespace. But we don\u0027t really need it. The arch has just to\nbuild a function able to resolve the syscall number to its\nmetadata struct.\n\nThe current tracer prints the syscall names, parameters names\nand values (and their types optionally). Currently the value is\na raw hex but higher level values diplaying is on my TODO list.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236955332-10133-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e94142a67f8bad494c593f0a07c9fc2fbec98c0e",
      "tree": "75419622606aa186da5592302c91cb93471bec26",
      "parents": [
        "850a80cfaa5aec3e626eb3736eff890a80e4fa77"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 13 17:51:27 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:36:20 2009 +0100"
      },
      "message": "ftrace: remove struct list_head from struct dyn_ftrace\n\nImpact: save memory\n\nThe struct dyn_ftrace table is very large, this patch will save\nabout 50%.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c49BA2C9F.8020009@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "850a80cfaa5aec3e626eb3736eff890a80e4fa77",
      "tree": "777195c11a34eee8a63a5d2ccc3cf0ccd2855491",
      "parents": [
        "fa9d13cf135efbd454453a53b6299976bea245a9"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 13 17:47:23 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:35:31 2009 +0100"
      },
      "message": "ftrace: use seq_read\n\nImpact: cleanup\n\nVFS layer has tested the file mode, we do not need test it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c49BA2BAB.6010608@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa9d13cf135efbd454453a53b6299976bea245a9",
      "tree": "240d46a90984f3c84f336535269e97559e891104",
      "parents": [
        "b00f0b6dc1773b4c8f538503247da050b5ea631b"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Mar 13 17:16:34 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:25:06 2009 +0100"
      },
      "message": "ftrace: don\u0027t try to __ftrace_replace_code on !FTRACE_FL_CONVERTED rec\n\nDo __ftrace_replace_code for !FTRACE_FL_CONVERTED rec will always\nfail, we should ignore this rec.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: \"Steven Rostedt ;\" \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49BA2472.4060206@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b00f0b6dc1773b4c8f538503247da050b5ea631b",
      "tree": "94c81517cb3d1def0c0f9ccb33c48fb03c0f1c75",
      "parents": [
        "62a394eb77a1ddea73273f53ed8c3ccf6e04f2fb"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Mar 13 17:14:01 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:25:06 2009 +0100"
      },
      "message": "ftrace: avoid double-free of dyn_ftrace\n\nIf dyn_ftrace is freed before ftrace_release(), ftrace_release()\nwill free it again and make ftrace_free_records wrong.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: \"Steven Rostedt ;\" \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c49BA23D9.1050900@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62a394eb77a1ddea73273f53ed8c3ccf6e04f2fb",
      "tree": "ee72d87524b29eb9457b45e02a4587d8fbd9191d",
      "parents": [
        "d2e82546ae98eee353fae57e389f487586fe380d",
        "1b3fa2ce64363c289b3b14723cca7290bf91cfce"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:23:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 10:23:39 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/syscalls\u0027; commit \u0027v2.6.29-rc8\u0027 into tracing/core\n"
    },
    {
      "commit": "ee08c6eccb7d1295516f7cf420fddf7b14e9146f",
      "tree": "ec6d209e47bb1a8910d16c1c8b4ea65959850689",
      "parents": [
        "4c6ed8f496fe89ff81b3d6e617a531bedfb613e4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Mar 07 05:52:59 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 06:25:43 2009 +0100"
      },
      "message": "tracing/ftrace: syscall tracing infrastructure, basics\n\nProvide basic callbacks to do syscall tracing.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1236401580-5758-2-git-send-email-fweisbec@gmail.com\u003e\n[ simplified it to a trace_printk() for now. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f96f93f02b7637491a1637dee12dcdcd40b9802",
      "tree": "4756faebe7ada4eabb4ca985b3b26e09ecbfec14",
      "parents": [
        "bdc067582b8b71c7771bab076bbc51569c594fb4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:37:42 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:37:42 2009 -0400"
      },
      "message": "tracing: move binary buffers into per cpu directory\n\nThe binary_buffers directory in /debugfs/tracing held the files\nto read the trace buffers in a binary format. This held one file\nper CPU buffer. But we also have a per_cpu directory that holds\na way to read the pretty-print formats.\n\nThis patch moves the binary buffers into the per_cpu_directory:\n\n # ls /debug/tracing/per_cpu/cpu1/\ntrace  trace_pipe  trace_pipe_raw\n\nThe new name is called \"trace_pipe_raw\". The binary buffers always\nacted similar to trace_pipe, except that they produce raw data.\n\nRequested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "bdc067582b8b71c7771bab076bbc51569c594fb4",
      "tree": "a202353e4e365ae29c5bf95ca33eacd8eb4dfb54",
      "parents": [
        "eb1871f34358024acfa3523ef375ef14b7527173"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:12:52 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:15:46 2009 -0400"
      },
      "message": "tracing: add comment for use of double __builtin_consant_p\n\nImpact: documentation\n\nThe use of the double __builtin_contant_p checks in the event_trace_printk\ncan be confusing to developers and reviewers. This patch adds a comment\nto explain why it is there.\n\nRequested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLKML-Reference: \u003c20090313122235.43EB.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "eb1871f34358024acfa3523ef375ef14b7527173",
      "tree": "b09887f47e77f5935ef54ff41c2707cd67bb9a7f",
      "parents": [
        "5cc985488845ec7227a2c5cfd2fd62cf57fb411a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:00:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 13 00:00:58 2009 -0400"
      },
      "message": "tracing: left align location header in stack_trace\n\nIngo Molnar suggested, instead of:\n\n        Depth    Size      Location    (27 entries)\n        -----    ----      --------\n  0)     2880      48   lock_timer_base+0x2b/0x4f\n  1)     2832      80   __mod_timer+0x33/0xe0\n  2)     2752      16   __ide_set_handler+0x63/0x65\n\nTo have it be:\n\n        Depth    Size   Location    (27 entries)\n        -----    ----   --------\n  0)     2880      48   lock_timer_base+0x2b/0x4f\n  1)     2832      80   __mod_timer+0x33/0xe0\n  2)     2752      16   __ide_set_handler+0x63/0x65\n\nRequested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5cc985488845ec7227a2c5cfd2fd62cf57fb411a",
      "tree": "818517eb07b585e981ce81c200294a8ec7a8e992",
      "parents": [
        "f28e55765e40450c127e44d00ae65d0cd1a4efec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 22:24:17 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 22:24:17 2009 -0400"
      },
      "message": "ring-buffer: document reader page design\n\nIn a private email conversation I explained how the ring buffer\npage worked by using silly ASCII art. Ingo suggested that I add\nthat to the comments of the code.\n\nHere it is.\n\nRequested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f28e55765e40450c127e44d00ae65d0cd1a4efec",
      "tree": "31b8b0483fc8a5ddc0fc80ae8fee88e01f6f56d5",
      "parents": [
        "889a6c367283709a80dad9413488472596a1a1d2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 22:00:19 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 22:00:19 2009 -0400"
      },
      "message": "tracing: show event name in trace for TRACE_EVENT created events\n\nUnlike TRACE_FORMAT() macros, the TRACE_EVENT() macros do not show\nthe event name in the trace file. Knowing the event type in the trace\noutput is very useful.\n\nInstead of:\n\n   task swapper:0 [140] \u003d\u003d\u003e ntpd:3308 [120]\n\nWe now have:\n\n   sched_switch: task swapper:0 [140] \u003d\u003d\u003e ntpd:3308 [120]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "889a6c367283709a80dad9413488472596a1a1d2",
      "tree": "fabe1614e30f9d6e306376159a05e91721b6cb60",
      "parents": [
        "39842323ceb368d2ea36ab7696aedbe296e13b61"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 13 09:03:04 2009 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:23:47 2009 -0400"
      },
      "message": "tracing: Don\u0027t use tracing_record_cmdline() in workqueue tracer fix\n\ncommit c3ffc7a40b7e94b094efe1c8ab4e24370a782b65\n\"Don\u0027t use tracing_record_cmdline() in workqueue tracer\"\nhas a race window.\n\nfind_task_by_vpid() requires task_list_lock().\n\nLKML-Reference: \u003c20090313090042.43CD.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e447e1df2e568cd43d1918963c9f09fae85aea57",
      "tree": "a73edfcc1b603a921ed7e332ce614e1345385100",
      "parents": [
        "2da03ecee6308ea174e8a02b92a3c4ec92e886c8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 19:42:29 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:01 2009 -0400"
      },
      "message": "tracing: explain why stack tracer is empty\n\nIf the stack tracing is disabled (by default) the stack_trace file\nwill only contain the header:\n\n # cat /debug/tracing/stack_trace\n        Depth    Size      Location    (0 entries)\n        -----    ----      --------\n\nThis can be frustrating to a developer that does not realize that the\nstack tracer is disabled. This patch adds the following text:\n\n  # cat /debug/tracing/stack_trace\n        Depth    Size      Location    (0 entries)\n        -----    ----      --------\n #\n #  Stack tracer disabled\n #\n # To enable the stack tracer, either add \u0027stacktrace\u0027 to the\n # kernel command line\n # or \u0027echo 1 \u003e /proc/sys/kernel/stack_tracer_enabled\u0027\n #\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2da03ecee6308ea174e8a02b92a3c4ec92e886c8",
      "tree": "6e532a732a63f3a8385564aa450ada83d1a25ce7",
      "parents": [
        "7975a2be16dd42df2cab80c80cb6ece382edb6ec"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 18:57:51 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:01 2009 -0400"
      },
      "message": "tracing: fix stack tracer header\n\nThe stack tracer use to look like this:\n\n # cat /debug/tracing/stack_trace\n         Depth  Size      Location    (57 entries)\n         -----  ----      --------\n  0)     5088      16   mempool_alloc_slab+0x16/0x18\n  1)     5072     144   mempool_alloc+0x4d/0xfe\n  2)     4928      16   scsi_sg_alloc+0x48/0x4a [scsi_mod]\n\nNow it looks like this:\n\n # cat /debug/tracing/stack_trace\n\n        Depth    Size      Location    (57 entries)\n        -----    ----      --------\n  0)     5088      16   mempool_alloc_slab+0x16/0x18\n  1)     5072     144   mempool_alloc+0x4d/0xfe\n  2)     4928      16   scsi_sg_alloc+0x48/0x4a [scsi_mod]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "7975a2be16dd42df2cab80c80cb6ece382edb6ec",
      "tree": "b9fdae6b0f3cd7c902beb8bf995efe2d827e02a2",
      "parents": [
        "e9fb2b6d5845e24f104713591286b6f39761c027"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 14:23:17 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:01 2009 -0400"
      },
      "message": "tracing: export trace formats to user space\n\nThe binary printk saves a pointer to the format string in the ring buffer.\nOn output, the format is processed. But if the user is reading the\nring buffer through a binary interface, the pointer is meaningless.\n\nThis patch creates a file called printk_formats that maps the pointers\nto the formats.\n\n # cat /debug/tracing/printk_formats\n0xffffffff80713d40 : \"irq_handler_entry: irq\u003d%d handler\u003d%s\\n\"\n0xffffffff80713d48 : \"lock_acquire: %s%s%s\\n\"\n0xffffffff80713d50 : \"lock_release: %s\\n\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e9fb2b6d5845e24f104713591286b6f39761c027",
      "tree": "13239f3046b28b9b8b6166e438a4c509e57972c9",
      "parents": [
        "828275574e0161bdddb5817d4bd76a0265ef0470"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 14:19:25 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:00 2009 -0400"
      },
      "message": "tracing: have event_trace_printk use static tracer\n\nImpact: speed up on event tracing\n\nThe event_trace_printk is currently a wrapper function that calls\ntrace_vprintk. Because it uses a variable for the fmt it misses out\non the optimization of using the binary printk.\n\nThis patch makes event_trace_printk into a macro wrapper to use the\nfmt as the same as the trace_printks.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "828275574e0161bdddb5817d4bd76a0265ef0470",
      "tree": "191887ba1a47e161cf846fd8e078a0037f8a23f5",
      "parents": [
        "48ead02030f849d011259244bb4ea9b985479006"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 14:14:31 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:00 2009 -0400"
      },
      "message": "tracing: make bprint event use the proper event id\n\nThe bprint record is using TRACE_PRINT when it should be TRACE_BPRINT.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "48ead02030f849d011259244bb4ea9b985479006",
      "tree": "4500f27dc7eb6567ca79dd03fa94fe9e56fbc316",
      "parents": [
        "db526ca329f855510e8ce672332eba3304aed590"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Mar 12 18:24:49 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:15:00 2009 -0400"
      },
      "message": "tracing/core: bring back raw trace_printk for dynamic formats strings\n\nImpact: fix callsites with dynamic format strings\n\nSince its new binary implementation, trace_printk() internally uses static\ncontainers for the format strings on each callsites. But the value is\nassigned once at build time, which means that it can\u0027t take dynamic\nformats.\n\nSo this patch unearthes the raw trace_printk implementation for the callers\nthat will need trace_printk to be able to carry these dynamic format\nstrings. The trace_printk() macro will use the appropriate implementation\nfor each callsite. Most of the time however, the binary implementation will\nstill be used.\n\nThe other impact of this patch is that mmiotrace_printk() will use the old\nimplementation because it calls the low level trace_vprintk and we can\u0027t\nguess here whether the format passed in it is dynamic or not.\n\nSome parts of this patch have been written by Steven Rostedt (most notably\nthe part that chooses the appropriate implementation for each callsites).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "db526ca329f855510e8ce672332eba3304aed590",
      "tree": "d6bdd3384a063d7c58ae807a310ecc80cb91773b",
      "parents": [
        "8aabee573dff131a085c63de7667eacd94ba4ccb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 13:53:25 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:14:59 2009 -0400"
      },
      "message": "tracing: show that buffer size is not expanded\n\nImpact: do not confuse user on small trace buffer sizes\n\nWhen the system boots up, the trace buffer is small to conserve memory.\nIt is only two pages per online CPU. When the tracer is used, it expands\nto the default value.\n\nThis can confuse the user if they look at the buffer size and see only\n7, but then later they see 1408.\n\n # cat /debug/tracing/buffer_size_kb\n7\n\n # echo sched_switch \u003e /debug/tracing/current_tracer\n\n # cat /debug/tracing/buffer_size_kb\n1408\n\nThis patch tries to help remove this confustion by showing that the\nbuffer has not been expanded.\n\n # cat /debug/tracing/buffer_size_kb\n7 (expanded: 1408)\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "8aabee573dff131a085c63de7667eacd94ba4ccb",
      "tree": "923c02126de3e55148df132a89a7d2151df855b7",
      "parents": [
        "59222efe2d184956464abe5b637bc842ff053b93"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 13:13:49 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:14:59 2009 -0400"
      },
      "message": "ring-buffer: remove unneeded get_online_cpus\n\nImpact: speed up and remove possible races\n\nThe get_online_cpus was added to the ring buffer because the original\ndesign would free the ring buffer on a CPU that was being taken\noff line. The final design kept the ring buffer around even when the\nCPU was taken off line. This is to allow a user to still read the\ninformation on that ring buffer.\n\nMost of the get_online_cpus are no longer needed since the ring buffer will\nnot disappear from the use cases.\n\nReported-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "59222efe2d184956464abe5b637bc842ff053b93",
      "tree": "210300f7e0442ca342c3b8ecf6ee76207b7e3b2f",
      "parents": [
        "1027fcb206a0fb8348e63aff078c74bdee1c2698"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 11:46:03 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:14:59 2009 -0400"
      },
      "message": "ring-buffer: use CONFIG_HOTPLUG_CPU not CONFIG_HOTPLUG\n\nThe hotplug code in the ring buffers is for use with CPU hotplug,\nnot generic hotplug.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "1027fcb206a0fb8348e63aff078c74bdee1c2698",
      "tree": "05e858e410fdb30865a11c78e2bb9bb0a12f55ba",
      "parents": [
        "a123c52b46a1f84bcec3dc963351896c6d6afaf7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 11:33:20 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:14:58 2009 -0400"
      },
      "message": "tracing: protect ring_buffer_expanded with trace_types_lock\n\nImpact: prevent races with ring_buffer_expanded\n\nThis patch places the expanding of the tracing buffer under the\nprotection of the trace_types_lock mutex. It is highly unlikely\nthat there would be any contention, but better safe than sorry.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "a123c52b46a1f84bcec3dc963351896c6d6afaf7",
      "tree": "bbfea12d2234930fd67644fa281d11c8ab850460",
      "parents": [
        "51b643b404827d8fde60d7953773a42d46ca87e0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 11:21:08 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:14:58 2009 -0400"
      },
      "message": "tracing: fix comments about trace buffer resizing\n\nImpact: cleanup\n\nSome of the comments about the trace buffer resizing is gobbledygook.\nAnd I wonder why people question if I\u0027m a native English speaker.\n\nThis patch makes the comments make a bit more sense.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "51b643b404827d8fde60d7953773a42d46ca87e0",
      "tree": "ae71fcbd8b3640b68fc11e1dca620a8ee96bac5f",
      "parents": [
        "554f786e284a6ce859d51f62240d615603944c8e",
        "480c93df5b99699390f93a7024c9f60d09da0e96"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:12:46 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 12 21:12:46 2009 -0400"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/ftrace-merge\n"
    },
    {
      "commit": "554f786e284a6ce859d51f62240d615603944c8e",
      "tree": "d3710f97dac93861b3ff1f389276e643798f9b2e",
      "parents": [
        "9aba60fe6eb20453de53a572143bef22fa929fba"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:00:13 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:15:27 2009 -0400"
      },
      "message": "ring-buffer: only allocate buffers for online cpus\n\nImpact: save on memory\n\nCurrently, a ring buffer was allocated for each \"possible_cpus\". On\nsome systems, this is the same as NR_CPUS. Thus, if a system defined\nNR_CPUS \u003d 64 but it only had 1 CPU, we could have possibly 63 useless\nring buffers taking up space. With a default buffer of 3 megs, this\ncould be quite drastic.\n\nThis patch changes the ring buffer code to only allocate ring buffers\nfor online CPUs.  If a CPU goes off line, we do not free the buffer.\nThis is because the user may still have trace data in that buffer\nthat they would like to look at.\n\nPerhaps in the future we could add code to delete a ring buffer if\nthe CPU is offline and the ring buffer becomes empty.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9aba60fe6eb20453de53a572143bef22fa929fba",
      "tree": "97df44bc298fe40719d6f08000d96532d3ecf27e",
      "parents": [
        "1852fcce181faa237c010a3dbedb473cf9d4555f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 19:52:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:15:25 2009 -0400"
      },
      "message": "tracing: fix trace_wait to know to wait on all cpus or just one\n\nImpact: fix to task live locking on reading trace_pipe on one CPU\n\nThe same code is used for both trace_pipe (all CPUS) and the per_cpu\ntrace_pipe file. When there is no data to read, it will check for\nsignals and wait on the trace wait queue.\n\nThe problem happens with the per_cpu wait. The trace_wait code checks\nall CPUs. Thus, if there\u0027s data in another CPU buffer, then it will\nexit the wait, without checking for signals or waiting on the wait queue.\n\nIt would then try to read the empty buffer, and since that will just\nreturn nothing, then it will try to wait again. Unfortunately, that will\nagain fail due to there still being data in the other buffers. This\nends up with a live lock for the task.\n\nThis patch fixes the trace_wait to be aware that the iterator may only\nbe waiting on a single buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "1852fcce181faa237c010a3dbedb473cf9d4555f",
      "tree": "863cd12b573fd36436e7fb042f9bd96a73a9f725",
      "parents": [
        "73c5162aa362a543793f4a957c6c536dcbaa89ce"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 14:33:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:15:24 2009 -0400"
      },
      "message": "tracing: expand the ring buffers when an event is activated\n\nTo save memory, the tracer ring buffers are set to a minimum.\nThe activating of a trace expands the ring buffer size. This patch\nadds this expanding, when an event is activated.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "73c5162aa362a543793f4a957c6c536dcbaa89ce",
      "tree": "ca318ef3da72aac3f809583967185c0b34998c94",
      "parents": [
        "80370cb758e7ca2692cd9fb5e413d970b1f4b2b2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 13:42:01 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 11 22:15:22 2009 -0400"
      },
      "message": "tracing: keep ring buffer to minimum size till used\n\nImpact: less memory impact on systems not using tracer\n\nWhen the kernel boots up that has tracing configured, it allocates\nthe default size of the ring buffer. This currently happens to be\n1.4Megs per possible CPU. This is quite a bit of wasted memory if\nthe system is never using the tracer.\n\nThe current solution is to keep the ring buffers to a minimum size\nuntil the user uses them. Once a tracer is piped into the current_tracer\nthe ring buffer will be expanded to the default size. If the user\nchanges the size of the ring buffer, it will take the size given\nby the user immediately.\n\nIf the user adds a \"ftrace\u003d\" to the kernel command line, then the ring\nbuffers will be set to the default size on initialization.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "aecfcde920da8d32949f6cbbc1fc051b4ef9e7be",
      "tree": "c332ce67ef065978b07a889109394fda421c0581",
      "parents": [
        "e2b8b2808538a91444e78c7db5a30519cadd09b2",
        "80370cb758e7ca2692cd9fb5e413d970b1f4b2b2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 11 20:47:23 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 11 20:47:23 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "e2b8b2808538a91444e78c7db5a30519cadd09b2",
      "tree": "60c45581817db746bd61670f5c95b19c2661daa0",
      "parents": [
        "4dd163a0512eb91bbcf4e66d2f65b8e4042561b3",
        "ef18012b248b47ec9a12c3a83ca5e99782d39c5d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 22:55:31 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 22:55:31 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "80370cb758e7ca2692cd9fb5e413d970b1f4b2b2",
      "tree": "2c1451f4a374d8b7a515fe39b4bb24bb6a323db9",
      "parents": [
        "ef18012b248b47ec9a12c3a83ca5e99782d39c5d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 17:16:35 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 17:16:35 2009 -0400"
      },
      "message": "tracing: use raw spinlocks for trace_vprintk\n\nImpact: prevent locking up by lockdep tracer\n\nThe lockdep tracer uses trace_vprintk and thus trace_vprintk can not\ncall back into lockdep without locking up.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "6cc3c6e12bb039047974ad2e7e2d46d15a1b762f",
      "tree": "1c3ff8b51757674ead536a3220c0da14608ee267",
      "parents": [
        "2395037e5dd6841a6fa23afbb31e79d92e549cd1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 10 19:03:43 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 20:03:01 2009 +0100"
      },
      "message": "trace_clock: fix preemption bug\n\nUsing the function_graph tracer in recent kernels generates a spew of\npreemption BUGs. Fix this by not requiring trace_clock_local() users\nto disable preemption themselves.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef18012b248b47ec9a12c3a83ca5e99782d39c5d",
      "tree": "8103b4d14c6b81a6a5ec39cd43e4ca7ffb51625d",
      "parents": [
        "0e3d0f0566f3fcf664782f597070bbc669d78454"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 14:10:56 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 14:13:14 2009 -0400"
      },
      "message": "tracing: remove funky whitespace in the trace code\n\nImpact: clean up\n\nThere existed a lot of \u003cspace\u003e\u003ctab\u003e\u0027s in the tracing code. This\npatch removes them.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0e3d0f0566f3fcf664782f597070bbc669d78454",
      "tree": "11ce48020cc45e8e168c7bd89a88b55a6bbefaed",
      "parents": [
        "823f9124fb2e33eeb624d139978a52089f8a02ae"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 13:12:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 13:12:58 2009 -0400"
      },
      "message": "tracing: update comments to match event code macros\n\nImpact: clean up / comments\n\nThe comments that described the ftrace macros to manipulate the\nTRACE_EVENT and TRACE_FORMAT macros no longer match the code.\nThis patch updates them.\n\nReported-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "30a8fecc2d34f086df34fe2f2b926f080e002600",
      "tree": "a6959a40a6a3065b61ddcf4954861dfd8892a843",
      "parents": [
        "2314c4ae1461c9e8b26cf8b9a851f280bc5769e1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 12:41:38 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 12:41:38 2009 -0400"
      },
      "message": "tracing: flip the TP_printk and TP_fast_assign in the TRACE_EVENT macro\n\nImpact: clean up\n\nIn trying to stay consistant with the C style format in the TRACE_EVENT\nmacro, it makes more sense to do the printk after the assigning of\nthe variables.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2314c4ae1461c9e8b26cf8b9a851f280bc5769e1",
      "tree": "c6f55179012c6997f77fa523f542efdfd1104c24",
      "parents": [
        "40e26815fafd3b8c4aced17b1f22e68ef33eb8db"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 12:04:02 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 12:04:02 2009 -0400"
      },
      "message": "tracing: add back the available_events file\n\nThe event directory files type and available_types were no longer\nneeded with the new TRACE_EVENT_FORMAT macros, they were deleted.\nBut by accident the available_events file was also removed.\nThis patch brings it back.\n\nReported-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "40e26815fafd3b8c4aced17b1f22e68ef33eb8db",
      "tree": "ace92f7335ad97144d57ef91af0b82da88db4335",
      "parents": [
        "ce8eb2bf05042452107e489782105d2e235cbdd0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 11:32:40 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 11:32:40 2009 -0400"
      },
      "message": "tracing: do not allow modifying the ftrace events via the event files\n\nImpact: fix to prevent crash on calling NULL function pointer\n\nThe ftrace internal records have their format exported via the event\nsystem under the ftrace subsystem. These are only for exporting the\nformat to allow binary readers to be able to parse them in a binary\noutput.\n\nThe ftrace subsystem events can only be enabled via the ftrace tracers\nand do not have a registering function. The event files expect the\nevent record to have registering function and will call it directly.\nPassing in a ftrace subsystem event will cause the kernel to crash\nbecause it will execute a NULL pointer.\n\nThis patch prevents the ftrace subsystem from being viewable to the\nevent enabling files.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ce8eb2bf05042452107e489782105d2e235cbdd0",
      "tree": "f90790e543c221e3b0bac963bd8afa96e79a06ed",
      "parents": [
        "157587d7ac555458da9f682e3250135e468470a6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 10:14:35 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 10:14:35 2009 -0400"
      },
      "message": "tracing: fix printk format specifier\n\nImpact: clean up\n\nThe offsetof and sizeof are of type size_t, and instead of typecasting\nthem to unsigned int for printk formatting, one could just use %zu.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "bbcd3063597a3824357cd83c501c2a2aa21ef37b",
      "tree": "4da63cbe8e3740fd9645fbbf6aeeed5d21ac6437",
      "parents": [
        "8293dd6f86e759068ce918aa10ca9c5d6d711cd0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 10 10:49:53 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 10:20:30 2009 +0100"
      },
      "message": "tracing: Don\u0027t assume possible cpu list have continuous numbers\n\n\"for (++cpu ; cpu \u003c num_possible_cpus(); cpu++)\" statement assumes\npossible cpus have continuous number - but that\u0027s a wrong assumption.\n\nInsted, cpumask_next() should be used.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20090310104437.A480.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8293dd6f86e759068ce918aa10ca9c5d6d711cd0",
      "tree": "de366d69078bf2b98c6765fa4ec1cc652f3d3173",
      "parents": [
        "631595fbf4aeac260e664a8a002897e4db6a50dd",
        "467c88fee51e2ae862e9485245687da0730e29aa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 10:16:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 10:17:48 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into tracing/ftrace\n\nSemantic merge:\n\n  kernel/trace/trace_functions_graph.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a1043d19c4edc4ff1d80081a39809a506a62e4d",
      "tree": "a8ba7bdb2ebe8e486f018d55969727abf14e7e33",
      "parents": [
        "12e87e36e0141c08dbc8b2177c93c75fb18ad7e5",
        "157587d7ac555458da9f682e3250135e468470a6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:57:16 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:57:16 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "157587d7ac555458da9f682e3250135e468470a6",
      "tree": "81033336672eb821f3833a1667bedfc646a3a6f5",
      "parents": [
        "d6e2ca4c05be6a5ab16030a9f227301bd6acc9f0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:15:34 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:12 2009 -0400"
      },
      "message": "tracing: remove obsolete TRACE_EVENT_FORMAT macro\n\nImpact: clean up\n\nThe TRACE_EVENT_FORMAT macro is no longer used by trace points\nand only the DECLARE_TRACE, TRACE_FORMAT or TRACE_EVENT macros should\nbe used by them. Although the TRACE_EVENT_FORMAT macro is still used\nby the internal tracing utility, it should not be used in core\nkernel code.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "da4d03020c2af32f73e8bfbab0a66620d85bb9bb",
      "tree": "3ee6d7d69754df7910454315a6011c14d8664d01",
      "parents": [
        "9cc26a261d43e5898287a1f5808132f8f05ceb1c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 17:14:30 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:07 2009 -0400"
      },
      "message": "tracing: new format for specialized trace points\n\nImpact: clean up and enhancement\n\nThe TRACE_EVENT_FORMAT macro looks quite ugly and is limited in its\nability to save data as well as to print the record out. Working with\nIngo Molnar, we came up with a new format that is much more pleasing to\nthe eye of C developers. This new macro is more C style than the old\nmacro, and is more obvious to what it does.\n\nHere\u0027s the example. The only updated macro in this patch is the\nsched_switch trace point.\n\nThe old method looked like this:\n\n TRACE_EVENT_FORMAT(sched_switch,\n        TP_PROTO(struct rq *rq, struct task_struct *prev,\n                struct task_struct *next),\n        TP_ARGS(rq, prev, next),\n        TP_FMT(\"task %s:%d \u003d\u003d\u003e %s:%d\",\n              prev-\u003ecomm, prev-\u003epid, next-\u003ecomm, next-\u003epid),\n        TRACE_STRUCT(\n                TRACE_FIELD(pid_t, prev_pid, prev-\u003epid)\n                TRACE_FIELD(int, prev_prio, prev-\u003eprio)\n                TRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],\n                                    next_comm,\n                                    TP_CMD(memcpy(TRACE_ENTRY-\u003enext_comm,\n                                                 next-\u003ecomm,\n                                                 TASK_COMM_LEN)))\n                TRACE_FIELD(pid_t, next_pid, next-\u003epid)\n                TRACE_FIELD(int, next_prio, next-\u003eprio)\n        ),\n        TP_RAW_FMT(\"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\")\n        );\n\nThe above method is hard to read and requires two format fields.\n\nThe new method:\n\n /*\n  * Tracepoint for task switches, performed by the scheduler:\n  *\n  * (NOTE: the \u0027rq\u0027 argument is not used by generic trace events,\n  *        but used by the latency tracer plugin. )\n  */\n TRACE_EVENT(sched_switch,\n\n\tTP_PROTO(struct rq *rq, struct task_struct *prev,\n\t\t struct task_struct *next),\n\n\tTP_ARGS(rq, prev, next),\n\n\tTP_STRUCT__entry(\n\t\t__array(\tchar,\tprev_comm,\tTASK_COMM_LEN\t)\n\t\t__field(\tpid_t,\tprev_pid\t\t\t)\n\t\t__field(\tint,\tprev_prio\t\t\t)\n\t\t__array(\tchar,\tnext_comm,\tTASK_COMM_LEN\t)\n\t\t__field(\tpid_t,\tnext_pid\t\t\t)\n\t\t__field(\tint,\tnext_prio\t\t\t)\n\t),\n\n\tTP_printk(\"task %s:%d [%d] \u003d\u003d\u003e %s:%d [%d]\",\n\t\t__entry-\u003eprev_comm, __entry-\u003eprev_pid, __entry-\u003eprev_prio,\n\t\t__entry-\u003enext_comm, __entry-\u003enext_pid, __entry-\u003enext_prio),\n\n\tTP_fast_assign(\n\t\tmemcpy(__entry-\u003enext_comm, next-\u003ecomm, TASK_COMM_LEN);\n\t\t__entry-\u003eprev_pid\t\u003d prev-\u003epid;\n\t\t__entry-\u003eprev_prio\t\u003d prev-\u003eprio;\n\t\tmemcpy(__entry-\u003eprev_comm, prev-\u003ecomm, TASK_COMM_LEN);\n\t\t__entry-\u003enext_pid\t\u003d next-\u003epid;\n\t\t__entry-\u003enext_prio\t\u003d next-\u003eprio;\n\t)\n );\n\nThis macro is called TRACE_EVENT, it is broken up into 5 parts:\n\n TP_PROTO:        the proto type of the trace point\n TP_ARGS:         the arguments of the trace point\n TP_STRUCT_entry: the structure layout of the entry in the ring buffer\n TP_printk:       the printk format\n TP_fast_assign:  the method used to write the entry into the ring buffer\n\nThe structure is the definition of how the event will be saved in the\nring buffer. The printk is used by the internal tracing in case of\nan oops, and the kernel needs to print out the format of the record\nto the console. This the TP_printk gives a means to show the records\nin a human readable format. It is also used to print out the data\nfrom the trace file.\n\nThe TP_fast_assign is executed directly. It is basically like a C function,\nwhere the __entry is the handle to the record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9cc26a261d43e5898287a1f5808132f8f05ceb1c",
      "tree": "cf00e838e7f026d20500d8f90191230ed3f41078",
      "parents": [
        "2939b0469d04ba9ac791aca9a81625d7eb50662b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 16:00:22 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:05 2009 -0400"
      },
      "message": "tracing: use generic __stringify\n\nImpact: clean up\n\nThis removes the custom made STR(x) macros in the tracer and uses\nthe generic __stringify macro instead.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2939b0469d04ba9ac791aca9a81625d7eb50662b",
      "tree": "573f10c39f34c670fdc6832415642738c5afb3f9",
      "parents": [
        "156b5f172a64103bcb13b6d26288388b9019caa3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 09 15:47:18 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:35:04 2009 -0400"
      },
      "message": "tracing: replace TP\u003cvar\u003e with TP_\u003cvar\u003e\n\nImpact: clean up\n\nThe macros TPPROTO, TPARGS, TPFMT, TPRAWFMT, and TPCMD all look a bit\nugly. This patch adds an underscore to their names.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "156b5f172a64103bcb13b6d26288388b9019caa3",
      "tree": "e29141720bd9d0e4c722dd3c7dc8c62d5113db43",
      "parents": [
        "7bffc23e56e92c14b787bf4d95249a32085bfed5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 06 10:50:53 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 10 00:34:03 2009 -0400"
      },
      "message": "tracing: typecast sizeof and offsetof to unsigned int\n\nImpact: fix compiler warnings\n\nOn x86_64 sizeof and offsetof are treated as long, where as on x86_32\nthey are int. This patch typecasts them to unsigned int to avoid\none arch giving warnings while the other does not.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c3ffc7a40b7e94b094efe1c8ab4e24370a782b65",
      "tree": "13e2831b866f1ee2ff1bc395400c87e2980225eb",
      "parents": [
        "888b55dc314d26239d84c3b187dae555a81c1605"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Mar 09 18:15:34 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 09 10:26:13 2009 +0100"
      },
      "message": "tracing: Don\u0027t use tracing_record_cmdline() in workqueue tracer\n\nImpact: improve workqueue tracer output\n\nCurrently, /sys/kernel/debug/tracing/trace_stat/workqueues can display\nwrong and strange thread names.\n\nWhy?\n\nCurrently, ftrace has tracing_record_cmdline()/trace_find_cmdline()\nconvenience function that implements a task-\u003ecomm string cache.\n\nThis can avoid unnecessary memcpy overhead and the workqueue tracer\nuses it.\n\nHowever, in general, any trace statistics feature shouldn\u0027t use\ntracing_record_cmdline() because trace statistics can display\nvery old process. Then comm cache can return wrong string because\nrecent process overrides the cache.\n\nFortunately, workqueue trace guarantees that displayed processes\nare live. Thus we can search comm string from PID at display time.\n\n\u003cbefore\u003e\n\n% cat workqueues\n # CPU  INSERTED  EXECUTED   NAME\n # |      |         |          |\n\n   7 431913     431913       kondemand/7\n   7      0          0       tail\n   7     21         21       git\n   7      0          0       ls\n   7      9          9       cat\n   7 832632     832632       unix_chkpwd\n   7 236292     236292       ls\n\nNote: tail, git, ls, cat unix_chkpwd are obiously not workqueue thread.\n\n\u003cafter\u003e\n\n% cat workqueues\n # CPU  INSERTED  EXECUTED   NAME\n # |      |         |          |\n\n   7    510        510       kondemand/7\n   7      0          0       kmpathd/7\n   7     15         15       ata/7\n   7      0          0       aio/7\n   7     11         11       kblockd/7\n   7   1063       1063       work_on_cpu/7\n   7    167        167       events/7\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "888b55dc314d26239d84c3b187dae555a81c1605",
      "tree": "bdf22d17648cf01f89009d37b9bbcdb1521fc636",
      "parents": [
        "dba58e39ced7af63f2748d12bbb2b4ac83c72391"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Sun Mar 08 13:12:43 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 08 16:57:22 2009 +0100"
      },
      "message": "ftrace: tracing header should put \u0027#\u0027 at the beginning of a line\n\nIn a recent discussion, Andrew Morton pointed out that tracing header\nshould put \u0027#\u0027 at the beginning of a line.\n\nThen, we can easily filtered the header by following grep usage:\n\n  cat trace | grep -v \u0027^#\u0027\n\nWakeup trace also has the same header problem.\n\nComparison of headers displayed:\n\nbefore this patch:\n\n # tracer: wakeup\n #\n wakeup latency trace v1.1.5 on 2.6.29-rc7-tip-tip\n --------------------------------------------------------------------\n  latency: 19059 us, #21277/21277, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)\n     -----------------\n     | task: kondemand/1-1644 (uid:0 nice:-5 policy:0 rt_prio:0)\n     -----------------\n\n #                  _------\u003d\u003e CPU#\n #                 / _-----\u003d\u003e irqs-off\n #                | / _----\u003d\u003e need-resched\n #                || / _---\u003d\u003e hardirq/softirq\n #                ||| / _--\u003d\u003e preempt-depth\n #                |||| /\n #                |||||     delay\n #  cmd     pid   ||||| time  |   caller\n #     \\   /      |||||   \\   |   /\n irqbalan-1887    1d.s.    0us :   1887:120:R   + [001]  1644:115:S kondemand/1\n irqbalan-1887    1d.s.    1us : default_wake_function \u003c-autoremove_wake_function\n irqbalan-1887    1d.s.    2us : check_preempt_wakeup \u003c-try_to_wake_up\n\nafter this patch:\n\n # tracer: wakeup\n #\n # wakeup latency trace v1.1.5 on 2.6.29-rc7-tip-tip\n # --------------------------------------------------------------------\n # latency: 529 us, #530/530, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)\n #    -----------------\n #    | task: kondemand/0-1641 (uid:0 nice:-5 policy:0 rt_prio:0)\n #    -----------------\n #\n #                  _------\u003d\u003e CPU#\n #                 / _-----\u003d\u003e irqs-off\n #                | / _----\u003d\u003e need-resched\n #                || / _---\u003d\u003e hardirq/softirq\n #                ||| / _--\u003d\u003e preempt-depth\n #                |||| /\n #                |||||     delay\n #  cmd     pid   ||||| time  |   caller\n #     \\   /      |||||   \\   |   /\n     sshd-2496    0d.s.    0us :   2496:120:R   + [000]  1641:115:S kondemand/0\n     sshd-2496    0d.s.    1us : default_wake_function \u003c-autoremove_wake_function\n     sshd-2496    0d.s.    1us : check_preempt_wakeup \u003c-try_to_wake_up\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c20090308124421.23C3.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dba58e39ced7af63f2748d12bbb2b4ac83c72391",
      "tree": "ee15a5e7667b51d0d0f7e8cb39064652f7c84c28",
      "parents": [
        "9de36825b321fe9fe9cf73260554251af579f4ca",
        "78ff7fae04554b49d29226ed12536268c2500d1f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 08 16:48:51 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 08 16:48:51 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/doc\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/printk\u0027 and \u0027tracing/textedit\u0027 into tracing/core\n"
    },
    {
      "commit": "9de36825b321fe9fe9cf73260554251af579f4ca",
      "tree": "0bde90baa93cb7a1ac09c6ae73d6ec1d67ac2f44",
      "parents": [
        "769b0441f438c4bb4872cb8560eb6fe51bcc09ee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:52:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:12 2009 +0100"
      },
      "message": "tracing: trace_bprintk() cleanups\n\nImpact: cleanup\n\nRemove a few leftovers and clean up the code a bit.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "769b0441f438c4bb4872cb8560eb6fe51bcc09ee",
      "tree": "9908682dfd89e97c3097a7c3adcae35d821e1895",
      "parents": [
        "1ba28e02a18cbdbea123836f6c98efb09cbf59ec"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 06 17:21:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:12 2009 +0100"
      },
      "message": "tracing/core: drop the old trace_printk() implementation in favour of trace_bprintk()\n\nImpact: faster and lighter tracing\n\nNow that we have trace_bprintk() which is faster and consume lesser\nmemory than trace_printk() and has the same purpose, we can now drop\nthe old implementation in favour of the binary one from trace_bprintk(),\nwhich means we move all the implementation of trace_bprintk() to\ntrace_printk(), so the Api doesn\u0027t change except that we must now use\ntrace_seq_bprintk() to print the TRACE_PRINT entries.\n\nSome changes result of this:\n\n- Previously, trace_bprintk depended of a single tracer and couldn\u0027t\n  work without. This tracer has been dropped and the whole implementation\n  of trace_printk() (like the module formats management) is now integrated\n  in the tracing core (comes with CONFIG_TRACING), though we keep the file\n  trace_printk (previously trace_bprintk.c) where we can find the module\n  management. Thus we don\u0027t overflow trace.c\n\n- changes some parts to use trace_seq_bprintk() to print TRACE_PRINT entries.\n\n- change a bit trace_printk/trace_vprintk macros to support non-builtin formats\n  constants, and fix \u0027const\u0027 qualifiers warnings. But this is all transparent for\n  developers.\n\n- etc...\n\nV2:\n\n- Rebase against last changes\n- Fix mispell on the changelog\n\nV3:\n\n- Rebase against last changes (moving trace_printk() to kernel.h)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ba28e02a18cbdbea123836f6c98efb09cbf59ec",
      "tree": "41df06a06c702152902ffd7250f284a6efe9b0da",
      "parents": [
        "1427cdf0592368bdec57276edaf714040ee8744f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 06 17:21:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:11 2009 +0100"
      },
      "message": "tracing: add trace_bprintk()\n\nImpact: add a generic printk() for tracing, like trace_printk()\n\ntrace_bprintk() uses the infrastructure to record events on ring_buffer.\n\n[ fweisbec@gmail.com: ported to latest -tip, made it work if\n  !CONFIG_MODULES, never free the format strings from modules\n  because we can\u0027t keep track of them and conditionnaly create\n  the ftrace format strings section (reported by Steven Rostedt) ]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1427cdf0592368bdec57276edaf714040ee8744f",
      "tree": "4b214ee49643db383328cf53a31959eb0627a167",
      "parents": [
        "546e5354a6e4ec760ac03ef1148e9a4762abb5f5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 06 17:21:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 17:59:11 2009 +0100"
      },
      "message": "tracing: infrastructure for supporting binary record\n\nImpact: save on memory for tracing\n\nCurrent tracers are typically using a struct(like struct ftrace_entry,\nstruct ctx_switch_entry, struct special_entr etc...)to record a binary\nevent. These structs can only record a their own kind of events.\nA new kind of tracer need a new struct and a lot of code too handle it.\n\nSo we need a generic binary record for events. This infrastructure\nis for this purpose.\n\n[fweisbec@gmail.com: rebase against latest -tip, make it safe while sched\ntracing as reported by Steven Rostedt]\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1236356510-8381-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f0ef03985130287c6c84ebe69416cf790e6cc00e",
      "tree": "3ecb04cc4d82e5fc3ae5f1747e6da172ae8cbcb7",
      "parents": [
        "16097439703bcd38e9fe5608c12add6dacb825ea",
        "31bbed527e7039203920c51c9fb48c27aed0820c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:44:14 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 16:45:01 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into tracing/textedit\n\nConflicts:\n\tarch/x86/Kconfig\n\tblock/blktrace.c\n\tkernel/irq/handle.c\n\nSemantic conflict:\n\tkernel/trace/blktrace.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10dd3ebe213c31bff14b4dae3c5d32a76b1fad7c",
      "tree": "251609d532ccbb4c157a2c5c3d7a5b8176eeab8c",
      "parents": [
        "422d3c7a577b15e1384c9d4e72a9540896b685fa"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 06 15:29:04 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 12:07:38 2009 +0100"
      },
      "message": "tracing: fix deadlock when setting set_ftrace_pid\n\nImpact: fix deadlock while using set_ftrace_pid\n\nReproducer:\n\n\t# cd /sys/kernel/debug/tracing\n\t# echo $$ \u003e set_ftrace_pid\n\n\tthen, console becomes hung.\n\nDetails:\n\nwhen writing set_ftracepid, kernel callstack is following\n\n\tftrace_pid_write()\n\t\tmutex_lock(\u0026ftrace_lock);\n\t\tftrace_update_pid_func()\n\t\t\tmutex_lock(\u0026ftrace_lock);\n\t\t\tmutex_unlock(\u0026ftrace_lock);\n\t\tmutex_unlock(\u0026ftrace_lock);\n\nthen, system always deadlocks when ftrace_pid_write() is called.\n\nIn past days, ftrace_pid_write() used ftrace_start_lock, but\ncommit e6ea44e9b4c12325337cd1c06103cd515a1c02b2 consolidated\nftrace_start_lock to ftrace_lock.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nLKML-Reference: \u003c20090306151155.0778.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "422d3c7a577b15e1384c9d4e72a9540896b685fa",
      "tree": "8852c53347ec55c53bea321bd9b9f07cd9cc9d66",
      "parents": [
        "bc722f508a5bcbb65a7bb0c7ce8e3934f5763a1a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 06 10:40:53 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:56:42 2009 +0100"
      },
      "message": "tracing: current tip/master can\u0027t enable ftrace\n\nAfter commit 40ada30f9621fbd831ac2437b9a2a399aad34b00,\n\"make menuconfig\" doesn\u0027t display \"Tracer\" item.\n\nFollowing modification restores it.\n"
    },
    {
      "commit": "bc722f508a5bcbb65a7bb0c7ce8e3934f5763a1a",
      "tree": "d6494e409a671669614e7a08a5328e8def277225",
      "parents": [
        "16097439703bcd38e9fe5608c12add6dacb825ea",
        "770cb24345c0f6e0d47bd2b94aa6d67bea6f8b54"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:40:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:40:37 2009 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n"
    },
    {
      "commit": "16097439703bcd38e9fe5608c12add6dacb825ea",
      "tree": "9f6572fefdeb3e7c61f701ed9a86979d5525ccd8",
      "parents": [
        "40ada30f9621fbd831ac2437b9a2a399aad34b00",
        "0012693ad4f636c720fed3802027f9427962f540"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:39:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 06 11:39:18 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/function-graph-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "770cb24345c0f6e0d47bd2b94aa6d67bea6f8b54",
      "tree": "ec76651c686c02249c1455446801cf2b9d823879",
      "parents": [
        "33b0c229e3abeae00493ed1d6f0b07191977a0a2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:35:29 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:44 2009 -0500"
      },
      "message": "tracing: add format files for ftrace default entries\n\nImpact: allow user apps to read binary format of basic ftrace entries\n\nCurrently, only defined raw events export their formats so a binary\nreader can parse them. There\u0027s no reason that the default ftrace entries\ncan\u0027t export their formats.\n\nThis patch adds a subsystem called \"ftrace\" in the events directory\nthat includes the ftrace entries for basic ftrace recorded items.\n\nThese only have three files in the events directory:\n\n type             : printf\n available_types  : printf\n format           : format for the event entry\n\nFor example:\n\n # cat /debug/tracing/events/ftrace/wakeup/format\nname: wakeup\nID: 3\nformat:\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:unsigned int prev_pid;    offset:12;      size:4;\n        field:unsigned char prev_prio;  offset:16;      size:1;\n        field:unsigned char prev_state; offset:17;      size:1;\n        field:unsigned int next_pid;    offset:20;      size:4;\n        field:unsigned char next_prio;  offset:24;      size:1;\n        field:unsigned char next_state; offset:25;      size:1;\n        field:unsigned int next_cpu;    offset:28;      size:4;\n\nprint fmt: \"%u:%u:%u  \u003d\u003d+ %u:%u:%u [%03u]\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "33b0c229e3abeae00493ed1d6f0b07191977a0a2",
      "tree": "f11127408c678be82545f8c949f49f499c3b6f95",
      "parents": [
        "5e2336a0d47c9661a40cc5ef85135ce1406af6e8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 11:45:43 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:42 2009 -0500"
      },
      "message": "tracing: move print of event format to separate file\n\nImpact: clean up\n\nMove the macro that creates the event format file to a separate header.\nThis will allow the default ftrace events to use this same macro\nto create the formats to read those events.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5e2336a0d47c9661a40cc5ef85135ce1406af6e8",
      "tree": "6d977e4471f8e31245602a26e939368689d2383a",
      "parents": [
        "2002c258faaa8f89543df284fdbaa9e4b171547f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:44:55 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 05 21:46:40 2009 -0500"
      },
      "message": "tracing: make all file_operations const\n\nImpact: cleanup\n\nAll file_operations structures should be constant. No one is going to\nchange them.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "40ada30f9621fbd831ac2437b9a2a399aad34b00",
      "tree": "47df1abc756d9ce33feec3eb5bb601edafbcf14c",
      "parents": [
        "526211bc58c4b3265352801c5a7f469af5c34711"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 21:19:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 21:53:25 2009 +0100"
      },
      "message": "tracing: clean up menu\n\nClean up menu structure, introduce TRACING_SUPPORT switch that signals\nwhether an architecture supports various instrumentation mechanisms.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0012693ad4f636c720fed3802027f9427962f540",
      "tree": "355277518dbdcc8385f374db1a5d5e15301940e0",
      "parents": [
        "c4ef144a9d0803eb0a2d4110ae87e7f34e667ded"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Mar 05 01:49:22 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 12:14:41 2009 +0100"
      },
      "message": "tracing/function-graph-tracer: use the more lightweight local clock\n\nImpact: decrease hangs risks with the graph tracer on slow systems\n\nSince the function graph tracer can spend too much time on timer\ninterrupts, it\u0027s better now to use the more lightweight local\nclock. Anyway, the function graph traces are more reliable on a\nper cpu trace.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c49af243d.06e9300a.53ad.ffff840c@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e1607a00bd082972629d3d68c95c8bcf902b55a",
      "tree": "2751baf5ee286cdec8f4b1afcb7332f4c1f5f454",
      "parents": [
        "53664738c122bfe8b0e489fddaf2ab265c9133c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:24:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:24:48 2009 +0100"
      },
      "message": "tracing: rename ftrace_printk() \u003d\u003e trace_printk()\n\nImpact: cleanup\n\nUse a more generic name - this also allows the prototype to move\nto kernel.h and be generally available to kernel developers who\nwant to do some quick tracing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9d25fe6eaa2c720bb3ea661b660e58d54fa38bf",
      "tree": "8121a9fc4021e86499c404e0b1012a36e8d0b00e",
      "parents": [
        "27d48be84477d2f0a2e2ac3738a3971dece631d5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 22:15:30 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 22:15:30 2009 -0500"
      },
      "message": "tracing: have latency tracers set the latency format\n\nThe latency tracers (irqsoff, preemptoff, preemptirqsoff, and wakeup)\nare pretty useless with the default output format. This patch makes them\nautomatically enable the latency format when they are selected. They\nalso record the state of the latency option, and if it was not enabled\nwhen selected, they disable it on reset.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "27d48be84477d2f0a2e2ac3738a3971dece631d5",
      "tree": "92d4b896df1102b0aaa3c01d71fdecd75faa601f",
      "parents": [
        "5fd73f862468280d4cbb5ba4321502f911f9f89a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:57:29 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:57:29 2009 -0500"
      },
      "message": "tracing: consolidate print_lat_fmt and print_trace_fmt\n\nImpact: clean up\n\nBoth print_lat_fmt and print_trace_fmt do pretty much the same thing\nexcept for one different function call. This patch consolidates the\ntwo functions and adds an if statement to perform the difference.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5fd73f862468280d4cbb5ba4321502f911f9f89a",
      "tree": "3c96f61dea5280784560a8b9252fe13a84149421",
      "parents": [
        "c032ef64d680717e4e8ce3da65da6419a35f8a2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:42:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 21:42:04 2009 -0500"
      },
      "message": "tracing: remove extra latency_trace method from trace structure\n\nImpact: clean up\n\nThe trace and latency_trace function pointers are identical for\nevery tracer but the function tracer. The differences in the function\ntracer are trivial (latency output puts paranthesis around parent).\n\nThis patch removes the latency_trace pointer and all prints will\nnow just use the trace output function pointer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c032ef64d680717e4e8ce3da65da6419a35f8a2c",
      "tree": "f6d77c0033e9a33f22adac66d939338c55f06525",
      "parents": [
        "e74da5235cec6cb71eb338c987f876ecc793138b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:34:24 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:34:24 2009 -0500"
      },
      "message": "tracing: add latency output format option\n\nWith the removal of the latency_trace file, we lost the ability\nto see some of the finer details in a trace. Like the state of\ninterrupts enabled, the preempt count, need resched, and if we\nare in an interrupt handler, softirq handler or not.\n\nThis patch simply creates an option to bring back the old format.\nThis also removes the warning about an unused variable that held\nthe latency_trace file operations.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e74da5235cec6cb71eb338c987f876ecc793138b",
      "tree": "ba7ba533d7056ba660763c33b5a44a1d61279c99",
      "parents": [
        "2dc5d12b1f43134e9bc5037f69f4739cfdfab93e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:31:11 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 20:31:11 2009 -0500"
      },
      "message": "tracing: fix seq read from trace files\n\nThe buffer used by trace_seq was updated incorrectly. Instead\nof consuming what was actually read, it consumed the rest of the\nbuffer on reads.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2dc5d12b1f43134e9bc5037f69f4739cfdfab93e",
      "tree": "fd1070a750b7f88e01527b3d808e73f7f9fcb45a",
      "parents": [
        "4f3640f8a358f2183a8c966f299eeb55ca523e06"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:10:05 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:10:05 2009 -0500"
      },
      "message": "tracing: do not return EFAULT if read copied anything\n\nImpact: fix trace read to conform to standards\n\nAndrew Morton, Theodore Tso and H. Peter Anvin brought to my attention\nthat a userspace read should not return -EFAULT if it succeeded in\ncopying anything. It should only return -EFAULT if it failed to copy\nat all.\n\nThis patch modifies the check of copy_from_user and updates the return\ncode appropriately.\n\nI also used H. Peter Anvin\u0027s short cut rule to just test ret \u003d\u003d count.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4f3640f8a358f2183a8c966f299eeb55ca523e06",
      "tree": "ff8b1a10b449fbb823523b09a192e6b5563d56e8",
      "parents": [
        "e543ad76914abec1acf6631604a4154cd7a2ca6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 23:52:42 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 19:01:45 2009 -0500"
      },
      "message": "ring-buffer: fix timestamp in partial ring_buffer_page_read\n\nIf a partial ring_buffer_page_read happens, then some of the\nincremental timestamps may be lost. This patch writes the\nrecent timestamp into the page that is passed back to the caller.\n\nA partial ring_buffer_page_read is where the full page would not\nbe written back to the user, and instead, just part of the page\nis copied to the user. A full page would be a page swap with the\nring buffer and the timestamps would be correct.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e543ad76914abec1acf6631604a4154cd7a2ca6b",
      "tree": "a2d093fe45ecb663fc1f977c0efc812ec06e1b99",
      "parents": [
        "efed792d6738964f399a508ef9e831cd60fa4657"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 18:20:36 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 04 18:32:28 2009 -0500"
      },
      "message": "tracing: add cpu_file intialization for ftrace_dump\n\nImpact: fix to ftrace_dump output corruption\n\nThe commit: b04cc6b1f6398b0e0b60d37e27ce51b4899672ec\n  tracing/core: introduce per cpu tracing files\n\nadded a new field to the iterator called cpu_file. This was a handle\nto differentiate between the per cpu trace output files and the\nall cpu \"trace\" file. The all cpu \"trace\" file required setting this\nto TRACE_PIPE_ALL_CPU.\n\nThe problem is that the ftrace_dump sets up its own iterator but was\nnot updated to handle this change. The result was only CPU 0 printing\nout on crash and a lot of \"\u003c0\u003e\"\u0027s also being printed.\n\nReported-by: Thomas Gleixner \u003ctglx@linuxtronix.de\u003e\nTested-by: Darren Hart \u003cdvhtc@us.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "efed792d6738964f399a508ef9e831cd60fa4657",
      "tree": "b4b5e472bafb3d5d0d8ea26680e1d8cc87365c30",
      "parents": [
        "28b1bd1cbc33cae95a309691d814399a69cf3070"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Mar 04 12:32:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:58 2009 +0100"
      },
      "message": "tracing: add lockdep tracepoints for lock acquire/release\n\nAugment the traces with lock names when lockdep is available:\n\n 1)               |  down_read_trylock() {\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   4.201 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   3.523 us    |    }\n 1)               |  /* lock_acquire: try read \u0026mm-\u003emmap_sem */\n 1) + 13.386 us   |  }\n 1)   1.635 us    |  find_vma();\n 1)               |  handle_mm_fault() {\n 1)               |    __do_fault() {\n 1)               |      filemap_fault() {\n 1)               |        find_lock_page() {\n 1)               |          find_get_page() {\n 1)               |            /* lock_acquire: read rcu_read_lock */\n 1)               |            /* lock_release: rcu_read_lock */\n 1)   5.697 us    |          }\n 1)   8.158 us    |        }\n 1) + 11.079 us   |      }\n 1)               |      _spin_lock() {\n 1)               |        /* lock_acquire: __pte_lockptr(page) */\n 1)   3.949 us    |      }\n 1)   1.460 us    |      page_add_file_rmap();\n 1)               |      _spin_unlock() {\n 1)               |        /* lock_release: __pte_lockptr(page) */\n 1)   3.115 us    |      }\n 1)               |      unlock_page() {\n 1)   1.421 us    |        page_waitqueue();\n 1)   1.220 us    |        __wake_up_bit();\n 1)   6.519 us    |      }\n 1) + 34.328 us   |    }\n 1) + 37.452 us   |  }\n 1)               |  up_read() {\n 1)               |  /* lock_release: \u0026mm-\u003emmap_sem */\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   3.865 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   8.562 us    |    }\n 1) + 17.370 us   |  }\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003d?ISO-8859-1?Q?T\u003dF6r\u003dF6k?\u003d Edwin \u003cedwintorok@gmail.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236166375.5330.7209.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cadf9135eb3b6d84b6427314be827ddd443c308",
      "tree": "919e201f615b8de6d0263ded5693bad326196671",
      "parents": [
        "474d32b68d6d842f3e710e9ae9fe2568c53339f8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 01 22:20:19 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 21:01:55 2009 -0500"
      },
      "message": "tracing: add binary buffer files for use with splice\n\nImpact: new feature\n\nThis patch creates a directory of files that correspond to the\nper CPU ring buffers. These are binary files and are made to\nbe used with splice. This is the fastest way to extract data from\nthe ftrace ring buffers.\n\nThanks to Jiaying Zhang for pushing me to get this code fixed,\n and to Eduard - Gabriel Munteanu for his splice code that helped\n me debug my code.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "474d32b68d6d842f3e710e9ae9fe2568c53339f8",
      "tree": "674376b2f7a45cf6558879a4985398397dc96e79",
      "parents": [
        "e3d6bf0a0781a269f34250fd41e0d3dbfe540cf1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 19:51:40 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:52:27 2009 -0500"
      },
      "message": "ring-buffer: make ring_buffer_read_page read from start on partial page\n\nImpact: dont leave holes in read buffer page\n\nThe ring_buffer_read_page swaps a given page with the reader page\nof the ring buffer, if certain conditions are set:\n\n 1) requested length is big enough to hold entire page data\n\n 2) a writer is not currently on the page\n\n 3) the page is not partially consumed.\n\nInstead of swapping with the supplied page. It copies the data to\nthe supplied page instead. But currently the data is copied in the\nsame offset as the source page. This causes a hole at the start\nof the reader page. This complicates the use of this function.\nInstead, it should copy the data at the beginning of the function\nand update the index fields accordingly.\n\nOther small clean ups are also done in this patch.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "e3d6bf0a0781a269f34250fd41e0d3dbfe540cf1",
      "tree": "71ae10423f61c30d8a6c9cb08779b2f1066c89ad",
      "parents": [
        "ef7a4a161472b952941bf78855a9cd95703c024e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 13:53:07 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:52:01 2009 -0500"
      },
      "message": "ring-buffer: replace sizeof of event header with offsetof\n\nImpact: fix to possible alignment problems on some archs.\n\nSome arch compilers include an NULL char array in the sizeof field.\nSince the ring_buffer_event type includes one of these, it is better\nto use the \"offsetof\" instead, to avoid strange bugs on these archs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ef7a4a161472b952941bf78855a9cd95703c024e",
      "tree": "17145213ece6872d34951a2d33af6670fc2ae453",
      "parents": [
        "41be4da4e85e58520b934040966a6ae919c66c2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 00:27:49 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:51:24 2009 -0500"
      },
      "message": "ring-buffer: fix ring_buffer_read_page\n\nThe ring_buffer_read_page was broken if it were to only copy part\nof the page. This patch fixes that up as well as adds a parameter\nto allow a length field, in order to only copy part of the buffer page.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "41be4da4e85e58520b934040966a6ae919c66c2d",
      "tree": "5a5b0225111a8e0c083ce9eb129f9786a335a92e",
      "parents": [
        "633ddaa7f471e9db181f993c1458d6f4bae321ca"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 20:56:48 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 20:50:54 2009 -0500"
      },
      "message": "ring-buffer: reset write field for ring_buffer_read_page\n\nImpact: fix ring_buffer_read_page\n\nAfter a page is swapped into the ring buffer, the write field must\nalso be reset.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "633ddaa7f471e9db181f993c1458d6f4bae321ca",
      "tree": "2bf2e419c004cdbce77b1ba3b4cbd5c28cf45bd7",
      "parents": [
        "c79a61f55773d2519fd0525bf58385f7d20752d3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 09:43:50 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 03 09:43:50 2009 -0500"
      },
      "message": "tracing: fix return value to registering events\n\nThe registering of events had the return value check backwards.\nA zero returned is success, the check had it as a failure.\n\nThis patch also fixes a missing \"\\n\" in the warning that the check\nfailed.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "96ccd21cd13140221bda74a4fc4e53ffeba7c7d4",
      "tree": "28a32932731fea14d2ef8ea39dd00cde3ffd6be7",
      "parents": [
        "c5e4e19271edfdf1abd4184933d40d646da6a091"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:22:21 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:22:21 2009 -0500"
      },
      "message": "tracing: add print format to event trace format files\n\nThis patch adds the internal print format used to print the raw events\nto the event trace point format file.\n\n # cat /debug/tracing/events/sched/sched_switch/format\nname: sched_switch\nID: 29\nformat:\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nprint fmt: \"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\"\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c5e4e19271edfdf1abd4184933d40d646da6a091",
      "tree": "1ef485d68971b365a361638df57ee663c631b88f",
      "parents": [
        "91729ef96661bfa7dc53923746cd90b62d5495cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:10:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:10:02 2009 -0500"
      },
      "message": "tracing: add trace name and id to event formats\n\nTo be able to identify the trace in the binary format output, the\nid of the trace event (which is dynamically assigned) must also be listed.\n\nThis patch adds the name of the trace point as well as the id assigned.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "91729ef96661bfa7dc53923746cd90b62d5495cc",
      "tree": "421dcc26559806162b911e09a47f82012833ab89",
      "parents": [
        "981d081ec8b958b7d962ee40d433581a55d40fc5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:03:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 15:03:01 2009 -0500"
      },
      "message": "tracing: add ftrace headers to event format files\n\nThis patch includes the ftrace header to the event formats files:\n\n # cat /debug/tracing/events/sched/sched_switch/format\n        field:unsigned char type;       offset:0;       size:1;\n        field:unsigned char flags;      offset:1;       size:1;\n        field:unsigned char preempt_count;      offset:2;       size:1;\n        field:int pid;  offset:4;       size:4;\n        field:int tgid; offset:8;       size:4;\n\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nA blank line is used as a deliminator between the ftrace header and the\ntrace point fields.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "981d081ec8b958b7d962ee40d433581a55d40fc5",
      "tree": "366aa5da7dc98cc2354002946e6f19ec60c02301",
      "parents": [
        "f9520750c4c9924c14325cd951efae5fae58104c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 13:53:59 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:27:27 2009 -0500"
      },
      "message": "tracing: add format file to describe event struct fields\n\nThis patch adds the \"format\" file to the trace point event directory.\nThis is based off of work by Tom Zanussi, in which a file is exported\nto be tread from user land such that a user space app may read the\nbinary record stored in the ring buffer.\n\n # cat /debug/tracing/events/sched/sched_switch/format\n        field:pid_t prev_pid;   offset:12;      size:4;\n        field:int prev_prio;    offset:16;      size:4;\n        field special:char next_comm[TASK_COMM_LEN];    offset:20;      size:16;\n        field:pid_t next_pid;   offset:36;      size:4;\n        field:int next_prio;    offset:40;      size:4;\n\nIdea-from: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f9520750c4c9924c14325cd951efae5fae58104c",
      "tree": "b6958c13894816db9388f856f101e9f67b3bf1a4",
      "parents": [
        "11a241a3302277db05561e01477528629d806c4e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:04:40 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 14:08:51 2009 -0500"
      },
      "message": "tracing: make trace_seq_reset global and rename to trace_seq_init\n\nImpact: clean up\n\nThe trace_seq functions may be used separately outside of the ftrace\niterator. The trace_seq_reset is needed for these operations.\n\nThis patch also renames trace_seq_reset to the more appropriate\ntrace_seq_init.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "11a241a3302277db05561e01477528629d806c4e",
      "tree": "c48e1bf3c52a94dfa27d301a748ed7d181fc65f9",
      "parents": [
        "d20e3b03842bfeb9d21817ff19054c277cc3eac0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 11:49:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 11:49:04 2009 -0500"
      },
      "message": "tracing: add protection around modify trace event fields\n\nThe trace event objects are currently not proctected against\nreentrancy. This patch adds a mutex around the modifications of\nthe trace event fields.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "d20e3b03842bfeb9d21817ff19054c277cc3eac0",
      "tree": "5de7ef8a95f9391a264df358336842c9301f3868",
      "parents": [
        "f2034f1e1adaac6713a6d48b5a2d4f3aa3e63ccb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 10:53:15 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 10:53:15 2009 -0500"
      },
      "message": "tracing: add TRACE_FIELD_SPECIAL to record complex entries\n\nTom Zanussi pointed out that the simple TRACE_FIELD was not enough to\nrecord trace data that required memcpy. This patch addresses this issue\nby adding a TRACE_FIELD_SPECIAL. The format is similar to TRACE_FIELD\nbut looks like so:\n\n  TRACE_FIELD_SPECIAL(type_item, item, cmd)\n\nWhat TRACE_FIELD gave was:\n\n  TRACE_FIELD(type, item, assign)\n\nThe TRACE_FIELD would be used in declaring a structure:\n\n  struct {\n\ttype\titem;\n  };\n\nAnd later assign it via:\n\n  entry-\u003eitem \u003d assign;\n\nWhat TRACE_FIELD_SPECIAL gives us is:\n\nIn the declaration of the structure:\n\n  struct {\n\ttype_item;\n  };\n\nAnd the assignment:\n\n  cmd;\n\nThis change log will explain the one example used in the patch:\n\n TRACE_EVENT_FORMAT(sched_switch,\n\tTPPROTO(struct rq *rq, struct task_struct *prev,\n\t\tstruct task_struct *next),\n\tTPARGS(rq, prev, next),\n\tTPFMT(\"task %s:%d \u003d\u003d\u003e %s:%d\",\n\t      prev-\u003ecomm, prev-\u003epid, next-\u003ecomm, next-\u003epid),\n\tTRACE_STRUCT(\n\t\tTRACE_FIELD(pid_t, prev_pid, prev-\u003epid)\n\t\tTRACE_FIELD(int, prev_prio, prev-\u003eprio)\n\t\tTRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],\n\t\t\t\t    next_comm,\n\t\t\t\t    TPCMD(memcpy(TRACE_ENTRY-\u003enext_comm,\n\t\t\t\t\t\t next-\u003ecomm,\n\t\t\t\t\t\t TASK_COMM_LEN)))\n\t\tTRACE_FIELD(pid_t, next_pid, next-\u003epid)\n\t\tTRACE_FIELD(int, next_prio, next-\u003eprio)\n\t),\n\tTPRAWFMT(\"prev %d:%d \u003d\u003d\u003e next %s:%d:%d\")\n\t);\n\n The struct will be create as:\n\n  struct {\n\tpid_t\t\tprev_pid;\n\tint\t\tprev_prio;\n\tchar next_comm[TASK_COMM_LEN];\n\tpid_t\t\tnext_pid;\n\tint\t\tnext_prio;\n  };\n\nNote the TRACE_ENTRY in the cmd part of TRACE_SPECIAL. TRACE_ENTRY will\nbe set by the tracer to point to the structure inside the trace buffer.\n\n  entry-\u003eprev_pid\t\u003d prev-\u003epid;\n  entry-\u003eprev_prio\t\u003d prev-\u003eprio;\n  memcpy(entry-\u003enext_comm, next-\u003ecomm, TASK_COMM_LEN);\n  entry-\u003enext_pid\t\u003d next-\u003epid;\n  entry-\u003enext_prio\t\u003d next-\u003eprio\n\nReported-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "fd99498989f3b3feeab89dcadf537138ba136d24",
      "tree": "9470e9b4e886466511d47a70281e77e5a8c674ff",
      "parents": [
        "c32e827b25054cb17b79cf97fb5e63ae4ce2223c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:41:25 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 04:04:03 2009 -0500"
      },
      "message": "tracing: add raw fast tracing interface for trace events\n\nThis patch adds the interface to enable the C style trace points.\nIn the directory /debugfs/tracing/events/subsystem/event\nWe now have three files:\n\n enable : values 0 or 1 to enable or disable the trace event.\n\n available_types: values \u0027raw\u0027 and \u0027printf\u0027 which indicate the tracing\n       types available for the trace point. If a developer does not\n       use the TRACE_EVENT_FORMAT macro and just uses the TRACE_FORMAT\n       macro, then only \u0027printf\u0027 will be available. This file is\n       read only.\n\n type: values \u0027raw\u0027 or \u0027printf\u0027. This indicates which type of tracing\n       is active for that trace point. \u0027printf\u0027 is the default and\n       if \u0027raw\u0027 is not available, this file is read only.\n\n # echo raw \u003e /debug/tracing/events/sched/sched_wakeup/type\n # echo 1 \u003e /debug/tracing/events/sched/sched_wakeup/enable\n\n Will enable the C style tracing for the sched_wakeup trace point.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c32e827b25054cb17b79cf97fb5e63ae4ce2223c",
      "tree": "9a79a8662d88557303a671d147f80038b5fd87dc",
      "parents": [
        "ef5580d0fffce6e0a01043bac0625128b5d409a7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 19:12:30 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:09:32 2009 -0500"
      },
      "message": "tracing: add raw trace point recording infrastructure\n\nImpact: lower overhead tracing\n\nThe current event tracer can automatically pick up trace points\nthat are registered with the TRACE_FORMAT macro. But it required\na printf format string and parsing. Although, this adds the ability\nto get guaranteed information like task names and such, it took\na hit in overhead processing. This processing can add about 500-1000\nnanoseconds overhead, but in some cases that too is considered\ntoo much and we want to shave off as much from this overhead as\npossible.\n\nTom Zanussi recently posted tracing patches to lkml that are based\non a nice idea about capturing the data via C structs using\nSTRUCT_ENTER, STRUCT_EXIT type of macros.\n\nI liked that method very much, but did not like the implementation\nthat required a developer to add data/code in several disjoint\nlocations.\n\nThis patch extends the event_tracer macros to do a similar \"raw C\"\napproach that Tom Zanussi did. But instead of having the developers\nneeding to tweak a bunch of code all over the place, they can do it\nall in one macro - preferably placed near the code that it is\ntracing. That makes it much more likely that tracepoints will be\nmaintained on an ongoing basis by the code they modify.\n\nThe new macro TRACE_EVENT_FORMAT is created for this approach. (Note,\na developer may still utilize the more low level DECLARE_TRACE macros\nif they don\u0027t care about getting their traces automatically in the event\ntracer.)\n\nThey can also use the existing TRACE_FORMAT if they don\u0027t need to code\nthe tracepoint in C, but just want to use the convenience of printf.\n\nSo if the developer wants to \"hardwire\" a tracepoint in the fastest\npossible way, and wants to acquire their data via a user space utility\nin a raw binary format, or wants to see it in the trace output but not\nsacrifice any performance, then they can implement the faster but\nmore complex TRACE_EVENT_FORMAT macro.\n\nHere\u0027s what usage looks like:\n\n  TRACE_EVENT_FORMAT(name,\n\tTPPROTO(proto),\n\tTPARGS(args),\n\tTPFMT(fmt, fmt_args),\n\tTRACE_STUCT(\n\t\tTRACE_FIELD(type1, item1, assign1)\n\t\tTRACE_FIELD(type2, item2, assign2)\n\t\t\t[...]\n\t),\n\tTPRAWFMT(raw_fmt)\n\t);\n\nNote name, proto, args, and fmt, are all identical to what TRACE_FORMAT\nuses.\n\n name: is the unique identifier of the trace point\n proto: The proto type that the trace point uses\n args: the args in the proto type\n fmt: printf format to use with the event printf tracer\n fmt_args: the printf argments to match fmt\n\n TRACE_STRUCT starts the ability to create a structure.\n Each item in the structure is defined with a TRACE_FIELD\n\n  TRACE_FIELD(type, item, assign)\n\n type: the C type of item.\n item: the name of the item in the stucture\n assign: what to assign the item in the trace point callback\n\n raw_fmt is a way to pretty print the struct. It must match\n  the order of the items are added in TRACE_STUCT\n\n An example of this would be:\n\n TRACE_EVENT_FORMAT(sched_wakeup,\n\tTPPROTO(struct rq *rq, struct task_struct *p, int success),\n\tTPARGS(rq, p, success),\n\tTPFMT(\"task %s:%d %s\",\n\t      p-\u003ecomm, p-\u003epid, success?\"succeeded\":\"failed\"),\n\tTRACE_STRUCT(\n\t\tTRACE_FIELD(pid_t, pid, p-\u003epid)\n\t\tTRACE_FIELD(int, success, success)\n\t),\n\tTPRAWFMT(\"task %d success\u003d%d\")\n\t);\n\n This creates us a unique struct of:\n\n struct {\n\tpid_t\t\tpid;\n\tint\t\tsuccess;\n };\n\n And the way the call back would assign these values would be:\n\n\tentry-\u003epid \u003d p-\u003epid;\n\tentry-\u003esuccess \u003d success;\n\nThe nice part about this is that the creation of the assignent is done\nvia macro magic in the event tracer.  Once the TRACE_EVENT_FORMAT is\ncreated, the developer will then have a faster method to record\ninto the ring buffer. They do not need to worry about the tracer itself.\n\nThe developer would only need to touch the files in include/trace/*.h\n\nAgain, I would like to give special thanks to Tom Zanussi for this\nnice idea.\n\nIdea-from: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ef5580d0fffce6e0a01043bac0625128b5d409a7",
      "tree": "bc6ca68064d6b5c9853227ef876b391cc8b0c939",
      "parents": [
        "3d7ba938da8481b4f7f9ed3d943dbae49389b284"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 19:38:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:06:44 2009 -0500"
      },
      "message": "tracing: add interface to write into current tracer buffer\n\nRight now all tracers must manage their own trace buffers. This was\nto enforce tracers to be independent in case we finally decide to\nallow each tracer to have their own trace buffer.\n\nBut now we are adding event tracing that writes to the current tracer\u0027s\nbuffer. This adds an interface to allow events to write to the current\ntracer buffer without having to manage its own. Since event tracing\nhas no \"tracer\", and is just a way to hook into any other tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b628b3e629b1436710e59a21cc020fbb04a52ce1",
      "tree": "43cbe737f8d81c8499c406961603e6be1e2dfc05",
      "parents": [
        "6ecc2d1ca39177edb6fbdb7412948b0e9f409d02"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 23:32:58 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 03:05:40 2009 -0500"
      },
      "message": "tracing: make the set_event and available_events subsystem aware\n\nThis patch makes the event files, set_event and available_events\naware of the subsystem.\n\nNow you can enable an entire subsystem with:\n\n  echo \u0027irq:*\u0027 \u003e set_event\n\nNote: the \u0027*\u0027 is not needed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "6ecc2d1ca39177edb6fbdb7412948b0e9f409d02",
      "tree": "336a12a2f3db016f967717e1cb06e9171a239ce5",
      "parents": [
        "eb594e45f6979cd10b18d87f7b3f02119e00a108"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 21:33:02 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:59:43 2009 -0500"
      },
      "message": "tracing: add subsystem level to trace events\n\nIf a trace point header defines TRACE_SYSTEM, then it will add the\nfollowing trace points into that event system.\n\nIf include/trace/irq_event_types.h has:\n\n #define TRACE_SYSTEM irq\n\nat the top and\n\n #undef TRACE_SYSTEM\n\nat the bottom, then a directory \"irq\" will be created in the\n/debug/tracing/events directory. Inside that directory will contain the\ntwo trace points that are defined in include/trace/irq_event_types.h.\n\nOnly adding the above to irq and not to sched, we get:\n\n # ls /debug/tracing/events/\nirq                     sched_process_exit  sched_signal_send  sched_wakeup_new\nsched_kthread_stop      sched_process_fork  sched_switch\nsched_kthread_stop_ret  sched_process_free  sched_wait_task\nsched_migrate_task      sched_process_wait  sched_wakeup\n\n # ls /debug/tracing/events/irq\nirq_handler_entry  irq_handler_exit\n\nIf we add #define TRACE_SYSTEM sched to the trace/sched_event_types.h\nthen the rest of the trace events will be put in a sched directory\nwithin the events directory.\n\nI\u0027ve been playing with this idea of the subsystem for a while, but\nrecently Tom Zanussi posted some patches to lkml that included this\nmethod. Tom\u0027s approach was clean and got me to finally put some effort\nto clean up the event trace points.\n\nThanks to Tom Zanussi for demonstrating how nice the subsystem\nmethod is.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "eb594e45f6979cd10b18d87f7b3f02119e00a108",
      "tree": "eb27cea51205ad527a0b1582c9b02d434f7129bc",
      "parents": [
        "0cfe82451dfa3ebf4e69158f2eb450f2fbb6b715"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 17:36:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 28 02:58:50 2009 -0500"
      },
      "message": "tracing: move trace point formats to files in include/trace directory\n\nImpact: clean up\n\nTo further facilitate the ease of adding trace points for developers, this\npatch creates include/trace/trace_events.h and\ninclude/trace/trace_event_types.h.\n\nThe former file will hold the trace/\u003ctype\u003e.h files and the latter will hold\nthe trace/\u003ctype\u003e_event_types.h files.\n\nTo create new tracepoints and to have them automatically\nappear in the event tracer, a developer makes the trace/\u003ctype\u003e.h file\nwhich includes \u003clinux/tracepoint.h\u003e and the trace/\u003ctype\u003e_event_types.h file.\n\nThe trace/\u003ctype\u003e_event_types.h file will hold the TRACE_FORMAT\nmacros.\n\nThen add the trace/\u003ctype\u003e.h file to trace/trace_events.h,\nand add the trace/\u003ctype\u003e_event_types.h to the trace_event_types.h file.\n\nNo need to modify files elsewhere.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "0cfe82451dfa3ebf4e69158f2eb450f2fbb6b715",
      "tree": "fc2db4892024f1d896f8ea0de3c4903a1c6543da",
      "parents": [
        "5c6a3ae1b4beebb56e2916b84f1208d96a9e32ff"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 10:51:10 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 10:51:10 2009 -0500"
      },
      "message": "tracing: replace kzalloc with kcalloc\n\nImpact: clean up\n\nkcalloc is a better approach to allocate a NULL array.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "5c6a3ae1b4beebb56e2916b84f1208d96a9e32ff",
      "tree": "6267a70386ce9e97e0034eea3754ea24429e971c",
      "parents": [
        "85a2f9b46f8cd8aaa11c64c715e1ea3ec27ec486"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:22:21 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 27 00:22:21 2009 -0500"
      },
      "message": "tracing: use newline separator for trace options list\n\nImpact: clean up\n\nInstead of listing the trace options like:\n\n # cat /debug/tracing/trace_options\nprint-parent nosym-offset nosym-addr noverbose noraw nohex nobin noblock nostacktrace nosched-tree ftrace_printk noftrace_preempt nobranch annotate nouserstacktrace nosym-userobj\n\nWe now list them like:\n\n # cat /debug/tracing/trace_options\nprint-parent\nnosym-offset\nnosym-addr\nnoverbose\nnoraw\nnohex\nnobin\nnoblock\nnostacktrace\nnosched-tree\nftrace_printk\nnoftrace_preempt\nnobranch\nannotate\nnouserstacktrace\nnosym-userobj\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    }
  ],
  "next": "85a2f9b46f8cd8aaa11c64c715e1ea3ec27ec486"
}
