)]}'
{
  "log": [
    {
      "commit": "96de37b62ca525cd77d2e85aea1472846ee31c4d",
      "tree": "a162434d8272c749fef9da92f44aa02a76b9f360",
      "parents": [
        "38b78eb855409a05f9d370228bec1955e6878e08"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Jan 07 17:26:49 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Jan 07 17:26:49 2012 -0500"
      },
      "message": "tracing: Fix compile error when static ftrace is enabled\n\nThe stack tracer uses the call ftrace_set_early_filter() function\nto allow the stack tracer to pick its own functions on boot.\nBut this function is not defined if dynamic ftrace is not set.\nThis causes a compiler error when stack tracer is enabled and\ndynamic ftrace is not.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2a85a37f168d2b4d74d493b578af4dc9032be92e",
      "tree": "26ed7136e9092e61ae693e117a540045ec5d54a0",
      "parents": [
        "d2d45c7a03a2b1a14159cbb665e9dd60991a7d4f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 21:57:44 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:26:35 2011 -0500"
      },
      "message": "ftrace: Allow access to the boot time function enabling\n\nChange set_ftrace_early_filter() to ftrace_set_early_filter()\nand make it a global function. This will allow other subsystems\nin the kernel to be able to enable function tracing at start\nup and reuse the ftrace function parsing code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "69a3083c4a7df0322d97bb2b43a33cb12af8131a",
      "tree": "96b0c48178e812819a2f8d8ccf4600997be41fbb",
      "parents": [
        "fc13cb0ce45296f331263a6034aa1814203e1ac3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 15:21:16 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:25:24 2011 -0500"
      },
      "message": "ftrace: Decouple hash items from showing filtered functions\n\nThe set_ftrace_filter shows \"hashed\" functions, which are functions\nthat are added with operations to them (like traceon and traceoff).\n\nAs other subsystems may be able to show what functions they are\nusing for function tracing, the hash items should no longer\nbe shown just because the FILTER flag is set. As they have nothing\nto do with other subsystems filters.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "fc13cb0ce45296f331263a6034aa1814203e1ac3",
      "tree": "2c66d6296ee01bcbd27cb9df4b72885339300ba6",
      "parents": [
        "06a51d9307380c78bb5c92e68fc80ad2c7d7f890"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 14:41:25 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:25:06 2011 -0500"
      },
      "message": "ftrace: Allow other users of function tracing to use the output listing\n\nThe function tracer is set up to allow any other subsystem (like perf)\nto use it. Ftrace already has a way to list what functions are enabled\nby the global_ops. It would be very helpful to let other users of\nthe function tracer to be able to use the same code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "85ae32ae019bc1c2cc22e5f51fe0c9f2812ef68c",
      "tree": "38ce2528dd0af0190e61cbf1dcc9f6d0c4ac3cf6",
      "parents": [
        "a79008755497daff157f5294c02e3b940641cc11"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 16:30:31 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:19:03 2011 -0500"
      },
      "message": "ftrace: Replace record newlist with record page list\n\nAs new functions come in to be initalized from mcount to nop,\nthey are done by groups of pages. Whether it is the core kernel\nor a module. There\u0027s no need to keep track of these on a per record\nbasis.\n\nAt startup, and as any module is loaded, the functions to be\ntraced are stored in a group of pages and added to the function\nlist at the end. We just need to keep a pointer to the first\npage of the list that was added, and use that to know where to\nstart on the list for initializing functions.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3208230983a0ee3d95be22d463257e530c684956",
      "tree": "fdba765e348c53a4fd65094ac17e66061f0b8932",
      "parents": [
        "c88fd8634ea68e74c7d19fd2621b4078fd22864c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 16 14:42:37 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:17:57 2011 -0500"
      },
      "message": "ftrace: Remove usage of \"freed\" records\n\nRecords that are added to the function trace table are\npermanently there, except for modules. By separating out the\nmodules to their own pages that can be freed in one shot\nwe can remove the \"freed\" flag and simplify some of the record\nmanagement.\n\nAnother benefit of doing this is that we can also move the\nrecords around; sort them.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c88fd8634ea68e74c7d19fd2621b4078fd22864c",
      "tree": "9d8bbc57d20eec9869a9655ff79cc1c4d6359b88",
      "parents": [
        "45959ee7aa645815a5ce303a0ea1e48a21e67c6a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Aug 16 09:53:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:16:58 2011 -0500"
      },
      "message": "ftrace: Allow archs to modify code without stop machine\n\nThe stop machine method to modify all functions in the kernel\n(some 20,000 of them) is the safest way to do so across all archs.\nBut some archs may not need this big hammer approach to modify code\non SMP machines, and can simply just update the code it needs.\n\nAdding a weak function arch_ftrace_update_code() that now does the\nstop machine, will also let any arch override this method.\n\nIf the arch needs to check the system and then decide if it can\navoid stop machine, it can still call ftrace_run_stop_machine() to\nuse the old method.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "de47725421ad5627a5c905f4e40bb844ebc06d29",
      "tree": "bc23b0405d4a79dcc866a8b2877f128ee0ea9ffc",
      "parents": [
        "eb5589a8f0dab7e29021344228856339e6a1249c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 13:46:22 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:32:32 2011 -0400"
      },
      "message": "include: replace linux/module.h with \"struct module\" wherever possible\n\nThe \u003clinux/module.h\u003e pretty much brings in the kitchen sink along\nwith it, so it should be avoided wherever reasonably possible in\nterms of being included from other commonly used \u003clinux/something.h\u003e\nfiles, as it results in a measureable increase on compile times.\n\nThe worst culprit was probably device.h since it is used everywhere.\nThis file also had an implicit dependency/usage of mutex.h which was\nmasked by module.h, and is also fixed here at the same time.\n\nThere are over a dozen other headers that simply declare the\nstruct instead of pulling in the whole file, so follow their lead\nand simply make it a few more.\n\nMost of the implicit dependencies on module.h being present by\nthese headers pulling it in have been now weeded out, so we can\nfinally make this change with hopefully minimal breakage.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "04da85b86188f224cc9b391b5bdd92a3ba20ffcf",
      "tree": "538b02f08786e2d598458112ca97cbe4a2a7b3f3",
      "parents": [
        "43dd61c9a09bd413e837df829e6bfb42159be52a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jul 11 10:12:59 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 11 10:12:59 2011 -0400"
      },
      "message": "ftrace: Fix warning when CONFIG_FUNCTION_TRACER is not defined\n\nThe struct ftrace_hash was declared within CONFIG_FUNCTION_TRACER\nbut was referenced outside of it.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "43dd61c9a09bd413e837df829e6bfb42159be52a",
      "tree": "613b8ceaf798c87a4fac4ff66dc2ac0e13c3e46b",
      "parents": [
        "40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 07 11:09:22 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:30:08 2011 -0400"
      },
      "message": "ftrace: Fix regression of :mod:module function enabling\n\nThe new code that allows different utilities to pick and choose\nwhat functions they trace broke the :mod: hook that allows users\nto trace only functions of a particular module.\n\nThe reason is that the :mod: hook bypasses the hash that is setup\nto allow individual users to trace their own functions and uses\nthe global hash directly. But if the global hash has not been\nset up, it will cause a bug:\n\necho \u0027*:mod:radeon\u0027 \u003e /sys/kernel/debug/set_ftrace_filter\n\nproduces:\n\n [drm:drm_mode_getfb] *ERROR* invalid framebuffer id\n [drm:radeon_crtc_page_flip] *ERROR* failed to reserve new rbo buffer before flip\n BUG: unable to handle kernel paging request at ffffffff8160ec90\n IP: [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n PGD 1a05067 PUD 1a09063 PMD 80000000016001e1\n Oops: 0003 [#1] SMP Jul  7 04:02:28 phyllis kernel: [55303.858604] CPU 1\n Modules linked in: cryptd aes_x86_64 aes_generic binfmt_misc rfcomm bnep ip6table_filter hid radeon r8169 ahci libahci mii ttm drm_kms_helper drm video i2c_algo_bit intel_agp intel_gtt\n\n Pid: 10344, comm: bash Tainted: G        WC  3.0.0-rc5 #1 Dell Inc. Inspiron N5010/0YXXJJ\n RIP: 0010:[\u003cffffffff810d9136\u003e]  [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n RSP: 0018:ffff88003a96bda8  EFLAGS: 00010246\n RAX: ffff8801301735c0 RBX: ffffffff8160ec80 RCX: 0000000000306ee0\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880137c92940\n RBP: ffff88003a96bdb8 R08: ffff880137c95680 R09: 0000000000000000\n R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff81c9df78\n R13: ffff8801153d1000 R14: 0000000000000000 R15: 0000000000000000\n FS: 00007f329c18a700(0000) GS:ffff880137c80000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: ffffffff8160ec90 CR3: 000000003002b000 CR4: 00000000000006e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process bash (pid: 10344, threadinfo ffff88003a96a000, task ffff88012fcfc470)\n Stack:\n  0000000000000fd0 00000000000000fc ffff88003a96be38 ffffffff810d92f5\n  ffff88011c4c4e00 ffff880000000000 000000000b69f4d0 ffffffff8160ec80\n  ffff8800300e6f06 0000000081130295 0000000000000282 ffff8800300e6f00\n Call Trace:\n  [\u003cffffffff810d92f5\u003e] match_records+0x155/0x1b0\n  [\u003cffffffff810d940c\u003e] ftrace_mod_callback+0xbc/0x100\n  [\u003cffffffff810dafdf\u003e] ftrace_regex_write+0x16f/0x210\n  [\u003cffffffff810db09f\u003e] ftrace_filter_write+0xf/0x20\n  [\u003cffffffff81166e48\u003e] vfs_write+0xc8/0x190\n  [\u003cffffffff81167001\u003e] sys_write+0x51/0x90\n  [\u003cffffffff815c7e02\u003e] system_call_fastpath+0x16/0x1b\n Code: 48 8b 33 31 d2 48 85 f6 75 33 49 89 d4 4c 03 63 08 49 8b 14 24 48 85 d2 48 89 10 74 04 48 89 42 08 49 89 04 24 4c 89 60 08 31 d2\n RIP [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n  RSP \u003cffff88003a96bda8\u003e\n CR2: ffffffff8160ec90\n ---[ end trace a5d031828efdd88e ]---\n\nReported-by: Brian Marete \u003cmarete@toshnix.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "936e074b286ae779f134312178dbab139ee7ea52",
      "tree": "6b0497be4d5e6258ad9b1ec99b2a9feb25b2dd22",
      "parents": [
        "cdbe61bfe70440939e457fb4a8d0995eaaed17de"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 05 22:54:01 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 19:22:52 2011 -0400"
      },
      "message": "ftrace: Modify ftrace_set_filter/notrace to take ops\n\nSince users of the function tracer can now pick and choose which\nfunctions they want to trace agnostically from other users of the\nfunction tracer, we need to pass the ops struct to the ftrace_set_filter()\nfunctions.\n\nThe functions ftrace_set_global_filter() and ftrace_set_global_notrace()\nis added to keep the old filter functions which are used to modify\nthe generic function tracers.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cdbe61bfe70440939e457fb4a8d0995eaaed17de",
      "tree": "6e82066db25ab6fa42455a42bb77783dac5260b8",
      "parents": [
        "b848914ce39589d89ee0078a6d1ef452b464729e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 05 21:14:55 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:51 2011 -0400"
      },
      "message": "ftrace: Allow dynamically allocated function tracers\n\nNow that functions may be selected individually, it only makes sense\nthat we should allow dynamically allocated trace structures to\nbe traced. This will allow perf to allocate a ftrace_ops structure\nat runtime and use it to pick and choose which functions that\nstructure will trace.\n\nNote, a dynamically allocated ftrace_ops will always be called\nindirectly instead of being called directly from the mcount in\nentry.S. This is because there\u0027s no safe way to prevent mcount\nfrom being preempted before calling the function, unless we\nmodify every entry.S to do so (not likely). Thus, dynamically allocated\nfunctions will now be called by the ftrace_ops_list_func() that\nloops through the ops that are allocated if there are more than\none op allocated at a time. This loop is protected with a\npreempt_disable.\n\nTo determine if an ftrace_ops structure is allocated or not, a new\nutil function was added to the kernel/extable.c called\ncore_kernel_data(), which returns 1 if the address is between\n_sdata and _edata.\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b848914ce39589d89ee0078a6d1ef452b464729e",
      "tree": "542bf09ae3c2d9118833132621585fb458e2a003",
      "parents": [
        "07fd5515f3b5c20704707f63e7f4485b534508a8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed May 04 09:27:52 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:50 2011 -0400"
      },
      "message": "ftrace: Implement separate user function filtering\n\nftrace_ops that are registered to trace functions can now be\nagnostic to each other in respect to what functions they trace.\nEach ops has their own hash of the functions they want to trace\nand a hash to what they do not want to trace. A empty hash for\nthe functions they want to trace denotes all functions should\nbe traced that are not in the notrace hash.\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ed926f9b35cda0988234c356e16a7cb30f4e5338",
      "tree": "32169b7aaf6b0ef7815b095a544cce93e884bb73",
      "parents": [
        "33dc9b1267d59cef46ff0bd6bc043190845dc919"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 03 13:25:24 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:47 2011 -0400"
      },
      "message": "ftrace: Use counters to enable functions to trace\n\nEvery function has its own record that stores the instruction\npointer and flags for the function to be traced. There are only\ntwo flags: enabled and free. The enabled flag states that tracing\nfor the function has been enabled (actively traced), and the free\nflag states that the record no longer points to a function and can\nbe used by new functions (loaded modules).\n\nThese flags are now moved to the MSB of the flags (actually just\nthe top 32bits). The rest of the bits (30 bits) are now used as\na ref counter. Everytime a tracer register functions to trace,\nthose functions will have its counter incremented.\n\nWhen tracing is enabled, to determine if a function should be traced,\nthe counter is examined, and if it is non-zero it is set to trace.\n\nWhen a ftrace_ops is registered to trace functions, its hashes\nare examined. If the ftrace_ops filter_hash count is zero, then\nall functions are set to be traced, otherwise only the functions\nin the hash are to be traced. The exception to this is if a function\nis also in the ftrace_ops notrace_hash. Then that function\u0027s counter\nis not incremented for this ftrace_ops.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f45948e898e7bc76a73a468796d2ce80dd040058",
      "tree": "483979d8030cc2cf156ed65218c03a2d6825d9f5",
      "parents": [
        "1cf41dd79993389b012e4542ab502ce36ae7343f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 02 12:29:25 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:45 2011 -0400"
      },
      "message": "ftrace: Create a global_ops to hold the filter and notrace hashes\n\nCombine the filter and notrace hashes to be accessed by a single entity,\nthe global_ops. The global_ops is a ftrace_ops structure that is passed\nto different functions that can read or modify the filtering of the\nfunction tracer.\n\nThe ftrace_ops structure was modified to hold a filter and notrace\nhashes so that later patches may allow each ftrace_ops to have its own\nset of rules to what functions may be filtered.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1cf41dd79993389b012e4542ab502ce36ae7343f",
      "tree": "e1d0b58b2256d5936cff0c9d29ca8f68a80cedd8",
      "parents": [
        "b448c4e3ae6d20108dba1d7833f2c0d3dbad87ce"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 29 20:59:51 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:44 2011 -0400"
      },
      "message": "ftrace: Use hash instead for FTRACE_FL_FILTER\n\nWhen multiple users are allowed to have their own set of functions\nto trace, having the FTRACE_FL_FILTER flag will not be enough to\nhandle the accounting of those users. Each user will need their own\nset of functions.\n\nReplace the FTRACE_FL_FILTER with a filter_hash instead. This is\ntemporary until the rest of the function filtering accounting\ngets in.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b448c4e3ae6d20108dba1d7833f2c0d3dbad87ce",
      "tree": "504e5a3640328458e652e41cfd2ed74e4652e5b3",
      "parents": [
        "94692349c4fc1bc74c19a28f9379509361a06a3b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 29 15:12:32 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 18 15:29:44 2011 -0400"
      },
      "message": "ftrace: Replace FTRACE_FL_NOTRACE flag with a hash of ignored functions\n\nTo prepare for the accounting system that will allow multiple users of\nthe function tracer, having the FTRACE_FL_NOTRACE as a flag in the\ndyn_trace record does not make sense.\n\nAll ftrace_ops will soon have a hash of functions they should trace\nand not trace. By making a global hash of functions not to trace makes\nthis easier for the transition.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d2c8c3eafbf715306ec891e7ca52d3d999acbe31",
      "tree": "1dd5b7ae74f1dd951b542df3eb455af445a349c1",
      "parents": [
        "45a4a2372b364107cabea79f255b333236626416"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 25 14:32:42 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 29 22:53:04 2011 -0400"
      },
      "message": "ftrace: Remove FTRACE_FL_CONVERTED flag\n\nSince we disable all function tracer processing if we detect\nthat a modification of a instruction had failed, we do not need\nto track that the record has failed. No more ftrace processing\nis allowed, and the FTRACE_FL_CONVERTED flag is pointless.\n\nThe FTRACE_FL_CONVERTED flag was used to denote records that were\nsuccessfully converted from mcount calls into nops. But if a single\nrecord fails, all of ftrace is disabled.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "45a4a2372b364107cabea79f255b333236626416",
      "tree": "dfe3e1c3b55451fedc8896aaa8359677d583a0e5",
      "parents": [
        "3499e461147636bf55c41128d83b679ac6ab2d86"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 21 23:16:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 29 22:53:01 2011 -0400"
      },
      "message": "ftrace: Remove FTRACE_FL_FAILED flag\n\nSince we disable all function tracer processing if we detect\nthat a modification of a instruction had failed, we do not need\nto track that the record has failed. No more ftrace processing\nis allowed, and the FTRACE_FL_FAILED flag is pointless.\n\nRemoving this flag simplifies some of the code, but some ftrace_disabled\nchecks needed to be added or move around a little.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "868baf07b1a259f5f3803c1dc2777b6c358f83cf",
      "tree": "a97caf3db1095ceb806ba53ba7d88d47a153e1b8",
      "parents": [
        "862b6f62bf0cd768910b087f6d051f420206c4d6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Feb 10 21:26:13 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 11 16:23:33 2011 -0500"
      },
      "message": "ftrace: Fix memory leak with function graph and cpu hotplug\n\nWhen the fuction graph tracer starts, it needs to make a special\nstack for each task to save the real return values of the tasks.\nAll running tasks have this stack created, as well as any new\ntasks.\n\nOn CPU hot plug, the new idle task will allocate a stack as well\nwhen init_idle() is called. The problem is that cpu hotplug does\nnot create a new idle_task. Instead it uses the idle task that\nexisted when the cpu went down.\n\nftrace_graph_init_task() will add a new ret_stack to the task\nthat is given to it. Because a clone will make the task\nhave a stack of its parent it does not check if the task\u0027s\nret_stack is already NULL or not. When the CPU hotplug code\nstarts a CPU up again, it will allocate a new stack even\nthough one already existed for it.\n\nThe solution is to treat the idle_task specially. In fact, the\nfunction_graph code already does, just not at init_idle().\nInstead of using the ftrace_graph_init_task() for the idle task,\nwhich that function expects the task to be a clone, have a\nseparate ftrace_graph_init_idle_task(). Also, we will create a\nper_cpu ret_stack that is used by the idle task. When we call\nftrace_graph_init_idle_task() it will check if the idle task\u0027s\nret_stack is NULL, if it is, then it will assign it the per_cpu\nret_stack.\n\nReported-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9849ed4d72251d273524efb8b70be0be9aecb1df",
      "tree": "8162927a3f8a35e543cc1937e07c2354b34a9e96",
      "parents": [
        "ef710e100c1068d3dd5774d2b34c5485219e06ce"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 20 03:13:35 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 21 11:00:25 2010 -0400"
      },
      "message": "tracing/documentation: Document dynamic ftracer internals\n\nAdd more details to the dynamic function tracing design implementation.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nLKML-Reference: \u003c1279610015-10250-1-git-send-email-vapier@gentoo.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "752f114fb83c5839de37a250b4f8257ed5438341",
      "tree": "c565c3b6670d21ad7f5cd6cdda5864a76d3f2e0c",
      "parents": [
        "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
        "ad56b0797e67df5e04b2f1a1e02900145c5c16f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix \"integer as NULL pointer\" warning.\n  tracing: Fix tracepoint.h DECLARE_TRACE() to allow more than one header\n  tracing: Make the documentation clear on trace_event boot option\n  ring-buffer: Wrap open-coded WARN_ONCE\n  tracing: Convert nop macros to static inlines\n  tracing: Fix sleep time function profiling\n  tracing: Show sample std dev in function profiling\n  tracing: Add documentation for trace commands mod, traceon/traceoff\n  ring-buffer: Make benchmark handle missed events\n  ring-buffer: Make non-consuming read less expensive with lots of cpus.\n  tracing: Add graph output support for irqsoff tracer\n  tracing: Have graph flags passed in to ouput functions\n  tracing: Add ftrace events for graph tracer\n  tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n  tracing: Fix uninitialized variable of tracing/trace output\n"
    },
    {
      "commit": "4dbf6bc239c169b032777616806ecc648058f6b2",
      "tree": "5de26b60ca9a2f890443b81b0b8f989a63cc8ad9",
      "parents": [
        "37e44bc50d91df1fe7edcf6f02fe168c6d802e64"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue May 04 11:24:01 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 04 11:24:01 2010 -0400"
      },
      "message": "tracing: Convert nop macros to static inlines\n\nThe ftrace.h file contains several functions as macros when the\nfunctions are disabled due to config options. This patch converts\nmost of them to static inlines.\n\nThere are two exceptions:\n\n  register_ftrace_function() and unregister_ftrace_function()\n\nThis is because their parameter \"ops\" must not be evaluated since\ncode using the function is allowed to #ifdef out the creation of\nthe parameter.\n\nThis also fixes an error caused by recent changes:\n\n kernel/trace/trace_irqsoff.c: In function \u0027start_irqsoff_tracer\u0027:\n kernel/trace/trace_irqsoff.c:571: error: expected expression before \u0027do\u0027\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "62b915f1060996a8e1f69be50e3b8e9e43b710cb",
      "tree": "26741f065b30b67022d680c3bc2afbda319638e1",
      "parents": [
        "d7a8d9e907cc294ec7a4a7046d1886375fbcc82e"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Apr 02 19:01:22 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 12:36:53 2010 -0400"
      },
      "message": "tracing: Add graph output support for irqsoff tracer\n\nAdd function graph output to irqsoff tracer.\n\nThe graph output is enabled by setting new \u0027display-graph\u0027 trace option.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1270227683-14631-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cecbca96da387428e220e307a9c945e37e2f4d9e",
      "tree": "2edefda983658c19a8f2b38ff951a3046597a4f7",
      "parents": [
        "b15c7b1cee119999e9eafcd602d24a595e77adac"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 18 19:08:41 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 21 23:11:42 2010 +0200"
      },
      "message": "tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n\nThe ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one\ndump every cpu buffers when an oops or panic happens.\n\nIt\u0027s nice when you have few cpus but it may take ages if have many,\nplus you miss the real origin of the problem in all the cpu traces.\n\nSometimes, all you need is to dump the cpu buffer that triggered the\nopps, most of the time it is our main interest.\n\nThis patch modifies ftrace_dump_on_oops to handle this choice.\n\nThe ftrace_dump_on_oops kernel parameter, when it comes alone, has\nthe same behaviour than before. But ftrace_dump_on_oops\u003dorig_cpu\nwill only dump the buffer of the cpu that oops\u0027ed.\n\nSimilarly, sysctl kernel.ftrace_dump_on_oops\u003d1 and\necho 1 \u003e /proc/sys/kernel/ftrace_dump_on_oops keep their previous\nbehaviour. But setting 2 jumps into cpu origin dump mode.\n\nv2: Fix double setup\nv3: Fix spelling issues reported by Randy Dunlap\nv4: Also update __ftrace_dump in the selftests\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "faa4602e47690fb11221e00f9b9697c8dc0d4b19",
      "tree": "af667d1cdff7dc63b6893ee3f27a1f2503229ed1",
      "parents": [
        "7c5ecaf7666617889f337296c610815b519abfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Mar 25 14:51:50 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 26 11:33:55 2010 +0100"
      },
      "message": "x86, perf, bts, mm: Delete the never used BTS-ptrace code\n\nSupport for the PMU\u0027s BTS features has been upstreamed in\nv2.6.32, but we still have the old and disabled ptrace-BTS,\nas Linus noticed it not so long ago.\n\nIt\u0027s buggy: TIF_DEBUGCTLMSR is trampling all over that MSR without\nregard for other uses (perf) and doesn\u0027t provide the flexibility\nneeded for perf either.\n\nIts users are ptrace-block-step and ptrace-bts, since ptrace-bts\nwas never used and ptrace-block-step can be implemented using a\nmuch simpler approach.\n\nSo axe all 3000 lines of it. That includes the *locked_memory*()\nAPIs in mm/mlock.c as well.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c20100325135413.938004390@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6556a6743549defc32e5f90ee2cb1ecd833a44c3",
      "tree": "622306583d4a3c13235a8bfc012854c125c597f1",
      "parents": [
        "e0d272429a34ff143bfa04ee8e29dd4eed2964c7",
        "1dd2980d990068e20045b90c424518cc7f3657ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (172 commits)\n  perf_event, amd: Fix spinlock initialization\n  perf_event: Fix preempt warning in perf_clock()\n  perf tools: Flush maps on COMM events\n  perf_events, x86: Split PMU definitions into separate files\n  perf annotate: Handle samples not at objdump output addr boundaries\n  perf_events, x86: Remove superflous MSR writes\n  perf_events: Simplify code by removing cpu argument to hw_perf_group_sched_in()\n  perf_events, x86: AMD event scheduling\n  perf_events: Add new start/stop PMU callbacks\n  perf_events: Report the MMAP pgoff value in bytes\n  perf annotate: Defer allocating sym_priv-\u003ehist array\n  perf symbols: Improve debugging information about symtab origins\n  perf top: Use a macro instead of a constant variable\n  perf symbols: Check the right return variable\n  perf/scripts: Tag syscall_name helper as not yet available\n  perf/scripts: Add perf-trace-python Documentation\n  perf/scripts: Remove unnecessary PyTuple resizes\n  perf/scripts: Add syscall tracing scripts\n  perf/scripts: Add Python scripting engine\n  perf/scripts: Remove check-perf-trace from listed scripts\n  ...\n\nFix trivial conflict in tools/perf/util/probe-event.c\n"
    },
    {
      "commit": "e7b8e675d9c71b868b66f62f725a948047514719",
      "tree": "77877e2470148dc47653408c4b624734a8f14239",
      "parents": [
        "ea2c68a08fedb5053ba312d661e47df9f4d72411"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jan 26 04:40:03 2010 -0500"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 17 13:07:21 2010 +0100"
      },
      "message": "tracing: Unify arch_syscall_addr() implementations\n\nMost implementations of arch_syscall_addr() are the same, so create a\ndefault version in common code and move the one piece that differs (the\nsyscall table) to asm/syscall.h.  New arch ports don\u0027t have to waste\ntime copying \u0026 pasting this simple function.\n\nThe s390/sparc versions need to be different, so document why.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1264498803-17278-1-git-send-email-vapier@gentoo.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "f24bb999d2b9f2950e5cac5b69bffedf73c24ea4",
      "tree": "2c595d1c4c34f06eda309fd3770e3a7fb9ffba8a",
      "parents": [
        "4554dbcb85a4ed2abaa2b6fa15649b796699ec89"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:25 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace: Remove record freezing\n\nRemove record freezing. Because kprobes never puts probe on\nftrace\u0027s mcount call anymore, it doesn\u0027t need ftrace to check\nwhether kprobes on it.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100202214925.4694.73469.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cfa19780d61740f65790c5bae363b759d7c96fa",
      "tree": "cc7a8277a9f04c1bd613efe03c7d6d16cd18dc96",
      "parents": [
        "615d0ebbc782b67296e3226c293f520f93f93515"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:11 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace/alternatives: Introducing *_text_reserved functions\n\nIntroducing *_text_reserved functions for checking the text\naddress range is partially reserved or not. This patch provides\nchecking routines for x86 smp alternatives and dynamic ftrace.\nSince both functions modify fixed pieces of kernel text, they\nshould reserve and protect those from other dynamic text\nmodifier, like kprobes.\n\nThis will also be extended when introducing other subsystems\nwhich modify fixed pieces of kernel text. Dynamic text modifiers\nshould avoid those.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c20100202214911.4694.16587.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7247a15ff3bbdab0a8b402dffa1171e5c05a8e0",
      "tree": "139c26b2abd8ea5dd55ee6a4d43622bb24a0ee6a",
      "parents": [
        "829b876dfc94ea8be3a47e200d06f1f217bb104f"
      ],
      "author": {
        "name": "jolsa@redhat.com",
        "email": "jolsa@redhat.com",
        "time": "Wed Oct 07 19:00:35 2009 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 07 15:52:09 2009 -0400"
      },
      "message": "tracing: correct module boundaries for ftrace_release\n\nWhen the module is about the unload we release its call records.\nThe ftrace_release function was given wrong values representing\nthe module core boundaries, thus not releasing its call records.\n\nPlus making ftrace_release function module specific.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1254934835-363-3-git-send-email-jolsa@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83ba7c34d2b82dc608647f629616df393ab883f9",
      "tree": "73b38eeb64598ecf5a2135ddf464919fdab4c4a6",
      "parents": [
        "97572751d78133cf9a5f7165b252bf975f9dd17d"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Sun Sep 20 16:24:00 2009 +0530"
      },
      "committer": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Sun Sep 20 16:58:35 2009 +0530"
      },
      "message": "includecheck fix: include/linux, ftrace.h\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  include/linux/ftrace.h: linux/sched.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nLKML-Reference: \u003c1247068321.4382.102.camel@ht.satnam\u003e\n"
    },
    {
      "commit": "71e308a239c098673570d0b417d42262bb535909",
      "tree": "a9e415d0ae6302e820a1f9d4ff55a724b3a12cf6",
      "parents": [
        "eb4a03780d4c4464ef2ad86d80cca3f3284fe81d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 18 12:45:08 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 18 18:40:18 2009 -0400"
      },
      "message": "function-graph: add stack frame test\n\nIn case gcc does something funny with the stack frames, or the return\nfrom function code, we would like to detect that.\n\nAn arch may implement passing of a variable that is unique to the\nfunction and can be saved on entering a function and can be tested\nwhen exiting the function. Usually the frame pointer can be used for\nthis purpose.\n\nThis patch also implements this for x86. Where it passes in the stack\nframe of the parent function, and will test that frame on exit.\n\nThere was a case in x86_32 with optimize for size (-Os) where, for a\nfew functions, gcc would align the stack frame and place a copy of the\nreturn address into it. The function graph tracer modified the copy and\nnot the actual return address. On return from the funtion, it did not go\nto the tracer hook, but returned to the parent. This broke the function\ngraph tracer, because the return of the parent (where gcc did not do\nthis funky manipulation) returned to the location that the child function\nwas suppose to. This caused strange kernel crashes.\n\nThis test detected the problem and pointed out where the issue was.\n\nThis modifies the parameters of one of the functions that the arch\nspecific code calls, so it includes changes to arch code to accommodate\nthe new prototype.\n\nNote, I notice that the parsic arch implements its own push_return_trace.\nThis is now a generic function and the ftrace_push_return_trace should be\nused instead. This patch does not touch that code.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "261842b7c9099f56de2eb969c8ad65402d68e00e",
      "tree": "6cdf0b4b5ad188294da67520dc9579a0c67940ac",
      "parents": [
        "12acd473d45cf2e40de3782cb2de712e5cd4d715"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 16 21:41:52 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 17 16:21:32 2009 -0400"
      },
      "message": "tracing: add same level recursion detection\n\nThe tracing infrastructure allows for recursion. That is, an interrupt\nmay interrupt the act of tracing an event, and that interrupt may very well\nperform its own trace. This is a recursive trace, and is fine to do.\n\nThe problem arises when there is a bug, and the utility doing the trace\ncalls something that recurses back into the tracer. This recursion is not\ncaused by an external event like an interrupt, but by code that is not\nexpected to recurse. The result could be a lockup.\n\nThis patch adds a bitmask to the task structure that keeps track\nof the trace recursion. To find the interrupt depth, the following\nalgorithm is used:\n\n  level \u003d hardirq_count() + softirq_count() + in_nmi;\n\nHere, level will be the depth of interrutps and softirqs, and even handles\nthe nmi. Then the corresponding bit is set in the recursion bitmask.\nIf the bit was already set, we know we had a recursion at the same level\nand we warn about it and fail the writing to the buffer.\n\nAfter the data has been committed to the buffer, we clear the bit.\nNo atomics are needed. The only races are with interrupts and they reset\nthe bitmask before returning anywy.\n\n[ Impact: detect same irq level trace recursion ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "93eb677d74a4f7d3edfb678c94f6c0544d9fbad2",
      "tree": "8bbc46895be623a78316230362e94969dbb02135",
      "parents": [
        "f3948f8857ef5de239f28a61dddb1554a0ae4c2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 15 13:24:06 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 16:59:15 2009 +0200"
      },
      "message": "ftrace: use module notifier for function tracer\n\nThe hooks in the module code for the function tracer must be called\nbefore any of that module code runs. The function tracer hooks\nmodify the module (replacing calls to mcount to nops). If the code\nis executed while the change occurs, then the CPU can take a GPF.\n\nTo handle the above with a bit of paranoia, I originally implemented\nthe hooks as calls directly from the module code.\n\nAfter examining the notifier calls, it looks as though the start up\nnotify is called before any of the module\u0027s code is executed. This makes\nthe use of the notify safe with ftrace.\n\nOnly the startup notify is required to be \"safe\". The shutdown simply\nremoves the entries from the ftrace function list, and does not modify\nany code.\n\nThis change has another benefit. It removes a issue with a reverse dependency\nin the mutexes of ftrace_lock and module_mutex.\n\n[ Impact: fix lock dependency bug, cleanup ]\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1cad1252ed279ea59f3f8d3d3a5817eeb2f7a4d3",
      "tree": "ec5af7a70f58ad27ad21fc27815ca164ccf92c36",
      "parents": [
        "dcef788eb9659b61a2110284fcce3ca6e63480d2",
        "93cfb3c9fd83d877a8f1ffad9ff862b617b32828"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 10 12:46:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 10 12:46:51 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/core\n\nMerge reason: pick up both v2.6.30-rc1 [which includes tracing/urgent fixes]\n              and pick up the current lineup of tracing/urgent fixes as well\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47788c58e66c050982241d9a05eb690daceb05a9",
      "tree": "96b8658e36bad85d1e77345b7be1edb6fdb9e1d1",
      "parents": [
        "f876d346e3807647b1de411de6a86c44821896ca"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 08 20:40:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 09 05:43:32 2009 +0200"
      },
      "message": "tracing/syscalls: use a dedicated file header\n\nImpact: fix build warnings and possibe compat misbehavior on IA64\n\nBuilding a kernel on ia64 might trigger these ugly build warnings:\n\nCC      arch/ia64/ia32/sys_ia32.o\nIn file included from arch/ia64/ia32/sys_ia32.c:55:\narch/ia64/ia32/ia32priv.h:290:1: warning: \"elf_check_arch\" redefined\nIn file included from include/linux/elf.h:7,\n                 from include/linux/module.h:14,\n                 from include/linux/ftrace.h:8,\n                 from include/linux/syscalls.h:68,\n                 from arch/ia64/ia32/sys_ia32.c:18:\narch/ia64/include/asm/elf.h:19:1: warning: this is the location of the previous definition\n[...]\n\nsys_ia32.c includes linux/syscalls.h which in turn includes linux/ftrace.h\nto import the syscalls tracing prototypes.\n\nBut including ftrace.h can pull too much things for a low level file,\nespecially on ia64 where the ia32 private headers conflict with higher\nlevel headers.\n\nNow we isolate the syscall tracing headers in their own lightweight file.\n\nReported-by: Tony Luck \u003ctony.luck@intel.com\u003e\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Jiaying Zhang \u003cjiayingz@google.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nCc: Michael Davidson \u003cmd@google.com\u003e\nLKML-Reference: \u003c20090408184058.GB6017@nowhere\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f876d346e3807647b1de411de6a86c44821896ca",
      "tree": "fb5b86cd5eadb1509d5b61637c0bf1a14a7d93e7",
      "parents": [
        "577c9c456f0e1371cbade38eaf91ae8e8a308555"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Wed Apr 08 14:05:43 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 10:25:25 2009 +0200"
      },
      "message": "tracing: append a comma to INIT_FTRACE_GRAPH\n\nImpact: dont break future extensions of INIT_TASK\n\nWhile not a problem right now, due to lack of a comma, build fails if\nelements are appended to INIT_TASK() macro in development code:\n\n arch/x86/kernel/init_task.c:33: error: request for member `XXXXXXXXXX\u0027 in something not a structure or union\n arch/x86/kernel/init_task.c:33: error: initializer element is not constant\n arch/x86/kernel/init_task.c:33: error: (near initialization for `init_task.ret_stack\u0027)\n make[1]: *** [arch/x86/kernel/init_task.o] Error 1\n make: *** [arch/x86/kernel] Error 2\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: srostedt@redhat.com\nLKML-Reference: \u003c200904080505.n3855hcn017109@www262.sakura.ne.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86665c75da41889f92b774f31ea5a9a436f392a8",
      "tree": "94b003ab677a64b7d0a6dcca1f636bbbc2a187c9",
      "parents": [
        "93776a8ec746cf9d32c36e5a5b23d28d8be28826",
        "1bbe2a83ab68e5cf8c66c372c7cb3b51910c2cfe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:41:14 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:41:17 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/urgent\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "5ac9f62267dc92c7735c642a5942d9e6c1190308",
      "tree": "b426f4c02384d9454ee91ca7d5ab8a495bc679d0",
      "parents": [
        "5f0c6c03c5fee91c02c696bc9bf4c0d41392abe7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 25 20:55:00 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:00:39 2009 +0200"
      },
      "message": "function-graph: add proper initialization for init task\n\nImpact: fix to crash going to kexec\n\nThe init task did not properly initialize the function graph pointers.\nAltough these pointers are NULL, they can not be assumed to be NULL\nfor the init task, and must still be properly initialize.\n\nThis usually is not an issue since a problem only arises when a task\nexits, and the init tasks do not usually exit. But when doing tests\nwith kexec, the init tasks do exit, and the bug appears.\n\nThis patch properly initializes the init tasks function graph data\nstructures.\n\nReported-and-Tested-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003calpine.DEB.2.00.0903252053080.5675@gandalf.stny.rr.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2a16d6a3156ef7309ca7328a20c35df9418e670",
      "tree": "8f21d9c56eb34f9bd1057929661c96d04329dd69",
      "parents": [
        "cafb168a1c92e4c9e1731fe3d666c39611762c49"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:17:58 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:11 2009 -0400"
      },
      "message": "function-graph: add option to calculate graph time or not\n\ngraph time is the time that a function is executing another function.\nThus if function A calls B, if graph-time is set, then the time for\nA includes B. This is the default behavior. But if graph-time is off,\nthen the time spent executing B is subtracted from A.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "493762fc534c71d11d489f872c4b4a2c61173668",
      "tree": "90f308853f26ad5334717d53b18680957aab5ff4",
      "parents": [
        "bac429f037f1a51a74d62bad6d1518c3be065df3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 23 17:12:36 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:41:06 2009 -0400"
      },
      "message": "tracing: move function profiler data out of function struct\n\nImpact: reduce size of memory in function profiler\n\nThe function profiler originally introduces its counters into the\nfunction records itself. There is 20 thousand different functions on\na normal system, and that is adding 20 thousand counters for profiling\nevent when not needed.\n\nA normal run of the profiler yields only a couple of thousand functions\nexecuted, depending on what is being profiled. This means we have around\n18 thousand useless counters.\n\nThis patch rectifies this by moving the data out of the function\nrecords used by dynamic ftrace. Data is preallocated to hold the functions\nwhen the profiling begins. Checks are made during profiling to see if\nmore recorcds should be allocated, and they are allocated if it is safe\nto do so.\n\nThis also removes the dependency from using dynamic ftrace, and also\nremoves the overhead by having it enabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "bac429f037f1a51a74d62bad6d1518c3be065df3",
      "tree": "40c3dbdd0f6c097c3c9a1087d219dd8632bd7b74",
      "parents": [
        "425480081e936d8725f0d44b8829d699bf088c6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 20 12:50:56 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 23:40:00 2009 -0400"
      },
      "message": "tracing: add function profiler\n\nImpact: new profiling feature\n\nThis patch adds a function profiler. In debugfs/tracing/ two new\nfiles are created.\n\n  function_profile_enabled  - to enable or disable profiling\n\n  trace_stat/functions   - the profiled functions.\n\nFor example:\n\n  echo 1 \u003e /debugfs/tracing/function_profile_enabled\n  ./hackbench 50\n  echo 0 \u003e /debugfs/tracing/function_profile_enabled\n\nyields:\n\n  cat /debugfs/tracing/trace_stat/functions\n\n  Function                               Hit\n  --------                               ---\n  _spin_lock                        10106442\n  _spin_unlock                      10097492\n  kfree                              6013704\n  _spin_unlock_irqrestore            4423941\n  _spin_lock_irqsave                 4406825\n  __phys_addr                        4181686\n  __slab_free                        4038222\n  dput                               4030130\n  path_put                           4023387\n  unroll_tree_refs                   4019532\n[...]\n\nThe most hit functions are listed first. Functions that are not\nhit are not listed.\n\nThis feature depends on and uses dynamic function tracing. When the\nfunction profiling is disabled, no overhead occurs. But it still\ntakes up around 300KB to hold the data, thus it is not recomended\nto keep it enabled for systems low on memory.\n\nWhen a \u00271\u0027 is echoed into the function_profile_enabled file, the\ncounters for is function is reset back to zero. Thus you can see what\nfunctions are hit most by different programs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ee000b7f9fe429d2470c674ccec8d344f6789e0d",
      "tree": "35b480a5e5fb90d5a414d942bcb541e7887334d6",
      "parents": [
        "cc59c9e8d0165c632fd056c4a23e36f917507fb4"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 24 13:38:06 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 16:43:12 2009 +0100"
      },
      "message": "tracing: use union for multi-usages field\n\nImpact: cleanup\n\nstruct dyn_ftrace::ip has different usages in his lifecycle,\nwe use union for it. And also for struct dyn_ftrace::flags.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c49C871BE.3080405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d1a03dc541dc6672e60e57249ed22f40654ca47",
      "tree": "0b72061cc8c56797474d2efbfe1954ce0ad27ce8",
      "parents": [
        "098335215a4921a8a54193829eaed602dca24df5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 23 23:38:49 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 24 09:31:34 2009 -0400"
      },
      "message": "function-graph: moved the timestamp from arch to generic code\n\nThis patch move the timestamp from happening in the arch specific\ncode into the general code. This allows for better control by the tracer\nto time manipulation.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "7243f2145a9b06e5cf9a49fc9b8b9a4fff6fb42e",
      "tree": "50b73e168e0e8b711d5e1ca8878389464d6c905c",
      "parents": [
        "b478b782e110fdb4135caa3062b6d687e989d994",
        "62395efdb0ef42e664ca81677901268c403a6286",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/syscalls\u0027 and \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "bed1ffca022cc876fb83161d26670e9b5d3cf36b",
      "tree": "a896c79e9ea1af11f992826f1de7e2ece52fbe33",
      "parents": [
        "f58ba100678f421bdcb000a3c71793f432dfab93"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 13 15:42:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 16:57:42 2009 +0100"
      },
      "message": "tracing/syscalls: core infrastructure for syscalls tracing, enhancements\n\nImpact: new feature\n\nThis adds the generic support for syscalls tracing. This is\ncurrently exploited through a devoted tracer but other tracing\nengines can use it. (They just have to play with\n{start,stop}_ftrace_syscalls() and use the display callbacks\nunless they want to override them.)\n\nThe syscalls prototypes definitions are abused here to steal\nsome metadata informations:\n\n- syscall name, param types, param names, number of params\n\nThe syscall addr is not directly saved during this definition\nbecause we don\u0027t know if its prototype is available in the\nnamespace. But we don\u0027t really need it. The arch has just to\nbuild a function able to resolve the syscall number to its\nmetadata struct.\n\nThe current tracer prints the syscall names, parameters names\nand values (and their types optionally). Currently the value is\na raw hex but higher level values diplaying is on my TODO list.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236955332-10133-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "526211bc58c4b3265352801c5a7f469af5c34711",
      "tree": "5bed7d4752ecec0ae349821d3600c2529c5219c1",
      "parents": [
        "5e1607a00bd082972629d3d68c95c8bcf902b55a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:28:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 10:28:45 2009 +0100"
      },
      "message": "tracing: move utility functions from ftrace.h to kernel.h\n\nMake common utility functions such as trace_printk() and\ntracing_start()/tracing_stop() generally available to kernel\ncode.\n\nCc: Steven Rostedt \u003csrostedt@redhat.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": "c79a61f55773d2519fd0525bf58385f7d20752d3",
      "tree": "7f2d2eca7e6e7fbe9804800f03ae4c7d52d775b7",
      "parents": [
        "96ccd21cd13140221bda74a4fc4e53ffeba7c7d4"
      ],
      "author": {
        "name": "Uwe Kleine-Koenig",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Feb 27 21:30:03 2009 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Mar 02 16:49:37 2009 -0500"
      },
      "message": "tracing: make CALLER_ADDRx overwriteable\n\nThe current definition of CALLER_ADDRx isn\u0027t suitable for all platforms.\nE.g. for ARM __builtin_return_address(N) doesn\u0027t work for N \u003e 0 and\nAFAIK for powerpc there are no frame pointers needed to have a working\n__builtin_return_address.  This patch allows defining the CALLER_ADDRx\nmacros in \u003casm/ftrace.h\u003e and let these take precedence.\n\nBecause now \u003casm/ftrace.h\u003e is included unconditionally in\n\u003clinux/ftrace.h\u003e all archs that don\u0027t already had this include get an\nempty one for free.\n\nSigned-off-by: Uwe Kleine-Koenig \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "c478f8786973d6d7552c652ddad3f6fd86b5af28",
      "tree": "39967f4bb9a35d626584bd46f1acd916c6b5278d",
      "parents": [
        "843adf2379c18ed9a1b7493ee208bfd5512732e0",
        "4377245aa93b65b6597e4b7bb460fb9abc48b56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 18:12:01 2009 +0100"
      },
      "message": "Merge branch \u0027tip/x86/ftrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace\n\nConflicts:\n\tinclude/linux/ftrace.h\n\tkernel/trace/ftrace.c\n"
    },
    {
      "commit": "000ab691172db3921efa3cb7f17fc79235a1de7f",
      "tree": "5670e20fe203488b408977d5d5634fc9ddf418e1",
      "parents": [
        "07a66d7c53a538e1a9759954a82bb6c07365eff9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 13:35:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 20 13:16:18 2009 -0500"
      },
      "message": "ftrace: allow archs to preform pre and post process for code modification\n\nThis patch creates the weak functions: ftrace_arch_code_modify_prepare\nand ftrace_arch_code_modify_post_process that are called before and\nafter the stop machine is called to modify the kernel text.\n\nIf the arch needs to do pre or post processing, it only needs to define\nthese functions.\n\n[ Update: Ingo Molnar suggested using the name ftrace_arch_code_modify_*\n          over using ftrace_arch_modify_* ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "4cd0332db7e8f57cc082bab11d82c064a9721737",
      "tree": "b6de7771d67c5bf6eeb890fa0f5a901365104b98",
      "parents": [
        "40999096e8b9872199bf56ecd0c4d98397ccaf2f",
        "712406a6bf59ebf4a00358bb59a4a2a1b2953d90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 12:13:33 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 12:13:33 2009 +0100"
      },
      "message": "Merge branch \u0027mainline/function-graph\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/function-graph-tracer\n"
    },
    {
      "commit": "712406a6bf59ebf4a00358bb59a4a2a1b2953d90",
      "tree": "5bea439ccacde69ba71c5da8e8e307c2d343aa93",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 09 10:54:03 2009 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 18 13:43:04 2009 -0500"
      },
      "message": "tracing/function-graph-tracer: make arch generic push pop functions\n\nThere is nothing really arch specific of the push and pop functions\nused by the function graph tracer. This patch moves them to generic\ncode.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "b6887d7916e44c1d8913084fb6aa5004d9473f1a",
      "tree": "3446baa5592ce9ce17abb51ffdf3d89e6b52ef9b",
      "parents": [
        "6a24a244cd3a02d5b290293c32fcf2c6e92b4235"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 17 12:32:04 2009 -0500"
      },
      "message": "ftrace: rename _hook to _probe\n\nImpact: clean up\n\nIngo Molnar did not like the _hook naming convention used by the\nselect function tracer. Luis Claudio R. Goncalves suggested using\nthe \"_probe\" extension. This patch implements the change of\ncalling the functions and variables \"_hook\" and replacing them\nwith \"_probe\".\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "97d0bb8dcd8c2812e1927cdb51d7b1f9c98352b5",
      "tree": "12697bcf81303bb9bbaf9bf36652ef3d733725ca",
      "parents": [
        "f492d3f8385a98f828e8220d14492337dc29e07b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:47:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 17 11:47:39 2009 +0100"
      },
      "message": "ftrace: fix !CONFIG_FTRACE [un_]register_ftrace_command() prototypes\n\nImpact: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "809dcf29ce4e1723709910878e050bd187617e0e",
      "tree": "4747ede5ad0678d6ae88176f403a2c26f277182e",
      "parents": [
        "8fc0c701c5b6c0c3e242758c3acef6f9047940a9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 23:06:01 2009 -0500"
      },
      "message": "ftrace: add pretty print to selected fuction traces\n\nThis patch adds a call back for the tracers that have hooks to\nselected functions. This allows the tracer to show better output\nin the set_ftrace_filter file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "59df055f1991c9fc0c71a9230663c39188f6972f",
      "tree": "e1799897a8c8da924a3e933f539e8869e8725cb6",
      "parents": [
        "e6ea44e9b4c12325337cd1c06103cd515a1c02b2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 15:29:06 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 22:44:09 2009 -0500"
      },
      "message": "ftrace: trace different functions with a different tracer\n\nImpact: new feature\n\nCurrently, the function tracer only gives you an ability to hook\na tracer to all functions being traced. The dynamic function trace\nallows you to pick and choose which of those functions will be\ntraced, but all functions being traced will call all tracers that\nregistered with the function tracer.\n\nThis patch adds a new feature that allows a tracer to hook to specific\nfunctions, even when all functions are being traced. It allows for\ndifferent functions to call different tracer hooks.\n\nThe way this is accomplished is by a special function that will hook\nto the function tracer and will set up a hash table knowing which\ntracer hook to call with which function. This is the most general\nand easiest method to accomplish this. Later, an arch may choose\nto supply their own method in changing the mcount call of a function\nto call a different tracer. But that will be an exercise for the\nfuture.\n\nTo register a function:\n\n struct ftrace_hook_ops {\n\tvoid\t\t\t(*func)(unsigned long ip,\n\t\t\t\t\tunsigned long parent_ip,\n\t\t\t\t\tvoid **data);\n\tint\t\t\t(*callback)(unsigned long ip, void **data);\n\tvoid\t\t\t(*free)(void **data);\n };\n\n int register_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\t  void *data);\n\nglob is a simple glob to search for the functions to hook.\nops is a pointer to the operations (listed below)\ndata is the default data to be passed to the hook functions when traced\n\nops:\n func is the hook function to call when the functions are traced\n callback is a callback function that is called when setting up the hash.\n   That is, if the tracer needs to do something special for each\n   function, that is being traced, and wants to give each function\n   its own data. The address of the entry data is passed to this\n   callback, so that the callback may wish to update the entry to\n   whatever it would like.\n free is a callback for when the entry is freed. In case the tracer\n   allocated any data, it is give the chance to free it.\n\nTo unregister we have three functions:\n\n  void\n  unregister_ftrace_function_hook(char *glob, struct ftrace_hook_ops *ops,\n\t\t\t\tvoid *data)\n\nThis will unregister all hooks that match glob, point to ops, and\nhave its data matching data. (note, if glob is NULL, blank or \u0027*\u0027,\nall functions will be tested).\n\n  void\n  unregister_ftrace_function_hook_func(char *glob,\n\t\t\t\t struct ftrace_hook_ops *ops)\n\nThis will unregister all functions matching glob that has an entry\npointing to ops.\n\n  void unregister_ftrace_function_hook_all(char *glob)\n\nThis simply unregisters all funcs.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f6180773d90595650e11de0118bb112018290915",
      "tree": "ccf8642d7ac584f73e7820fae64fc4daf4546f6b",
      "parents": [
        "e68746a271eb3393a2183840be9e903caddf765b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 14 00:40:25 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 16 17:06:02 2009 -0500"
      },
      "message": "ftrace: add command interface for function selection\n\nAllow for other tracers to add their own commands for function\nselection. This interface gives a trace the ability to name a\ncommand for function selection. Right now it is pretty limited\nin what it offers, but this is a building step for more features.\n\nThe :mod: command is converted to this interface and also serves\nas a template for other implementations.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "1292211058aaf872eeb2a0e2677d237916b4501f",
      "tree": "7127ffe80e42faed85bf45b4182c97a39f299642",
      "parents": [
        "7447dce96f2233d250bc39a4a10a42f7c3dd46fc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 07 22:16:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:51:38 2009 +0100"
      },
      "message": "tracing/power: move the power trace headers to a dedicated file\n\nImpact: cleanup\n\nMove the power tracer headers to trace/power.h to keep ftrace.h and power bits\nmore easy to maintain as separated topics.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57794a9d48b63e34acbe63282628c9f029603308",
      "tree": "ed42d073f82cd91b8d8a331c60814aa699c3293d",
      "parents": [
        "a81bd80a0b0a405dc0483e2c428332d69da2c79f"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Fri Feb 06 17:33:27 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Feb 07 20:03:36 2009 -0500"
      },
      "message": "trace: trivial fixes in comment typos.\n\nImpact: clean up\n\nFixed several typos in the comments.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "9011262a37cb438f0fa9394b5e83840db8f9680a",
      "tree": "e79b5e6ff2499047f95fd99d7f9e90b62c6ae2cf",
      "parents": [
        "5ce1b1ed27d4ab1d81b8543a96f488bba2071576"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 23 12:06:23 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 26 14:40:53 2009 +0100"
      },
      "message": "ftrace: add ftrace_vprintk\n\nImpact: new helper function\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1818748b0cf9427e48acf9713295e829a0d715f",
      "tree": "49e8f8dc4328799fa69eae635f4b69ee97228445",
      "parents": [
        "5c5317de147e9b38ea9c4cbdc2d15bed7648d036"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Mon Jan 19 10:31:01 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 20 13:03:48 2009 +0100"
      },
      "message": "x86, ftrace, hw-branch-tracer: dump trace on oops\n\nDump the branch trace on an oops (based on ftrace_dump_on_oops).\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f00012074b1a1a67d9c8603617bbbab267347ca6",
      "tree": "7a5ec4d30a513914277ccaa607ff88ecf294f84a",
      "parents": [
        "25aac9dc7c8c73798c1be8aa36141f980d32579e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Jan 09 11:29:42 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 14 12:11:18 2009 +0100"
      },
      "message": "ftrace, ia64: Add macro for ftrace_caller\n\nDefine FTRACE_ADDR. In IA64, a function pointer isn\u0027t a \u0027unsigned long\u0027 but a\n\u0027struct {unsigned long ip, unsigned long gp}\u0027.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ddeb912f41801fd1968c7880d031702a396e4d0",
      "tree": "3a2c34153fc097172820e14bfe9b33bfc563f852",
      "parents": [
        "213cc060797378059a28ebc5c539f3e9a80160bd"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Dec 20 17:15:14 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 21 09:46:45 2008 +0100"
      },
      "message": "ftrace: enable format arguments checking\n\nImpact: broaden gcc printf format checks for ftrace_printk()\n\nformat arguments checking for ftrace_printk() is __printf(1, 2),\nnot __printf(1, 0).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30cd324e9787ccc9a5ede59742d5409857550692",
      "tree": "e53027e0283119de0ef4c3a431b1d20cd43003fb",
      "parents": [
        "c71dd42db2c6f1637b92502a214587431c1a6ad2",
        "6d102bc68f3dd2ae0e305b09170b1751aa67baeb",
        "3d9101e92529e1ff6014f95a69afc82f37b9b13a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/ftrace.h\n"
    },
    {
      "commit": "f38f1d2aa5a3520cf05da7cd6bd12fe2b0c509b7",
      "tree": "5eef795a1a081c41686971eaaa5ba2d1098ceb9d",
      "parents": [
        "40874491f9e9a4cb08eaf663dbe018bf5671975a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 16 23:06:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:56:24 2008 +0100"
      },
      "message": "trace: add a way to enable or disable the stack tracer\n\nImpact: enhancement to stack tracer\n\nThe stack tracer currently is either on when configured in or\noff when it is not. It can not be disabled when it is configured on.\n(besides disabling the function tracer that it uses)\n\nThis patch adds a way to enable or disable the stack tracer at\nrun time. It defaults off on bootup, but a kernel parameter \u0027stacktrace\u0027\nhas been added to enable it on bootup.\n\nA new sysctl has been added \"kernel.stack_tracer_enabled\" to let\nthe user enable or disable the stack tracer at run time.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bcbc4f20b52c2c40c43a4d2337707dcdfe81bc3a",
      "tree": "897774cc2f53691b2736e3d1dbadc9d1e263d47a",
      "parents": [
        "a0343e823184070f55364d8359f832dcb33c57c7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 09 23:54:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:14:08 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: annotate do_IRQ and smp_apic_timer_interrupt\n\nImpact: move most important x86 irq entry-points to a separate subsection\n\nAnnotate do_IRQ and smp_apic_timer_interrupt to put them into the .irqentry.text\nsubsection. These function will so be recognized as hardirq entrypoints for the\nfunction-graph-tracer. We could also annotate other irq entries but the others\nare far less important but they can be added on request.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "380c4b1411ccd6885f92b2c8ceb08433a720f44e",
      "tree": "f3b571e1caff2de3e6b4cace87c2b1ec332667d7",
      "parents": [
        "8e1b82e0866befaa0b2920be296c6e4c3fc7f422"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:43:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:45 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: append the tracing_graph_flag\n\nImpact: Provide a way to pause the function graph tracer\n\nAs suggested by Steven Rostedt, the previous patch that prevented from\nspinlock function tracing shouldn\u0027t use the raw_spinlock to fix it.\nIt\u0027s much better to follow lockdep with normal spinlock, so this patch\nadds a new flag for each task to make the function graph tracer able\nto be paused. We also can send an ftrace_printk whithout worrying of\nthe irrelevant traced spinlock during insertion.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b96f0119818964e4944fd1c423bf6770027d3ac",
      "tree": "02b5ec86d2fe45d6935d63913b997989f9339bf4",
      "parents": [
        "decbec3838d10ecd7aabdb4c0e05aac0e5f5dc0c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:40:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:44 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: introduce __notrace_funcgraph to filter special functions\n\nImpact: trace more functions\n\nWhen the function graph tracer is configured, three more files are not\ntraced to prevent only four functions to be traced. And this impacts the\nnormal function tracer too.\n\narch/x86/kernel/process_64/32.c:\n\nI had crashes when I let this file traced. After some debugging, I saw\nthat the \"current\" task point was changed inside__swtich_to(), ie:\n\"write_pda(pcurrent, next_p);\" inside process_64.c Since the tracer store\nthe original return address of the function inside current, we had\ncrashes. Only __switch_to() has to be excluded from tracing.\n\nkernel/module.c and kernel/extable.c:\n\nBecause of a function used internally by the function graph tracer:\n__kernel_text_address()\n\nTo let the other functions inside these files to be traced, this patch\nintroduces the __notrace_funcgraph function prefix which is __notrace if\nfunction graph tracer is configured and nothing if not.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21a8c466f99063eeb8567318b4e305eda9015408",
      "tree": "bc15ed9d28a4f1a52d390ceca6893d84de50a232",
      "parents": [
        "77d683f3e0258d522c5506e7b5fd05c9411184d9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:51:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:44 2008 +0100"
      },
      "message": "tracing/ftrace: provide the macro task_curr_ret_stack()\n\nImpact: cleanup\n\nAs suggested by Steven Rostedt, this patch provide a new macro\ntask_curr_ret_stack() to move the cpp conditionnal CONFIG into\nthe linux/ftrace.h headers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c",
      "tree": "64a4a1d9d7d3de0695cb2e8c7161886ab660e311",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:34 2008 +0100"
      },
      "message": "ftrace: graph of a single function\n\nThis patch adds the file:\n\n   /debugfs/tracing/set_graph_function\n\nwhich can be used along with the function graph tracer.\n\nWhen this file is empty, the function graph tracer will act as\nusual. When the file has a function in it, the function graph\ntracer will only trace that function.\n\nFor example:\n\n # echo blk_unplug \u003e /debugfs/tracing/set_graph_function\n # cat /debugfs/tracing/trace\n [...]\n ------------------------------------------\n | 2)  make-19003  \u003d\u003e  kjournald-2219\n ------------------------------------------\n\n 2)               |  blk_unplug() {\n 2)               |    dm_unplug_all() {\n 2)               |      dm_get_table() {\n 2)      1.381 us |        _read_lock();\n 2)      0.911 us |        dm_table_get();\n 2)      1. 76 us |        _read_unlock();\n 2) +   12.912 us |      }\n 2)               |      dm_table_unplug_all() {\n 2)               |        blk_unplug() {\n 2)      0.778 us |          generic_unplug_device();\n 2)      2.409 us |        }\n 2)      5.992 us |      }\n 2)      0.813 us |      dm_table_put();\n 2) +   29. 90 us |    }\n 2) +   34.532 us |  }\n\nYou can add up to 32 functions into this file. Currently we limit it\nto 32, but this may change with later improvements.\n\nTo add another function, use the append \u0027\u003e\u003e\u0027:\n\n  # echo sys_read \u003e\u003e /debugfs/tracing/set_graph_function\n  # cat /debugfs/tracing/set_graph_function\n  blk_unplug\n  sys_read\n\nUsing the \u0027\u003e\u0027 will clear out the function and write anew:\n\n  # echo sys_write \u003e /debug/tracing/set_graph_function\n  # cat /debug/tracing/set_graph_function\n  sys_write\n\nNote, if you have function graph running while doing this, the small\ntime between clearing it and updating it will cause the graph to\nrecord all functions. This should not be an issue because after\nit sets the filter, only those functions will be recorded from then on.\nIf you need to only record a particular function then set this\nfile first before starting the function graph tracer. In the future\nthis side effect may be corrected.\n\nThe set_graph_function file is similar to the set_ftrace_filter but\nit does not take wild cards nor does it allow for more than one\nfunction to be set with a single write. There is no technical reason why\nthis is the case, I just do not have the time yet to implement that.\n\nNote, dynamic ftrace must be enabled for this to appear because it\nuses the dynamic ftrace records to match the name to the mcount\ncall sites.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e49dc19c6a19ea112fcb94b7c62ec62cdd5c08aa",
      "tree": "851dcdfe321e16a327d656ecd7040ef6e8590bec",
      "parents": [
        "7ee991fbc6f947e9b04f29c9c6c1d057d0671a16"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:26 2008 +0100"
      },
      "message": "ftrace: function graph return for function entry\n\nImpact: feature, let entry function decide to trace or not\n\nThis patch lets the graph tracer entry function decide if the tracing\nshould be done at the end as well. This requires all function graph\nentry functions return 1 if it should trace, or 0 if the return should\nnot be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14a866c567e040ccf6240d68b083dd1dbbde63e6",
      "tree": "4e8d62ecc345d44e7cd45f973ffb931070637532",
      "parents": [
        "bb4304c71c97bf727ec43cd2f195c2c237c27fd3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:02 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:23 2008 +0100"
      },
      "message": "ftrace: add ftrace_graph_stop()\n\nImpact: new ftrace_graph_stop function\n\nWhile developing more features of function graph, I hit a bug that\ncaused the WARN_ON to trigger in the prepare_ftrace_return function.\nWell, it was hard for me to find out that was happening because the\nbug would not print, it would just cause a hard lockup or reboot.\nThe reason is that it is not safe to call printk from this function.\n\nLooking further, I also found that it calls unregister_ftrace_graph,\nwhich grabs a mutex and calls kstop machine. This would definitely\nlock the box up if it were to trigger.\n\nThis patch adds a fast and safe ftrace_graph_stop() which will\nstop the function tracer. Then it is safe to call the WARN ON.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7cc77307669336a08928ab8668bdb3f3bcc021b",
      "tree": "c9f2997a7266cc5d8c5b61e964d8e014f274f5d3",
      "parents": [
        "0bfc24559d7945506184d86739fe365a181f06b7",
        "d144d5ee6a265823d39f75ecfed351a516295183",
        "437f24fb897d409a9978eb71ecfaf279dcd94acd",
        "f3f47a6768a29448866da4422b6f6bee485c947f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/power-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "f3f47a6768a29448866da4422b6f6bee485c947f",
      "tree": "ba4bf1b79cbd13412871eec50250294d7140fd09",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sun Nov 23 16:49:58 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 08:29:32 2008 +0100"
      },
      "message": "tracing: add \"power-tracer\": C/P state tracer to help power optimization\n\nImpact: new \"power-tracer\" ftrace plugin\n\nThis patch adds a C/P-state ftrace plugin that will generate\ndetailed statistics about the C/P-states that are being used,\nso that we can look at detailed decisions that the C/P-state\ncode is making, rather than the too high level \"average\"\nthat we have today.\n\nAn example way of using this is:\n\n mount -t debugfs none /sys/kernel/debug\n echo cstate \u003e /sys/kernel/debug/tracing/current_tracer\n echo 1 \u003e /sys/kernel/debug/tracing/tracing_enabled\n sleep 1\n echo 0 \u003e /sys/kernel/debug/tracing/tracing_enabled\n cat /sys/kernel/debug/tracing/trace | perl scripts/trace/cstate.pl \u003e out.svg\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a45cfe1c64862e8cd3b0d79d7c4ba71c3118915",
      "tree": "0a7edf3a9dc88d74b7c7053445ac8aff033a75fa",
      "parents": [
        "df4fc31558dd2a3a30292ddb3a64c2a5befcec73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:54 2008 +0100"
      },
      "message": "ftrace: use code patching for ftrace graph tracer\n\nImpact: more efficient code for ftrace graph tracer\n\nThis patch uses the dynamic patching, when available, to patch\nthe function graph code into the kernel.\n\nThis patch will ease the way for letting both function tracing\nand function graph tracing run together.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "287b6e68ca7209caec40b2f44f837c580a413bae",
      "tree": "b0867d75868f6049dc5747bd39fdae2d477dde66",
      "parents": [
        "fb52607afcd0629776f1dc9e657647ceae81dd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 26 00:57:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: set a more human readable output\n\nImpact: feature\n\nThis patch sets a C-like output for the function graph tracing.\nFor this aim, we now call two handler for each function: one on the entry\nand one other on return. This way we can draw a well-ordered call stack.\n\nThe pid of the previous trace is loosely stored to be compared against\nthe one of the current trace to see if there were a context switch.\n\nWithout this little feature, the call tree would seem broken at\nsome locations.\nWe could use the sched_tracer to capture these sched_events but this\nway of processing is much more simpler.\n\n2 spaces have been chosen for indentation to fit the screen while deep\ncalls. The time of execution in nanosecs is printed just after closed\nbraces, it seems more easy this way to find the corresponding function.\nIf the time was printed as a first column, it would be not so easy to\nfind the corresponding function if it is called on a deep depth.\n\nI plan to output the return value but on 32 bits CPU, the return value\ncan be 32 or 64, and its difficult to guess on which case we are.\nI don\u0027t know what would be the better solution on X86-32: only print\neax (low-part) or even edx (high-part).\n\nActually it\u0027s thee same problem when a function return a 8 bits value, the\nhigh part of eax could contain junk values...\n\nHere is an example of trace:\n\nsys_read() {\n  fget_light() {\n  } 526\n  vfs_read() {\n    rw_verify_area() {\n      security_file_permission() {\n        cap_file_permission() {\n        } 519\n      } 1564\n    } 2640\n    do_sync_read() {\n      pipe_read() {\n        __might_sleep() {\n        } 511\n        pipe_wait() {\n          prepare_to_wait() {\n          } 760\n          deactivate_task() {\n            dequeue_task() {\n              dequeue_task_fair() {\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 504\n                  } 1587\n                  clear_buddies() {\n                  } 512\n                  add_cfs_task_weight() {\n                  } 519\n                  update_min_vruntime() {\n                  } 511\n                } 5602\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 496\n                  } 1631\n                  clear_buddies() {\n                  } 496\n                  update_min_vruntime() {\n                  } 527\n                } 4580\n                hrtick_update() {\n                  hrtick_start_fair() {\n                  } 488\n                } 1489\n              } 13700\n            } 14949\n          } 16016\n          msecs_to_jiffies() {\n          } 496\n          put_prev_task_fair() {\n          } 504\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_rt() {\n          } 496\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_idle() {\n          } 489\n\n------------8\u003c---------- thread 4 ------------8\u003c----------\n\nfinish_task_switch() {\n} 1203\ndo_softirq() {\n  __do_softirq() {\n    __local_bh_disable() {\n    } 669\n    rcu_process_callbacks() {\n      __rcu_process_callbacks() {\n        cpu_quiet() {\n          rcu_start_batch() {\n          } 503\n        } 1647\n      } 3128\n      __rcu_process_callbacks() {\n      } 542\n    } 5362\n    _local_bh_enable() {\n    } 587\n  } 8880\n} 9986\nkthread_should_stop() {\n} 669\ndeactivate_task() {\n  dequeue_task() {\n    dequeue_task_fair() {\n      dequeue_entity() {\n        update_curr() {\n          calc_delta_mine() {\n          } 511\n          update_min_vruntime() {\n          } 511\n        } 2813\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb52607afcd0629776f1dc9e657647ceae81dd50",
      "tree": "7bf43b41ff8510d3098c089913cce56a9049f0fd",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 25 21:07:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: change the name into function-graph-tracer\n\nImpact: cleanup\n\nThis patch changes the name of the \"return function tracer\" into\nfunction-graph-tracer which is a more suitable name for a tracing\nwhich makes one able to retrieve the ordered call stack during\nthe code flow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f893fb2e89287a4d755f928c3cda9d18440355c",
      "tree": "e2b2d9b3974567bc25a5298b14660062d6afb871",
      "parents": [
        "0429149fb5e01edc410648591c19095d2074ee00",
        "1d926f2756392c6909f60e0c9fe2a09d5462e376",
        "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
        "65afa5e603d507014580ead016ec887b49e1afa6",
        "cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349",
        "813b8520f5c240c71df55d14095a7b171de264ce",
        "033601a32b2012b6948e80e739cca40bff4de4a0",
        "958086d1784459be3fe85e4cad79d42b17d33381",
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/power-tracer\u0027, \u0027tracing/powerpc\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/stack-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
      "tree": "cdee5802117c2e78cf18df7fa524c7390d1bdb67",
      "parents": [
        "e58918ab9d4cd375f6d842e6d88cf4d7a55cbfcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:59:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:45:34 2008 +0100"
      },
      "message": "ftrace: add ftrace_off_permanent\n\nImpact: add new API to disable all of ftrace on anomalies\n\nIt case of a serious anomaly being detected (like something caught by\nlockdep) it is a good idea to disable all tracing immediately, without\ngrabing any locks.\n\nThis patch adds ftrace_off_permanent that disables the tracers, function\ntracing and ring buffers without a way to enable them again. This should\nonly be used when something serious has been detected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82f60f0bc854aada696f27d863c03bef91f1509d",
      "tree": "521fbccfc12f6c8a36f261b20eacbc84a4a31add",
      "parents": [
        "f201ae2356c74bcae130b2177b3dca903ea98071"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:18:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:19:35 2008 +0100"
      },
      "message": "tracing/function-return-tracer: clean up task start/exit callbacks\n\nImpact: cleanup\n\nEliminate #ifdefs in core code by using empty inline functions.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f201ae2356c74bcae130b2177b3dca903ea98071",
      "tree": "c4b1b43fbe0a4594cb86749b2e7098fe15eb86ba",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 23 06:22:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:17:26 2008 +0100"
      },
      "message": "tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically\n\nImpact: use deeper function tracing depth safely\n\nSome tests showed that function return tracing needed a more deeper depth\nof function calls. But it could be unsafe to store these return addresses\nto the stack.\n\nSo these arrays will now be allocated dynamically into task_struct of current\nonly when the tracer is activated.\n\nTypical scheme when tracer is activated:\n- allocate a return stack for each task in global list.\n- fork: allocate the return stack for the newly created task\n- exit: free return stack of current\n- idle init: same as fork\n\nI chose a default depth of 50. I don\u0027t have overruns anymore.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
      "tree": "b45429e95fc7d52bae32e62ef514f3d7ccf62ce6",
      "parents": [
        "0619faf657806b943e6acf51f60f1cd023a96c78"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 03:22:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:11:00 2008 +0100"
      },
      "message": "tracing/function-return-tracer: add the overrun field\n\nImpact: help to find the better depth of trace\n\nWe decided to arbitrary define the depth of function return trace as\n\"20\". Perhaps this is not enough. To help finding an optimal depth, we\nmeasure now the overrun: the number of functions that have been missed\nfor the current thread. By default this is not displayed, we have to\ndo set a particular flag on the return tracer: echo overrun \u003e\n/debug/tracing/trace_options And the overrun will be printed on the\nright.\n\nAs the trace shows below, the current 20 depth is not enough.\n\nupdate_wall_time+0x37f/0x8c0 -\u003e update_xtime_cache (345 ns) (Overruns: 2838)\nupdate_wall_time+0x384/0x8c0 -\u003e clocksource_get_next (1141 ns) (Overruns: 2838)\ndo_timer+0x23/0x100 -\u003e update_wall_time (3882 ns) (Overruns: 2838)\ntick_do_update_jiffies64+0xbf/0x160 -\u003e do_timer (5339 ns) (Overruns: 2838)\ntick_sched_timer+0x6a/0xf0 -\u003e tick_do_update_jiffies64 (7209 ns) (Overruns: 2838)\nvgacon_set_cursor_size+0x98/0x120 -\u003e native_io_delay (2613 ns) (Overruns: 274)\nvgacon_cursor+0x16e/0x1d0 -\u003e vgacon_set_cursor_size (33151 ns) (Overruns: 274)\nset_cursor+0x5f/0x80 -\u003e vgacon_cursor (36432 ns) (Overruns: 274)\ncon_flush_chars+0x34/0x40 -\u003e set_cursor (38790 ns) (Overruns: 274)\nrelease_console_sem+0x1ec/0x230 -\u003e up (721 ns) (Overruns: 274)\nrelease_console_sem+0x225/0x230 -\u003e wake_up_klogd (316 ns) (Overruns: 274)\ncon_flush_chars+0x39/0x40 -\u003e release_console_sem (2996 ns) (Overruns: 274)\ncon_write+0x22/0x30 -\u003e con_flush_chars (46067 ns) (Overruns: 274)\nn_tty_write+0x1cc/0x360 -\u003e con_write (292670 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2a/0x90 -\u003e native_apic_mem_write (330 ns) (Overruns: 274)\nirq_enter+0x17/0x70 -\u003e idle_cpu (413 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2f/0x90 -\u003e irq_enter (1525 ns) (Overruns: 274)\nktime_get_ts+0x40/0x70 -\u003e getnstimeofday (465 ns) (Overruns: 274)\nktime_get_ts+0x60/0x70 -\u003e set_normalized_timespec (436 ns) (Overruns: 274)\nktime_get+0x16/0x30 -\u003e ktime_get_ts (2501 ns) (Overruns: 274)\nhrtimer_interrupt+0x77/0x1a0 -\u003e ktime_get (3439 ns) (Overruns: 274)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d3737ea1b102030f44e96c97754101e41515f0",
      "tree": "44fdc3dea100d1fa639e6ba3cb1bfca2ab40e70b",
      "parents": [
        "b01c746617da5e260803eb10ed64ca043e9a1241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 06:02:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:57:38 2008 +0100"
      },
      "message": "tracing/function-return-tracer: support for dynamic ftrace on function return tracer\n\nThis patch adds the support for dynamic tracing on the function return tracer.\nThe whole difference with normal dynamic function tracing is that we don\u0027t need\nto hook on a particular callback. The only pro that we want is to nop or set\ndynamically the calls to ftrace_caller (which is ftrace_return_caller here).\n\nSome security checks ensure that we are not trying to launch dynamic tracing for\nreturn tracing while normal function tracing is already running.\n\nAn example of trace with getnstimeofday set as a filter:\n\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (2283 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1396 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1825 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1426 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1524 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1434 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1502 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1404 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1397 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1051 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1314 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1344 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1163 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1390 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1374 ns)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31e889098a80ceb3e9e3c555d522b2686a6663c6",
      "tree": "2acb73507de4191d4a9aa5ccf08fa24e7044c89e",
      "parents": [
        "d51ad7ac48f991c4a8834485727efa99a691cb87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:02 2008 +0100"
      },
      "message": "ftrace: pass module struct to arch dynamic ftrace functions\n\nImpact: allow archs more flexibility on dynamic ftrace implementations\n\nDynamic ftrace has largly been developed on x86. Since x86 does not\nhave the same limitations as other architectures, the ftrace interaction\nbetween the generic code and the architecture specific code was not\nflexible enough to handle some of the issues that other architectures\nhave.\n\nMost notably, module trampolines. Due to the limited branch distance\nthat archs make in calling kernel core code from modules, the module\nload code must create a trampoline to jump to what will make the\nlarger jump into core kernel code.\n\nThe problem arises when this happens to a call to mcount. Ftrace checks\nall code before modifying it and makes sure the current code is what\nit expects. Right now, there is not enough information to handle modifying\nmodule trampolines.\n\nThis patch changes the API between generic dynamic ftrace code and\nthe arch dependent code. There is now two functions for modifying code:\n\n  ftrace_make_nop(mod, rec, addr) - convert the code at rec-\u003eip into\n       a nop, where the original text is calling addr. (mod is the\n       module struct if called by module init)\n\n  ftrace_make_caller(rec, addr) - convert the code rec-\u003eip that should\n       be a nop into a caller to addr.\n\nThe record \"rec\" now has a new field called \"arch\" where the architecture\ncan add any special attributes to each call site record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd",
      "tree": "3c705c5991fcf0f4968ff790bb2e2ce65c8cbf18",
      "parents": [
        "60a011c736e7dd09a0b01ca6a051a416f3f52ffb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:21:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:18 2008 +0100"
      },
      "message": "tracing/fastboot: move boot tracer structs and funcs into their own header.\n\nImpact: Cleanups on the boot tracer and ftrace\n\nThis patch bring some cleanups about the boot tracer headers. The\nfunctions and structures of this tracer have nothing related to ftrace\nand should have so their own header file.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "caf4b323b02a16c92fba449952ac6515ddc76d7a",
      "tree": "6fc234d00faca192248344996a168afb253e5f40",
      "parents": [
        "d844222a54c33a960755b44b934cd1b01b05dceb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 07:03:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 10:29:11 2008 +0100"
      },
      "message": "tracing, x86: add low level support for ftrace return tracing\n\nImpact: add infrastructure for function-return tracing\n\nAdd low level support for ftrace return tracing.\n\nThis plug-in stores return addresses on the thread_info structure of\nthe current task.\n\nThe index of the current return address is initialized when the task\nis the first one (init) and when a process forks (the child). It is\nnot needed when a task does a sys_execve because after this syscall,\nit still needs to return on the kernel functions it called.\n\nNote that the code of return_to_handler has been suggested by Steven\nRostedt as almost all of the ideas of improvements in this V3.\n\nFor purpose of security, arch/x86/kernel/process_32.c is not traced\nbecause __switch_to() changes the current task during its execution.\nThat could cause inconsistency in the stored return address of this\nfunction even if I didn\u0027t have any crash after testing with tracing on\nthis function enabled.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6b0786f7f83bcc4d414a2977aaebe2941ebe1de",
      "tree": "fd7cbdda3de7eaf05eaa01eb3609121cc05828d8",
      "parents": [
        "3e03fb7f1da2e691644526c0d6df42d778716349",
        "6a60dd121c5b6c2d827e99b38c1326f2600c3891",
        "072ba49838b42c873c496d72c91bb237914cf3b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:34:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:34:35 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/nmisafe\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "6a60dd121c5b6c2d827e99b38c1326f2600c3891",
      "tree": "d1be280b4a0dba24ca3ec800d6d1ef74c4df85be",
      "parents": [
        "7e5e26a3d8ac4bcadb380073dc9604c07a9a6198"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 06 15:55:21 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 22:20:46 2008 +0100"
      },
      "message": "ftrace: split out hardirq ftrace code into own header\n\nImpact: moving of function prototypes into own header file\n\nftrace.h is too big of a file for hardirq.h, and some archs will fail\nto build because of the include dependencies not being met.\n\nThis patch pulls out the required prototypes for hardirq.h into a smaller\nand safer ftrace_irq.h file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f04870148ecb825133bc2733f473b1c5773ac0b",
      "tree": "81399b7b9535d11ac6120366fc01fd051118226a",
      "parents": [
        "60a7ecf42661f2b22168751298592da6ee210c9e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 05 16:05:44 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 07:50:57 2008 +0100"
      },
      "message": "ftrace: soft tracing stop and start\n\nImpact: add way to quickly start stop tracing from the kernel\n\nThis patch adds a soft stop and start to the trace. This simply\ndisables function tracing via the ftrace_disabled flag, and\ndisables the trace buffers to prevent recording. The tracing\ncode may still be executed, but the trace will not be recorded.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "60a7ecf42661f2b22168751298592da6ee210c9e"
}
