)]}'
{
  "log": [
    {
      "commit": "98d9c66ab07471006fd7910cb16453581c41a3e7",
      "tree": "0f970a85c75df95e4c84ab81d4df88dac7cf016b",
      "parents": [
        "4519d9e54dcd273975ad0adebad2a08c20428029"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 14:27:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 14:27:20 2008 +0200"
      },
      "message": "tracing/fastboot: improve help text\n\nImprove the help text of the boot tracer.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4519d9e54dcd273975ad0adebad2a08c20428029",
      "tree": "b106b3a33908d2ca91c80efa54b60d9b1bd87df9",
      "parents": [
        "07d1890420cce95c577736e4d67f70cbd39845fe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 14:15:43 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 14:15:43 2008 +0200"
      },
      "message": "tracing/stacktrace: improve help text\n\nImprove the help text that is displayed for CONFIG_STACK_TRACER.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad0a3b68114e8f3c25ac0045b45a2838f23e3b3a",
      "tree": "bd7d7b9255276b6d9fecdf7bf0ef632196d07a6b",
      "parents": [
        "2fbc474901933c8f0c09b0280dfbb6780cb8bd60"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 08 17:44:55 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:26 2008 +0200"
      },
      "message": "trace: add build-time check to avoid overrunning hex buffer\n\nRemove the runtime BUG_ON and change to a compile-time check in\nthe macro that calls the hex format routine\n\n[Noticed by Joe Perches]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2fbc474901933c8f0c09b0280dfbb6780cb8bd60",
      "tree": "f73b8d74c1da044cecbba6c50e8b674ae885d425",
      "parents": [
        "ddc7a01aad195708fc943d9446411d11e3547784"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 08 16:51:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:25 2008 +0200"
      },
      "message": "ftrace: fix hex output mode of ftrace\n\nFix the output of ftrace in hex mode as the hi/lo nibbles are output in\nreverse order. Without this patch, the output of ftrace is:\n\nraw mode : 6474 0 141531612444 0 140 + 6402 120 S\nhex mode : 000091a4 00000000 000000023f1f50c1 00000000 c8 000000b2 00009120 87 ffff00c8 00000035\n\nThere is an inversion on ouput hex(6474) is 194a\n\n[based on a patch by Philippe Reynes \u003ctremyfr@yahoo.fr\u003e]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a5d900cca57115326bc5b9e7f3bac980986c2c8",
      "tree": "611e10bab4f03beb61baac8f0868aad665e85c46",
      "parents": [
        "c2931e05ec5965597cbfb79ad332d4a29aeceb23"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Oct 04 13:42:27 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:23 2008 +0200"
      },
      "message": "tracing/fastboot: fix printk format typo in boot tracer\n\nWhen printing nanoseconds, the right printk format string is %09 not %06...\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2931e05ec5965597cbfb79ad332d4a29aeceb23",
      "tree": "e1825834156ab83e7c5ed1bbd33c958e5da78b39",
      "parents": [
        "3ea2e6d71aafe35b8aaf89ed711a283815acfae6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Oct 04 22:04:44 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:22 2008 +0200"
      },
      "message": "ftrace: return an error when setting a nonexistent tracer\n\nWhen one try to set a nonexistent tracer, no error is returned\nas if the name of the tracer was correct.\nWe should return -EINVAL.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ea2e6d71aafe35b8aaf89ed711a283815acfae6",
      "tree": "e4bae61f9bbe5ff7ccf6eac95416b98ebd4974a4",
      "parents": [
        "bf41a158cacba6ca5fc6407a54e7ad8ce1567e2e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Oct 04 02:01:00 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:20 2008 +0200"
      },
      "message": "ftrace: make some tracers reentrant\n\nNow that the ring buffer is reentrant, some of the ftrace tracers\n(sched_swich, debugging traces) can also be reentrant.\n\nNote: Never make the function tracer reentrant, that can cause\n  recursion problems all over the kernel. The function tracer\n  must disable reentrancy.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf41a158cacba6ca5fc6407a54e7ad8ce1567e2e",
      "tree": "e9424b4927f99cfb3acce3cfab2635ae8f8c8ba1",
      "parents": [
        "6f807acd27734197b11d42829d3cbb9c0937b572"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Oct 04 02:00:59 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:19 2008 +0200"
      },
      "message": "ring-buffer: make reentrant\n\nThis patch replaces the local_irq_save/restore with preempt_disable/\nenable. This allows for interrupts to enter while recording.\nTo write to the ring buffer, you must reserve data, and then\ncommit it. During this time, an interrupt may call a trace function\nthat will also record into the buffer before the commit is made.\n\nThe interrupt will reserve its entry after the first entry, even\nthough the first entry did not finish yet.\n\nThe time stamp delta of the interrupt entry will be zero, since\nin the view of the trace, the interrupt happened during the\nfirst field anyway.\n\nLocking still takes place when the tail/write moves from one page\nto the next. The reader always takes the locks.\n\nA new page pointer is added, called the commit. The write/tail will\nalways point to the end of all entries. The commit field will\npoint to the last committed entry. Only this commit entry may\nupdate the write time stamp.\n\nThe reader can only go up to the commit. It cannot go past it.\n\nIf a lot of interrupts come in during a commit that fills up the\nbuffer, and it happens to make it all the way around the buffer\nback to the commit, then a warning is printed and new events will\nbe dropped.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f807acd27734197b11d42829d3cbb9c0937b572",
      "tree": "3587f14a894f05a607cc71fd1ee4e63a3eb3b679",
      "parents": [
        "097d036a2f25eecc42435c57e010aaf4a2eed2d9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Oct 04 02:00:58 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:18 2008 +0200"
      },
      "message": "ring-buffer: move page indexes into page headers\n\nRemove the global head and tail indexes and move them into the\npage header. Each page will now keep track of where the last\nwrite and read was made. We also rename the head and tail to read\nand write for better clarification.\n\nThis patch is needed for future enhancements to move the ring buffer\nto a lockless solution.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "097d036a2f25eecc42435c57e010aaf4a2eed2d9",
      "tree": "ee5e40b940475e8a047e02093688072ff3e330d3",
      "parents": [
        "6450c1d3213e27b0dcbf34cce7ad1ae74244c520"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 03 15:39:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:17 2008 +0200"
      },
      "message": "tracing/fastboot: only trace non-module initcalls\n\nAt this time, only built-in initcalls interest us.\nWe can\u0027t really produce a relevant graph if we include\nthe modules initcall too.\n\nI had good results after this patch (see svg in attachment).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6450c1d3213e27b0dcbf34cce7ad1ae74244c520",
      "tree": "b8b51924fcbe4b656a5ce688f5c2406170782a0b",
      "parents": [
        "aa1e0e3bcf95ce684d005bedb16e5d4559455685"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 02 19:23:04 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:16 2008 +0200"
      },
      "message": "ftrace: move pc counter in irqtrace\n\nThe assigning of the pc counter is in the wrong spot in the\ncheck_critical_timing function. The pc variable is used in the\nout jump.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa1e0e3bcf95ce684d005bedb16e5d4559455685",
      "tree": "579416746452a880ca42de6c2885419e49a44e45",
      "parents": [
        "eb7fa935274bb233686fdf7a53f40c5d9ee76ed6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 02 19:18:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:15 2008 +0200"
      },
      "message": "ring_buffer: map to cpu not page\n\nMy original patch had a compile bug when NUMA was configured. I\nreferenced cpu when it should have been cpu_buffer-\u003ecpu.\n\nIngo quickly fixed this bug by replacing cpu with \u0027i\u0027 because that\nwas the loop counter. Unfortunately, the \u0027i\u0027 was the counter of\npages, not CPUs. This caused a crash when the number of pages allocated\nfor the buffers exceeded the number of pages, which would usually\nbe the case.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5601020feb0c3010e9e3e0131e9697ac6a06777b",
      "tree": "99d1a70dbf3bba2b5ae1007c4828c28e6480214a",
      "parents": [
        "cb5ab74204a6e2579d1119bf1348eb806526b12b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 13:26:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:12 2008 +0200"
      },
      "message": "tracing/fastboot: get the initcall name before it disappears\n\nAfter some initcall traces, some initcall names may be inconsistent.\nThat\u0027s because these functions will disappear from the .init section\nand also their name from the symbols table.\n\nSo we have to copy the name of the function in a buffer large enough\nduring the trace appending. It is not costly for the ring_buffer because\nthe number of initcall entries is commonly not really large.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb5ab74204a6e2579d1119bf1348eb806526b12b",
      "tree": "4810258d42e0370ec15cf424d5e3c6487fbd1781",
      "parents": [
        "77ae11f63befb7fc41ec256f1fcb72ca7e4160d5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 12:59:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:11 2008 +0200"
      },
      "message": "tracing/fastboot: change the printing of boot tracer according to bootgraph.pl\n\nChange the boot tracer printing to make it parsable for\nthe scripts/bootgraph.pl script.\n\nWe have now to output two lines for each initcall, according to the\nprintk in do_one_initcall() in init/main.c\nWe need now the call\u0027s time and the return\u0027s time.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77ae11f63befb7fc41ec256f1fcb72ca7e4160d5",
      "tree": "b226064fc831d9d7e968f41ced643b4bfb214b11",
      "parents": [
        "38697053fa006411224a1790e2adb8216440ab0f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 11:04:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:10 2008 +0200"
      },
      "message": "ring-buffer: fix build error\n\nfix:\n\n kernel/trace/ring_buffer.c: In function ‘rb_allocate_pages’:\n kernel/trace/ring_buffer.c:235: error: ‘cpu’ undeclared (first use in this function)\n kernel/trace/ring_buffer.c:235: error: (Each undeclared identifier is reported only once\n kernel/trace/ring_buffer.c:235: error: for each function it appears in.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38697053fa006411224a1790e2adb8216440ab0f",
      "tree": "30daab3a6ba93f1c8c922397ffe8a0d6a220e8b1",
      "parents": [
        "e4c2ce82ca2710e17cb4df8eb2b249fa2eb5af30"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 13:14:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:09 2008 +0200"
      },
      "message": "ftrace: preempt disable over interrupt disable\n\nWith the new ring buffer infrastructure in ftrace, I\u0027m trying to make\nftrace a little more light weight.\n\nThis patch converts a lot of the local_irq_save/restore into\npreempt_disable/enable.  The original preempt count in a lot of cases\nhas to be sent in as a parameter so that it can be recorded correctly.\nSome places were recording it incorrectly before anyway.\n\nThis is also laying the ground work to make ftrace a little bit\nmore reentrant, and remove all locking. The function tracers must\nstill protect from reentrancy.\n\nNote: All the function tracers must be careful when using preempt_disable.\n  It must do the following:\n\n  resched \u003d need_resched();\n  preempt_disable_notrace();\n  [...]\n  if (resched)\n\tpreempt_enable_no_resched_notrace();\n  else\n\tpreempt_enable_notrace();\n\nThe reason is that if this function traces schedule() itself, the\npreempt_enable_notrace() will cause a schedule, which will lead\nus into a recursive failure.\n\nIf we needed to reschedule before calling preempt_disable, we\nshould have already scheduled. Since we did not, this is most\nlikely that we should not and are probably inside a schedule\nfunction.\n\nIf resched was not set, we still need to catch the need resched\nflag being set when preemption was off and the if case at the\nend will catch that for us.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e4c2ce82ca2710e17cb4df8eb2b249fa2eb5af30",
      "tree": "186a96aa4cace7fe51ede64c8b4f426a5007f007",
      "parents": [
        "7104f300c5a69b46dda00d898034dd05c9f21739"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 11:14:54 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:08 2008 +0200"
      },
      "message": "ring_buffer: allocate buffer page pointer\n\nThe current method of overlaying the page frame as the buffer page pointer\ncan be very dangerous and limits our ability to do other things with\na page from the buffer, like send it off to disk.\n\nThis patch allocates the buffer_page instead of overlaying the page\u0027s\npage frame. The use of the buffer_page has hardly changed due to this.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7104f300c5a69b46dda00d898034dd05c9f21739",
      "tree": "a8c885bd61fb1e269f277837b2e521179faf8739",
      "parents": [
        "797d3712a9dd75c720558612be05f42c031a7bb5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 10:52:51 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:07 2008 +0200"
      },
      "message": "ftrace: type cast filter+verifier\n\nThe mmiotrace map had a bug that would typecast the entry from\nthe trace to the wrong type. That is a known danger of C typecasts,\nthere\u0027s absolutely zero checking done on them.\n\nHelp that problem a bit by using a GCC extension to implement a\ntype filter that restricts the types that a trace record can be\ncast into, and by adding a dynamic check (in debug mode) to verify\nthe type of the entry.\n\nThis patch adds a macro to assign all entries of ftrace using the type\nof the variable and checking the entry id. The typecasts are now done\nin the macro for only those types that it knows about, which should\nbe all the types that are allowed to be read from the tracer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "797d3712a9dd75c720558612be05f42c031a7bb5",
      "tree": "8687146ca2a252c208fd78bbcb2a6f4c6a542dc3",
      "parents": [
        "d769041f865330034131525ee6a7f72eb4af2a24"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 30 18:13:45 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:06 2008 +0200"
      },
      "message": "tracing/ftrace: adapt mmiotrace to the new type of print_line, fix\n\nCorrect the value\u0027s type of trace_empty function\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d769041f865330034131525ee6a7f72eb4af2a24",
      "tree": "5c0d93063585c9a94d3c8e8105cc7ad27f4fe0e8",
      "parents": [
        "70255b5e3f1bd1a5af5b1e425ec2c4db7c735112"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 00:29:53 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:05 2008 +0200"
      },
      "message": "ring_buffer: implement new locking\n\nThe old \"lock always\" scheme had issues with lockdep, and was not very\nefficient anyways.\n\nThis patch does a new design to be partially lockless on writes.\nWrites will add new entries to the per cpu pages by simply disabling\ninterrupts. When a write needs to go to another page than it will\ngrab the lock.\n\nA new \"read page\" has been added so that the reader can pull out a page\nfrom the ring buffer to read without worrying about the writer writing over\nit. This allows us to not take the lock for all reads. The lock is\nnow only taken when a read needs to go to a new page.\n\nThis is far from lockless, and interrupts still need to be disabled,\nbut it is a step towards a more lockless solution, and it also\nsolves a lot of the issues that were noticed by the first conversion\nof ftrace to the ring buffers.\n\nNote: the ring_buffer_{un}lock API has been removed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70255b5e3f1bd1a5af5b1e425ec2c4db7c735112",
      "tree": "0c948691e0f247b9100eaf151cdafda182b34545",
      "parents": [
        "9e9efffb7848fe53c334996819139b431b983ac2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 01 00:29:52 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:04 2008 +0200"
      },
      "message": "ring_buffer: remove raw from local_irq_save\n\nThe raw_local_irq_save causes issues with lockdep. We don\u0027t need it\nso replace them with local_irq_save.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e9efffb7848fe53c334996819139b431b983ac2",
      "tree": "bea4c5c2365d3c29f126cefa7f251368e8fb25c2",
      "parents": [
        "07f4e4f790895d55f46aaf89e7437da4a585989c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 29 20:31:58 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:03 2008 +0200"
      },
      "message": "tracing/ftrace: adapt the boot tracer to the new print_line type\n\nThis patch adapts the boot tracer to the new type of the\nprint_line callback.\n\nIt still relays entries it doesn\u0027t support to default output\nfunctions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "07f4e4f790895d55f46aaf89e7437da4a585989c",
      "tree": "c2b6cecb4f27e572c3a325f1c1d868cbcc0e6099",
      "parents": [
        "9ff4b9744c187cae58c3774361ea090addbc4130"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 29 20:27:42 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:02 2008 +0200"
      },
      "message": "tracing/ftrace: adapt mmiotrace to the new type of print_line\n\nAdapt mmiotrace to the new print_line type.\nBy default, it ignores (and consumes) types it doesn\u0027t support.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ff4b9744c187cae58c3774361ea090addbc4130",
      "tree": "f001a85312b374fbd91d332eb341d02522512da1",
      "parents": [
        "2c4f035f6c3e8fda661eb6105aa51ef07aa71607"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon Sep 29 20:23:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:01 2008 +0200"
      },
      "message": "tracing/ftrace: fix pipe breaking\n\nThis patch fixes a bug which break the pipe when the seq is empty.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c4f035f6c3e8fda661eb6105aa51ef07aa71607",
      "tree": "9bac9e431789f2f551b6b6b2f86463b0b568bf19",
      "parents": [
        "777e208d40d0953efc6fb4ab58590da3f7d8f02d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 29 20:18:34 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:00 2008 +0200"
      },
      "message": "tracing/ftrace: change the type of the print_line callback\n\nWe need a kind of disambiguation when a print_line callback\nreturns 0.\n\n_There is not enough space to print all the entry.\n Please flush the seq and retry.\n_I can\u0027t handle this type of entry\n\nThis patch changes the type of this callback for better information.\n\nAlso some changes have been made in this V2.\n\n_ Only relay to default functions after the print_line callback fails.\n_ This patch doesn\u0027t fix the issue with the broken pipe (see patch 2/4 for that)\n\nSome things are still in discussion:\n\n_ Find better names for the enum print_line_t values\n_ Change the type of print_trace_line into boolean.\n\nPatches to change that can be sent later.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "777e208d40d0953efc6fb4ab58590da3f7d8f02d",
      "tree": "1e5940ccafd26c958b358f7ce85926659f12c37d",
      "parents": [
        "3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:42 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:59 2008 +0200"
      },
      "message": "ftrace: take advantage of variable length entries\n\nNow that the underlining ring buffer for ftrace now hold variable length\nentries, we can take advantage of this by only storing the size of the\nactual event into the buffer. This happens to increase the number of\nentries in the buffer dramatically.\n\nWe can also get rid of the \"trace_cont\" operation, but I\u0027m keeping that\nuntil we have no more users. Some of the ftrace tracers can now change\ntheir code to adapt to this new feature.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c",
      "tree": "5c1fd6fd721e2e9a5c47facfd50fbc011b3db53a",
      "parents": [
        "ed56829cb3195de499f97fa6108fe9134319bae6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:41 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:57 2008 +0200"
      },
      "message": "ftrace: make work with new ring buffer\n\nThis patch ports ftrace over to the new ring buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ed56829cb3195de499f97fa6108fe9134319bae6",
      "tree": "e038bfb9898146dead5a20d2a1ffb44f8fb24676",
      "parents": [
        "a7b1374333407f409cf8df7e623b12490f073c84"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:40 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:56 2008 +0200"
      },
      "message": "ring_buffer: reset buffer page when freeing\n\nMathieu Desnoyers pointed out that the freeing of the page frame needs\nto be reset otherwise we might trigger BUG_ON in the page free code.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7b1374333407f409cf8df7e623b12490f073c84",
      "tree": "ecd83a07e17b6659896010adc7ceaa56eb08d12b",
      "parents": [
        "7a8e76a3829f1067b70f715771ff88baf2fbf3c3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:39 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:55 2008 +0200"
      },
      "message": "ring_buffer: add paranoid check for buffer page\n\nIf for some strange reason the buffer_page gets bigger, or the page struct\ngets smaller, I want to know this ASAP.  The best way is to not let the\nkernel compile.\n\nThis patch adds code to test the size of the struct buffer_page against the\npage struct and will cause compile issues if the buffer_page ever gets bigger\nthan the page struct.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a8e76a3829f1067b70f715771ff88baf2fbf3c3",
      "tree": "71126d4ad6f89abd00cac688318aff14323a96bb",
      "parents": [
        "5aa60c6073456812251caf9177cb921b2de68f77"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:38 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:54 2008 +0200"
      },
      "message": "tracing: unified trace buffer\n\nThis is a unified tracing buffer that implements a ring buffer that\nhopefully everyone will eventually be able to use.\n\nThe events recorded into the buffer have the following structure:\n\n  struct ring_buffer_event {\n\tu32 type:2, len:3, time_delta:27;\n\tu32 array[];\n  };\n\nThe minimum size of an event is 8 bytes. All events are 4 byte\naligned inside the buffer.\n\nThere are 4 types (all internal use for the ring buffer, only\nthe data type is exported to the interface users).\n\n RINGBUF_TYPE_PADDING: this type is used to note extra space at the end\n\tof a buffer page.\n\n RINGBUF_TYPE_TIME_EXTENT: This type is used when the time between events\n\tis greater than the 27 bit delta can hold. We add another\n\t32 bits, and record that in its own event (8 byte size).\n\n RINGBUF_TYPE_TIME_STAMP: (Not implemented yet). This will hold data to\n\thelp keep the buffer timestamps in sync.\n\nRINGBUF_TYPE_DATA: The event actually holds user data.\n\nThe \"len\" field is only three bits. Since the data must be\n4 byte aligned, this field is shifted left by 2, giving a\nmax length of 28 bytes. If the data load is greater than 28\nbytes, the first array field holds the full length of the\ndata load and the len field is set to zero.\n\nExample, data size of 7 bytes:\n\n\ttype \u003d RINGBUF_TYPE_DATA\n\tlen \u003d 2\n\ttime_delta: \u003ctime-stamp\u003e - \u003cprev_event-time-stamp\u003e\n\tarray[0..1]: \u003c7 bytes of data\u003e \u003c1 byte empty\u003e\n\nThis event is saved in 12 bytes of the buffer.\n\nAn event with 82 bytes of data:\n\n\ttype \u003d RINGBUF_TYPE_DATA\n\tlen \u003d 0\n\ttime_delta: \u003ctime-stamp\u003e - \u003cprev_event-time-stamp\u003e\n\tarray[0]: 84 (Note the alignment)\n\tarray[1..14]: \u003c82 bytes of data\u003e \u003c2 bytes empty\u003e\n\nThe above event is saved in 92 bytes (if my math is correct).\n82 bytes of data, 2 bytes empty, 4 byte header, 4 byte length.\n\nDo not reference the above event struct directly. Use the following\nfunctions to gain access to the event table, since the\nring_buffer_event structure may change in the future.\n\nring_buffer_event_length(event): get the length of the event.\n\tThis is the size of the memory used to record this\n\tevent, and not the size of the data pay load.\n\nring_buffer_time_delta(event): get the time delta of the event\n\tThis returns the delta time stamp since the last event.\n\tNote: Even though this is in the header, there should\n\t\tbe no reason to access this directly, accept\n\t\tfor debugging.\n\nring_buffer_event_data(event): get the data from the event\n\tThis is the function to use to get the actual data\n\tfrom the event. Note, it is only a pointer to the\n\tdata inside the buffer. This data must be copied to\n\tanother location otherwise you risk it being written\n\tover in the buffer.\n\nring_buffer_lock: A way to lock the entire buffer.\nring_buffer_unlock: unlock the buffer.\n\nring_buffer_alloc: create a new ring buffer. Can choose between\n\toverwrite or consumer/producer mode. Overwrite will\n\toverwrite old data, where as consumer producer will\n\tthrow away new data if the consumer catches up with the\n\tproducer.  The consumer/producer is the default.\n\nring_buffer_free: free the ring buffer.\n\nring_buffer_resize: resize the buffer. Changes the size of each cpu\n\tbuffer. Note, it is up to the caller to provide that\n\tthe buffer is not being used while this is happening.\n\tThis requirement may go away but do not count on it.\n\nring_buffer_lock_reserve: locks the ring buffer and allocates an\n\tentry on the buffer to write to.\nring_buffer_unlock_commit: unlocks the ring buffer and commits it to\n\tthe buffer.\n\nring_buffer_write: writes some data into the ring buffer.\n\nring_buffer_peek: Look at a next item in the cpu buffer.\nring_buffer_consume: get the next item in the cpu buffer and\n\tconsume it. That is, this function increments the head\n\tpointer.\n\nring_buffer_read_start: Start an iterator of a cpu buffer.\n\tFor now, this disables the cpu buffer, until you issue\n\ta finish. This is just because we do not want the iterator\n\tto be overwritten. This restriction may change in the future.\n\tBut note, this is used for static reading of a buffer which\n\tis usually done \"after\" a trace. Live readings would want\n\tto use the ring_buffer_consume above, which will not\n\tdisable the ring buffer.\n\nring_buffer_read_finish: Finishes the read iterator and reenables\n\tthe ring buffer.\n\nring_buffer_iter_peek: Look at the next item in the cpu iterator.\nring_buffer_read: Read the iterator and increment it.\nring_buffer_iter_reset: Reset the iterator to point to the beginning\n\tof the cpu buffer.\nring_buffer_iter_empty: Returns true if the iterator is at the end\n\tof the cpu buffer.\n\nring_buffer_size: returns the size in bytes of each cpu buffer.\n\tNote, the real size is this times the number of CPUs.\n\nring_buffer_reset_cpu: Sets the cpu buffer to empty\nring_buffer_reset: sets all cpu buffers to empty\n\nring_buffer_swap_cpu: swaps a cpu buffer from one buffer with a\n\tcpu buffer of another buffer. This is handy when you\n\twant to take a snap shot of a running trace on just one\n\tcpu. Having a backup buffer, to swap with facilitates this.\n\tFtrace max latencies use this.\n\nring_buffer_empty: Returns true if the ring buffer is empty.\nring_buffer_empty_cpu: Returns true if the cpu buffer is empty.\n\nring_buffer_record_disable: disable all cpu buffers (read only)\nring_buffer_record_disable_cpu: disable a single cpu buffer (read only)\nring_buffer_record_enable: enable all cpu buffers.\nring_buffer_record_enabl_cpu: enable a single cpu buffer.\n\nring_buffer_entries: The number of entries in a ring buffer.\nring_buffer_overruns: The number of entries removed due to writing wrap.\n\nring_buffer_time_stamp: Get the time stamp used by the ring buffer\nring_buffer_normalize_time_stamp: normalize the ring buffer time stamp\n\tinto nanosecs.\n\nI still need to implement the GTOD feature. But we need support from\nthe cpu frequency infrastructure.  But this can be done at a later\ntime without affecting the ring buffer interface.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5aa60c6073456812251caf9177cb921b2de68f77",
      "tree": "8eb56cc1db2101f31b0215134503496d8a29f639",
      "parents": [
        "7c572ac0cf5e8cd8e17f084bc6c253296cc42279"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 29 23:02:37 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:53 2008 +0200"
      },
      "message": "ftrace: give time for wakeup test to run\n\nIt is possible that the testing thread in the ftrace wakeup test does not\nrun before we stop the trace. This will cause the trace to fail since nothing\nwill be in the buffers.\n\nThis patch adds a small wait in the wakeup test to allow for the woken task\nto run and be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7c572ac0cf5e8cd8e17f084bc6c253296cc42279",
      "tree": "687ab958f3f4b9689064437808bf7fc508e28c4d",
      "parents": [
        "3ce2b9200da8b7170cc7463b7ee4212fad7b291e"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 25 13:25:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:52 2008 +0200"
      },
      "message": "tracing/ftrace: don\u0027t consume unhandled entries by boot tracer\n\nWhen the boot tracer can\u0027t handle an entry output, it returns 1.\nIt should return 0 to relay on other output functions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ce2b9200da8b7170cc7463b7ee4212fad7b291e",
      "tree": "8e9e05fb3e5282e199ee9953205504a8ded54d02",
      "parents": [
        "3bf77af6e1fef1124bf71d81f9f84885f0ee0dea"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 24 10:36:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:51 2008 +0200"
      },
      "message": "ftrace/fastboot: disable tracers self-tests when boot tracer is selected\n\nThe tracing engine resets the ring buffer and the tracers touch it\ntoo during self-tests. These self-tests happen during tracers registering\nand work against boot tracing which is logging initcalls.\n\nWe have to disable tracing self-tests if the boot-tracer is selected.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1f5c2abbdeb2bb07b20c6a66bfecefe6c867b1ee",
      "tree": "0ba861c8817994f3c46446368b806f54c037b09d",
      "parents": [
        "b5ad384e79add1d87fff54070000dadcf218ffab"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 23 11:36:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:49 2008 +0200"
      },
      "message": "tracing/ftrace: give an entry on the config for boot tracer\n\nBring the entry to choose the boot tracer on the kernel config.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5ad384e79add1d87fff54070000dadcf218ffab",
      "tree": "002ce9397b13197b248c5b061bdb8728a58092c4",
      "parents": [
        "d13744cd6e3fef373a3fe656ac349b4e7c49ff79"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 23 11:34:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:48 2008 +0200"
      },
      "message": "tracing/ftrace: make tracing suitable to run the boot tracer\n\nThe tracing engine have now to be init in early_initcall to set the\nboot tracer. Only the debugfs settings will be initialized at\nfs_initcall time.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d13744cd6e3fef373a3fe656ac349b4e7c49ff79",
      "tree": "7315ec5390bd4977ecf5d0b25d7ec5cf0440236a",
      "parents": [
        "aa5d9151f745b6ee6a236a1f109118034277eb92"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 23 11:32:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:47 2008 +0200"
      },
      "message": "tracing/ftrace: add the boot tracer\n\nAdd the boot/initcall tracer.\n\nIt\u0027s primary purpose is to be able to trace the initcalls.\n\nIt is intended to be used with scripts/bootgraph.pl after some small\nimprovements.\n\nNote that it is not active after its init. To avoid tracing (and so\ncrashing) before the whole tracing engine init, you have to explicitly\ncall start_boot_trace() after do_pre_smp_initcalls() to enable it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05736a427f7e16be948ccbf39782bd3a6ae16b14",
      "tree": "6efd6991853918242947df308be60b14a6fa5e80",
      "parents": [
        "43a15386c4faf913f7d70a47748c266d6210cd6e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Sep 22 14:55:47 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:11 2008 +0200"
      },
      "message": "ftrace: warn on failure to disable mcount callers\n\nWith the recent updates to ftrace, there should not be any failures when\nmodifying the code. If there is, then we need to warn about it.\n\nThis patch has a cleaned up version of the code that I used to discover\nthat the weak symbols were causing failures.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43a15386c4faf913f7d70a47748c266d6210cd6e",
      "tree": "2af766a34661123bd520fb30b1f83fbff1e65dab",
      "parents": [
        "2a3a4f669df2164288d11406d11d5e4933bf5e53"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Sep 21 20:16:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:09 2008 +0200"
      },
      "message": "tracing/ftrace: replace none tracer by nop tracer\n\nReplace \"none\" tracer by the recently created \"nop\" tracer.\nBoth are pretty similar except that nop accepts TRACE_PRINT\nor TRACE_SPECIAL entries.\n\nAnd as a consequence, changing the size of the ring buffer now\nrequires that tracing has already been disabled.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a3a4f669df2164288d11406d11d5e4933bf5e53",
      "tree": "cbcab61ae346f24731b52c706a3650978a95aba3",
      "parents": [
        "35cb5ed01261f5669657d2f1720aca902299887d"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Sep 21 20:12:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:06 2008 +0200"
      },
      "message": "tracing/ftrace: tracing engine depends on Nop Tracer\n\nNow that the nop tracer is used as the default tracer by\nreplacing the \"none\" tracer, tracing engine depends on it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "35cb5ed01261f5669657d2f1720aca902299887d",
      "tree": "b4c91f58d56f0744d076cfb69967efa747f1385d",
      "parents": [
        "8925b394eca0bb0a444a6487d702d0f650e94a10"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Sep 21 20:10:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:04 2008 +0200"
      },
      "message": "tracing/ftrace: make nop tracer reset previous entries\n\nIf nop tracer is selected, some old entries from the previous tracer\ncould still be enqueued. Tracing have to be reset.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8925b394eca0bb0a444a6487d702d0f650e94a10",
      "tree": "855a9f3ba8f6e74eaf0301898d79619077fa9b8d",
      "parents": [
        "71c67d58b5660f8e42c7d4c3e77cbc03fac5ed31"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Sat Sep 20 01:00:38 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:01 2008 +0200"
      },
      "message": "trace: remove pointless ifdefs\n\nThe functions are already \u0027extern\u0027 anyway, so there\u0027s no problem\nwith linkage. Removing these ifdefs also helps find any potential\ncompiler errors.\n\nSuggested by Andrew Morton.\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71c67d58b5660f8e42c7d4c3e77cbc03fac5ed31",
      "tree": "c098b6b717c3bf1cb80bef83bde7c9a0ccbacaad",
      "parents": [
        "fb1b6d8b5154c692172a424e45fbd0573295cb93"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Sat Sep 20 01:00:37 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:58 2008 +0200"
      },
      "message": "ftrace: mcount_addr defined but not used\n\nWhen CONFIG_DYNAMIC_FTRACE isn\u0027t used, neither is mcount_addr. This\npatch eliminates that warning.\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb1b6d8b5154c692172a424e45fbd0573295cb93",
      "tree": "d9a7ad2c629a6133998402354e77cd721e4962b4",
      "parents": [
        "5bf9a1ee350a10feb94107de32a203d81fbbe706"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Fri Sep 19 03:06:43 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:43 2008 +0200"
      },
      "message": "ftrace: add nop tracer\n\nA no-op tracer which can serve two purposes:\n\n 1. A template for development of a new tracer.\n 2. A convenient way to see ftrace_printk() calls without\n    an irrelevant trace making the output messy.\n\n[ mingo@elte.hu: resolved conflicts ]\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5bf9a1ee350a10feb94107de32a203d81fbbe706",
      "tree": "ac6b11aaa35194aed9fe9f1403c9542d070d0c62",
      "parents": [
        "4427414170a63331a9cc36b9598502c5cdfe453b"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:06:42 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:20 2008 +0200"
      },
      "message": "ftrace: inject markers via trace_marker file\n\nAllow a user to inject a marker (TRACE_PRINT entry) into the trace ring\nbuffer. The related file operations are derived from code by Frédéric\nWeisbecker \u003cfweisbec@gmail.com\u003e.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fc5e27ae4b45a0619701a83f30d9b7fad7ed9400",
      "tree": "236b53e76430aae9f6b1abc37de9259ba95c38c6",
      "parents": [
        "9e57fb35d711331a9b1410c5c56ebeb3733428a0"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:02:27 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:14 2008 +0200"
      },
      "message": "mmiotrace: handle TRACE_PRINT entries\n\nAlso make trace_seq_print_cont() non-static, and add a newline if the\nseq buffer can\u0027t hold all data.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e57fb35d711331a9b1410c5c56ebeb3733428a0",
      "tree": "2e68b1b8bb233378cbcad0c8e9bc8f99abf7263a",
      "parents": [
        "801fe40001dfc263848552fb28924b766ed44ea4"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:00:34 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:11 2008 +0200"
      },
      "message": "x86 mmiotrace: implement mmiotrace_printk()\n\nOffer mmiotrace users a function to inject markers from inside the kernel.\nThis depends on the trace_vprintk() patch.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "801fe40001dfc263848552fb28924b766ed44ea4",
      "tree": "fbb0a6ff09deb9f605d955ccdc6f5cb89793e1cf",
      "parents": [
        "45dcd8b8a8ca855591e3ac882d3a7fc255d09d43"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 21:58:24 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:07 2008 +0200"
      },
      "message": "ftrace: add trace_vprintk()\n\ntrace_vprintk() for easier implementation of tracer specific *_printk\nfunctions. Add check check for no_tracer, and implement\n__ftrace_printk() as a wrapper.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45dcd8b8a8ca855591e3ac882d3a7fc255d09d43",
      "tree": "55b1772dfc9a6381ab1ecad7f3f6fbd605427f20",
      "parents": [
        "bbe5c7830c6dbde58726d44ec0337bc8b2d95d37"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 21:56:41 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:04 2008 +0200"
      },
      "message": "ftrace: move mmiotrace functions out of trace.c\n\nMoves the mmiotrace specific functions from trace.c to\ntrace_mmiotrace.c. Functions trace_wake_up(), tracing_get_trace_entry(),\nand tracing_generic_entry_update() are therefore made available outside\ntrace.c.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "644f991d4b920ab1f5043509651479420b293490",
      "tree": "075c57f5fd43206d54e5debed0e738e1878d73aa",
      "parents": [
        "c0719e5a4b1ccc04180b7a7b71095c9fb7131919"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sat Sep 06 01:06:04 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:58 2008 +0200"
      },
      "message": "ftrace: fix unlocking of hash\n\nThis must be brown paper bag week for Steven Rostedt!\n\nWhile working on ftrace for PPC, I discovered that the hash locking done\nwhen CONFIG_FTRACE_MCOUNT_RECORD is not set, is totally incorrect.\n\nWith a cut and paste error, I had the hash lock macro to lock for both\nhash_lock _and_ hash_unlock!\n\nThis bug did not affect x86 since this bug was introduced when\nCONFIG_FTRACE_MCOUNT_RECORD was added to x86.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3ee6d992821f471193a7ee7a00af9ebb4bf5d01",
      "tree": "4dbd9712266848c101f249c9df7840ba784b5a31",
      "parents": [
        "80b5e940050c273ba277acbf3a9fbc1d4441e681"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 04 14:04:51 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:51 2008 +0200"
      },
      "message": "ftrace: make it depend on DEBUG_KERNEL\n\nmake most of the tracers depend on DEBUG_KERNEL - that\u0027s their intended\npurpose. (most distributions have DEBUG_KERNEL enabled anyway so this is\nnot a practical limitation - but it simplifies the tracing menu in the\nnormal case)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80b5e940050c273ba277acbf3a9fbc1d4441e681",
      "tree": "dd40f96b91fe3dc5508395cf9a559e14070499e7",
      "parents": [
        "f09ce573f57ddc35c67b39e51f34545877b30031"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 04 10:24:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:48 2008 +0200"
      },
      "message": "ftrace: sched_switch: show the wakee\u0027s cpu\n\nWhile profiling the smp behaviour of the scheduler it was needed to know to\nwhich cpu a task got woken.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f09ce573f57ddc35c67b39e51f34545877b30031",
      "tree": "776620a03aa55eecf5497b2a2a8027de6d819624",
      "parents": [
        "5a90f577e5369a84b720ead42e621fcb1b8a8b21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 04 10:24:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:45 2008 +0200"
      },
      "message": "ftrace: make ftrace_printk usable with the other tracers\n\nCurrently ftrace_printk only works with the ftrace tracer, switch it to an\niter_ctrl setting so we can make us of them with other tracers too.\n\n[rostedt@redhat.com: tweak to the disable condition]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a90f577e5369a84b720ead42e621fcb1b8a8b21",
      "tree": "55263f6d25613ce1ba98062ca96635aaac5dd426",
      "parents": [
        "652567aa2000f1d4a1fd434382a30d8dd4a7c980"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 03 17:42:51 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:42 2008 +0200"
      },
      "message": "ftrace: print continue index fix\n\nAn item in the trace buffer that is bigger than one entry may be split\nup using the TRACE_CONT entry. This makes it a virtual single entry.\nThe current code increments the iterator index even while traversing\nTRACE_CONT entries, making it look like the iterator is further than\nit actually is.\n\nThis patch adds code to not increment the iterator index while skipping\nover TRACE_CONT entries.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "652567aa2000f1d4a1fd434382a30d8dd4a7c980",
      "tree": "0686a5ceeeb9f6ecedf5d063d05563ac32359554",
      "parents": [
        "a6168353d1c0b24b7512e14d1c3e47ed69881a23"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 03 17:42:50 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:39 2008 +0200"
      },
      "message": "ftrace: binary and not logical for continue test\n\nPeter Zijlstra provided me with a nice brown paper bag while letting me know\nthat I was doing a logical AND and not a binary one, making a condition\ntrue more often than it should be.\n\nLuckily, a false true is handled by the calling function and no harm is\ndone. But this needs to be fixed regardless.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6168353d1c0b24b7512e14d1c3e47ed69881a23",
      "tree": "f019f0304ed7465b5dbe25374a62fa704196749a",
      "parents": [
        "2ff01c6a17391225a18256d510b6e5b4aba40aa1"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Wed Aug 20 16:36:11 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:34 2008 +0200"
      },
      "message": "ftrace: make output nicely spaced for up to 999 cpus\n\nCurrently some of the ftrace output goes skewiff if you have more\nthan 9 cpus, and some if you have more than 99.\n\nTwiddle with the headers and format strings to make up to 999 cpus\ndisplay without causing spacing problems.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ff01c6a17391225a18256d510b6e5b4aba40aa1",
      "tree": "9645990cbdcf5009c6b901de1004c3369e44c1aa",
      "parents": [
        "1b6cced6ec9677fa65471e890dfdcb4bf5387643"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 04 15:04:37 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:31 2008 +0200"
      },
      "message": "stack tracer: depends on DEBUG_KERNEL\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1b6cced6ec9677fa65471e890dfdcb4bf5387643",
      "tree": "3728f61fff36a4c2f1f41ae15e638be58437c6bc",
      "parents": [
        "d53475b5aa946752e3306b2ecb5a8c9c51cf8dd0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 29 16:51:43 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:28 2008 +0200"
      },
      "message": "ftrace: stack trace add indexes\n\nThis patch adds indexes into the stack that the functions in the\nstack dump were found at. As an added bonus, I also added a diff\nto show which function is the most notorious consumer of the stack.\n\nThe output now looks like this:\n\n# cat /debug/tracing/stack_trace\n        Depth   Size      Location    (48 entries)\n        -----   ----      --------\n  0)     2476     212   blk_recount_segments+0x39/0x59\n  1)     2264      12   bio_phys_segments+0x16/0x1d\n  2)     2252      20   blk_rq_bio_prep+0x23/0xaf\n  3)     2232      12   init_request_from_bio+0x74/0x77\n  4)     2220      56   __make_request+0x294/0x331\n  5)     2164     136   generic_make_request+0x34f/0x37d\n  6)     2028      56   submit_bio+0xe7/0xef\n  7)     1972      28   submit_bh+0xd1/0xf0\n  8)     1944     112   block_read_full_page+0x299/0x2a9\n  9)     1832       8   blkdev_readpage+0x14/0x16\n 10)     1824      28   read_cache_page_async+0x7e/0x109\n 11)     1796      16   read_cache_page+0x11/0x49\n 12)     1780      32   read_dev_sector+0x3c/0x72\n 13)     1748      48   read_lba+0x4d/0xaa\n 14)     1700     168   efi_partition+0x85/0x61b\n 15)     1532      72   rescan_partitions+0x10e/0x266\n 16)     1460      40   do_open+0x1c7/0x24e\n 17)     1420     292   __blkdev_get+0x79/0x84\n 18)     1128      12   blkdev_get+0x12/0x14\n 19)     1116      20   register_disk+0xd1/0x11e\n 20)     1096      28   add_disk+0x34/0x90\n 21)     1068      52   sd_probe+0x2b1/0x366\n 22)     1016      20   driver_probe_device+0xa5/0x120\n 23)      996       8   __device_attach+0xd/0xf\n 24)      988      32   bus_for_each_drv+0x3e/0x68\n 25)      956      24   device_attach+0x56/0x6c\n 26)      932      16   bus_attach_device+0x26/0x4d\n 27)      916      64   device_add+0x380/0x4b4\n 28)      852      28   scsi_sysfs_add_sdev+0xa1/0x1c9\n 29)      824     160   scsi_probe_and_add_lun+0x919/0xa2a\n 30)      664      36   __scsi_add_device+0x88/0xae\n 31)      628      44   ata_scsi_scan_host+0x9e/0x21c\n 32)      584      28   ata_host_register+0x1cb/0x1db\n 33)      556      24   ata_host_activate+0x98/0xb5\n 34)      532     192   ahci_init_one+0x9bd/0x9e9\n 35)      340      20   pci_device_probe+0x3e/0x5e\n 36)      320      20   driver_probe_device+0xa5/0x120\n 37)      300      20   __driver_attach+0x3f/0x5e\n 38)      280      36   bus_for_each_dev+0x40/0x62\n 39)      244      12   driver_attach+0x19/0x1b\n 40)      232      28   bus_add_driver+0x9c/0x1af\n 41)      204      28   driver_register+0x76/0xd2\n 42)      176      20   __pci_register_driver+0x44/0x71\n 43)      156       8   ahci_init+0x14/0x16\n 44)      148     100   _stext+0x42/0x122\n 45)       48      20   kernel_init+0x175/0x1dc\n 46)       28      28   kernel_thread_helper+0x7/0x10\n\nThe first column is simply an index starting from the inner most function\nand counting down to the outer most.\n\nThe next column is the location that the function was found on the stack.\n\nThe next column is the size of the stack for that function.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b47bfc1fca01cccad9cce2d18b79b18ef2e4131",
      "tree": "5be5a241139b505dcb0edf6150183096c23b47ed",
      "parents": [
        "e5a81b629ea8feb9e7530cfac35cfb41c45facf3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 27 23:24:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:22 2008 +0200"
      },
      "message": "ftrace: remove direct reference to mcount in trace code\n\nThe mcount record method of ftrace scans objdump for references to mcount.\nUsing mcount as the reference to test if the calls to mcount being replaced\nare indeed calls to mcount, this use of mcount was also caught as a\nlocation to change. Using a variable that points to the mcount address\nmoves this reference into the data section that is not scanned, and\nwe do not use a false location to try and modify.\n\nThe warn on code was what was used to detect this bug.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5a81b629ea8feb9e7530cfac35cfb41c45facf3",
      "tree": "71437955371e0913521d4ddb02db974df9fd8d34",
      "parents": [
        "b3a320417484a6d6b9d28098944df58341353992"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 27 23:31:01 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:19 2008 +0200"
      },
      "message": "ftrace: add stack tracer\n\nThis is another tracer using the ftrace infrastructure, that examines\nat each function call the size of the stack. If the stack use is greater\nthan the previous max it is recorded.\n\nYou can always see (and set) the max stack size seen. By setting it\nto zero will start the recording again. The backtrace is also available.\n\nFor example:\n\n# cat /debug/tracing/stack_max_size\n1856\n\n# cat /debug/tracing/stack_trace\n[\u003cc027764d\u003e] stack_trace_call+0x8f/0x101\n[\u003cc021b966\u003e] ftrace_call+0x5/0x8\n[\u003cc02553cc\u003e] clocksource_get_next+0x12/0x48\n[\u003cc02542a5\u003e] update_wall_time+0x538/0x6d1\n[\u003cc0245913\u003e] do_timer+0x23/0xb0\n[\u003cc0257657\u003e] tick_do_update_jiffies64+0xd9/0xf1\n[\u003cc02576b9\u003e] tick_sched_timer+0x4a/0xad\n[\u003cc0250fe6\u003e] __run_hrtimer+0x3e/0x75\n[\u003cc02518ed\u003e] hrtimer_interrupt+0xf1/0x154\n[\u003cc022c870\u003e] smp_apic_timer_interrupt+0x71/0x84\n[\u003cc021b7e9\u003e] apic_timer_interrupt+0x2d/0x34\n[\u003cc0238597\u003e] finish_task_switch+0x29/0xa0\n[\u003cc05abd13\u003e] schedule+0x765/0x7be\n[\u003cc05abfca\u003e] schedule_timeout+0x1b/0x90\n[\u003cc05ab4d4\u003e] wait_for_common+0xab/0x101\n[\u003cc05ab5ac\u003e] wait_for_completion+0x12/0x14\n[\u003cc033cfc3\u003e] blk_execute_rq+0x84/0x99\n[\u003cc0402470\u003e] scsi_execute+0xc2/0x105\n[\u003cc040250a\u003e] scsi_execute_req+0x57/0x7f\n[\u003cc043afe0\u003e] sr_test_unit_ready+0x3e/0x97\n[\u003cc043bbd6\u003e] sr_media_change+0x43/0x205\n[\u003cc046b59f\u003e] media_changed+0x48/0x77\n[\u003cc046b5ff\u003e] cdrom_media_changed+0x31/0x37\n[\u003cc043b091\u003e] sr_block_media_changed+0x16/0x18\n[\u003cc02b9e69\u003e] check_disk_change+0x1b/0x63\n[\u003cc046f4c3\u003e] cdrom_open+0x7a1/0x806\n[\u003cc043b148\u003e] sr_block_open+0x78/0x8d\n[\u003cc02ba4c0\u003e] do_open+0x90/0x257\n[\u003cc02ba869\u003e] blkdev_open+0x2d/0x56\n[\u003cc0296a1f\u003e] __dentry_open+0x14d/0x23c\n[\u003cc0296b32\u003e] nameidata_to_filp+0x24/0x38\n[\u003cc02a1c68\u003e] do_filp_open+0x347/0x626\n[\u003cc02967ef\u003e] do_sys_open+0x47/0xbc\n[\u003cc02968b0\u003e] sys_open+0x23/0x2b\n[\u003cc021aadd\u003e] sysenter_do_call+0x12/0x26\n\nI\u0027ve tested this on both x86_64 and i386.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac8825ec6d941b6899331b84c7d6bf027c3bb4f1",
      "tree": "3c8673f34f88e9438405216416ad22af8b9e4998",
      "parents": [
        "2d7da80f7138c4276ef4fa0334be400b805d0fbf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 25 08:12:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:09 2008 +0200"
      },
      "message": "ftrace: clean up macro usage\n\nenclose the argument in parenthesis. (especially since we cast it,\nwhich is a high prio operation)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d7da80f7138c4276ef4fa0334be400b805d0fbf",
      "tree": "2c2c21758498c989cf22414bf66bff1093edd263",
      "parents": [
        "6f93fc076a464bfe24e8d4c5fea3f6ca5bdb264d"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Aug 25 13:08:44 2008 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:36:06 2008 +0200"
      },
      "message": "ftrace: fix build failure\n\nAfter disabling FTRACE_MCOUNT_RECORD via a patch, a dormant build\nfailure surfaced:\n\n kernel/trace/ftrace.c: In function \u0027ftrace_record_ip\u0027:\n kernel/trace/ftrace.c:416: error: incompatible type for argument 1 of \u0027_spin_lock_irqsave\u0027\n kernel/trace/ftrace.c:433: error: incompatible type for argument 1 of \u0027_spin_lock_irqsave\u0027\n\nIntroduced by commit 6dad8e07f4c10b17b038e84d29f3ca41c2e55cd0 (\"ftrace:\nadd necessary locking for ftrace records\").\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "99ecdc43bc17faf5fa571db8569df171ecd0e5b8",
      "tree": "aedefb2859247aefe7538e479ab71bcd3a1717c8",
      "parents": [
        "00fd61aee10533e003f2f00ab7163207660a4051"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 15 21:40:05 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:47 2008 +0200"
      },
      "message": "ftrace: add necessary locking for ftrace records\n\nThe new design of pre-recorded mcounts and updating the code outside of\nkstop_machine has changed the way the records themselves are protected.\n\nThis patch uses the ftrace_lock to protect the records. Note, the lock\nstill does not need to be taken within calls that are only called via\nkstop_machine, since the that code can not run while the spin lock is held.\n\nAlso removed the hash_lock needed for the daemon when MCOUNT_RECORD is\nconfigured. Also did a slight cleanup of an unused variable.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00fd61aee10533e003f2f00ab7163207660a4051",
      "tree": "72f42d3a4b238d84e3697c53b31b1ba9f8d022cb",
      "parents": [
        "98a983aad2e5b3dc83a8a761675445cdd8f3e6bd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 15 21:40:04 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:43 2008 +0200"
      },
      "message": "ftrace: do not init module on ftrace disabled\n\nIf one of the self tests of ftrace has disabled the function tracer,\ndo not run the code to convert the mcount calls in modules.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98a983aad2e5b3dc83a8a761675445cdd8f3e6bd",
      "tree": "f207a80453ff556fa1ddcb7eef4f17485a647161",
      "parents": [
        "3989cce82b272bd6312555fcc47c11715c157102"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 15 21:08:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:40 2008 +0200"
      },
      "message": "ftrace: fix some mistakes in error messages\n\nThis patch fixes some mistakes on the tracer in warning messages when\ndebugfs fails to create tracing files.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: srostedt@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f5a54e371ca20b119b73704f6c01b71295c1714",
      "tree": "1453315564a19e967f11e612e264d4d2989afbe5",
      "parents": [
        "2f2c99dba2398ef7d9c21f7c793180a50e68b1f0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 30 22:36:46 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:26 2008 +0200"
      },
      "message": "ftrace: dump out ftrace buffers to console on panic\n\nAt OLS I had a lot of interest to be able to have the ftrace buffers\ndumped on panic.  Usually one would expect to uses kexec and examine\nthe buffers after a new kernel is loaded. But sometimes the resources\ndo not permit kdump and kexec, so having an option to still see the\nsequence of events up to the crash is very advantageous.\n\nThis patch adds the option to have the ftrace buffers dumped to the\nconsole in the latency_trace format on a panic. When the option is set,\nthe default entries per CPU buffer are lowered to 16384, since the writing\nto the serial (if that is the console) may take an awful long time\notherwise.\n\n[\n Changes since -v1:\n  Got alpine to send correctly (as well as spell check working).\n  Removed config option.\n  Moved the static variables into ftrace_dump itself.\n  Gave printk a log level.\n]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f2c99dba2398ef7d9c21f7c793180a50e68b1f0",
      "tree": "4948b0cd7b9828aa19f6862b10173cbc9f59ea68",
      "parents": [
        "dd0e545f061f90099a3dcc13aa77e29c6295cf23"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 16:45:49 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:22 2008 +0200"
      },
      "message": "ftrace: ftrace_printk doc moved\n\nBased on Randy Dunlap\u0027s suggestion, the ftrace_printk kernel-doc belongs\nwith the ftrace_printk macro that should be used. Not with the\n__ftrace_printk internal function.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd0e545f061f90099a3dcc13aa77e29c6295cf23",
      "tree": "91842e81cacd2ae785bf14b96f3f65af96985658",
      "parents": [
        "2e2ca155cd2213b4f398031180fb3d399d5b7db9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 12:26:41 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:19 2008 +0200"
      },
      "message": "ftrace: printk formatting infrastructure\n\nThis patch adds a feature that can help kernel developers debug their\ncode using ftrace.\n\n  int ftrace_printk(const char *fmt, ...);\n\nThis records into the ftrace buffer using printf formatting. The entry\nsize in the buffers are still a fixed length. A new type has been added\nthat allows for more entries to be used for a single recording.\n\nThe start of the print is still the same as the other entries.\n\nIt returns the number of characters written to the ftrace buffer.\n\nFor example:\n\nHaving a module with the following code:\n\nstatic int __init ftrace_print_test(void)\n{\n        ftrace_printk(\"jiffies are %ld\\n\", jiffies);\n        return 0;\n}\n\nGives me:\n\n  insmod-5441  3...1 7569us : ftrace_print_test: jiffies are 4296626666\n\nfor the latency_trace file and:\n\n          insmod-5441  [03]  1959.370498: ftrace_print_test jiffies are 4296626666\n\nfor the trace file.\n\nNote: Only the infrastructure should go into the kernel. It is to help\nfacilitate debugging for other kernel developers. Calls to ftrace_printk\nis not intended to be left in the kernel, and should be frowned upon just\nlike scattering printks around in the code.\n\nBut having this easily at your fingertips helps the debugging go faster\nand bugs be solved quicker.\n\nMaybe later on, we can hook this with markers and have their printf format\nbe sucked into ftrace output.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e2ca155cd2213b4f398031180fb3d399d5b7db9",
      "tree": "027295832950e23ac4edc84e43550d02e9a1acc6",
      "parents": [
        "fed1939c64d2288938fdc1c367d49082da65e195"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 01 12:26:40 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:15 2008 +0200"
      },
      "message": "ftrace: new continue entry - separate out from trace_entry\n\nSome tracers will need to work with more than one entry. In order to do this\nthe trace_entry structure was split into two fields. One for the start of\nall entries, and one to continue an existing entry.\n\nThe trace_entry structure now has a \"field\" entry that consists of the previous\ncontent of the trace_entry, and a \"cont\" entry that is just a string buffer\nthe size of the \"field\" entry.\n\nThanks to Andrew Morton for suggesting this idea.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fed1939c64d2288938fdc1c367d49082da65e195",
      "tree": "a4592352d28efcfe82379c71d061b9127e49a115",
      "parents": [
        "28614889bcb2558a47d02d52394b7fd9795a9547"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 22:47:19 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:12 2008 +0200"
      },
      "message": "ftrace: remove old pointers to mcount\n\nWhen a mcount pointer is recorded into a table, it is used to add or\nremove calls to mcount (replacing them with nops). If the code is removed\nvia removing a module, the pointers still exist.  At modifying the code\na check is always made to make sure the code being replaced is the code\nexpected. In-other-words, the code being replaced is compared to what\nit is expected to be before being replaced.\n\nThere is a very small chance that the code being replaced just happens\nto look like code that calls mcount (very small since the call to mcount\nis relative). To remove this chance, this patch adds ftrace_release to\nallow module unloading to remove the pointers to mcount within the module.\n\nAnother change for init calls is made to not trace calls marked with\n__init. The tracing can not be started until after init is done anyway.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9fdda33cd7c7519b082e37538fe790f9ff684bb",
      "tree": "56d16d69e519e127a2090df6a16aa9029e8c0e05",
      "parents": [
        "732f3ca7d4ba3c1be8d051d52302ef441ee7748b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 22:47:17 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:35:05 2008 +0200"
      },
      "message": "ftrace: do not show freed records in available_filter_functions\n\nSeems that freed records can appear in the available_filter_functions list.\nThis patch fixes that.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90d595fe5ca4b685465c068907e6e554760abea8",
      "tree": "03f98454af8c6756177aa053ae7440373007f67d",
      "parents": [
        "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:47 2008 +0200"
      },
      "message": "ftrace: enable mcount recording for modules\n\nThis patch enables the loading of the __mcount_section of modules and\nchanging all the callers of mcount into nops.\n\nThe modification is done before the init_module function is called, so\nagain, we do not need to use kstop_machine to make these changes.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1",
      "tree": "54d4d4f7e8311b77f3166a8807a635347d479081",
      "parents": [
        "8da3821ba5634497da63d58a69e24a97697c4a2b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:08 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:44 2008 +0200"
      },
      "message": "ftrace: mcount call site on boot nops core\n\nThis is the infrastructure to the converting the mcount call sites\nrecorded by the __mcount_loc section into nops on boot. It also allows\nfor using these sites to enable tracing as normal. When the __mcount_loc\nsection is used, the \"ftraced\" kernel thread is disabled.\n\nThis uses the current infrastructure to record the mcount call sites\nas well as convert them to nops. The mcount function is kept as a stub\non boot up and not converted to the ftrace_record_ip function. We use the\nftrace_record_ip to only record from the table.\n\nThis patch does not handle modules. That comes with a later patch.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8da3821ba5634497da63d58a69e24a97697c4a2b",
      "tree": "47d4d097b1cd2aafae2e3596a9ae0d1293228782",
      "parents": [
        "8b1fa1d7b22f386747c7b78b918d4c680c16066f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:07 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:40 2008 +0200"
      },
      "message": "ftrace: create __mcount_loc section\n\nThis patch creates a section in the kernel called \"__mcount_loc\".\nThis will hold a list of pointers to the mcount relocation for\neach call site of mcount.\n\nFor example:\n\nobjdump -dr init/main.o\n[...]\nDisassembly of section .text:\n\n0000000000000000 \u003cdo_one_initcall\u003e:\n   0:   55                      push   %rbp\n[...]\n000000000000017b \u003cinit_post\u003e:\n 17b:   55                      push   %rbp\n 17c:   48 89 e5                mov    %rsp,%rbp\n 17f:   53                      push   %rbx\n 180:   48 83 ec 08             sub    $0x8,%rsp\n 184:   e8 00 00 00 00          callq  189 \u003cinit_post+0xe\u003e\n                        185: R_X86_64_PC32      mcount+0xfffffffffffffffc\n[...]\n\nWe will add a section to point to each function call.\n\n   .section __mcount_loc,\"a\",@progbits\n[...]\n   .quad .text + 0x185\n[...]\n\nThe offset to of the mcount call site in init_post is an offset from\nthe start of the section, and not the start of the function init_post.\nThe mcount relocation is at the call site 0x185 from the start of the\n.text section.\n\n  .text + 0x185  \u003d\u003d init_post + 0xa\n\nWe need a way to add this __mcount_loc section in a way that we do not\nlose the relocations after final link.  The .text section here will\nbe attached to all other .text sections after final link and the\noffsets will be meaningless.  We need to keep track of where these\n.text sections are.\n\nTo do this, we use the start of the first function in the section.\ndo_one_initcall.  We can make a tmp.s file with this function as a reference\nto the start of the .text section.\n\n   .section __mcount_loc,\"a\",@progbits\n[...]\n   .quad do_one_initcall + 0x185\n[...]\n\nThen we can compile the tmp.s into a tmp.o\n\n  gcc -c tmp.s -o tmp.o\n\nAnd link it into back into main.o.\n\n  ld -r main.o tmp.o -o tmp_main.o\n  mv tmp_main.o main.o\n\nBut we have a problem.  What happens if the first function in a section\nis not exported, and is a static function. The linker will not let\nthe tmp.o use it.  This case exists in main.o as well.\n\nDisassembly of section .init.text:\n\n0000000000000000 \u003cset_reset_devices\u003e:\n   0:   55                      push   %rbp\n   1:   48 89 e5                mov    %rsp,%rbp\n   4:   e8 00 00 00 00          callq  9 \u003cset_reset_devices+0x9\u003e\n                        5: R_X86_64_PC32        mcount+0xfffffffffffffffc\n\nThe first function in .init.text is a static function.\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n\nThe lowercase \u0027t\u0027 means that set_reset_devices is local and is not exported.\nIf we simply try to link the tmp.o with the set_reset_devices we end\nup with two symbols: one local and one global.\n\n .section __mcount_loc,\"a\",@progbits\n .quad set_reset_devices + 0x10\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n                 U set_reset_devices\n\nWe still have an undefined reference to set_reset_devices, and if we try\nto compile the kernel, we will end up with an undefined reference to\nset_reset_devices, or even worst, it could be exported someplace else,\nand then we will have a reference to the wrong location.\n\nTo handle this case, we make an intermediate step using objcopy.\nWe convert set_reset_devices into a global exported symbol before linking\nit with tmp.o and set it back afterwards.\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 T set_reset_devices\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 T set_reset_devices\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n\nNow we have a section in main.o called __mcount_loc that we can place\nsomewhere in the kernel using vmlinux.ld.S and access it to convert\nall these locations that call mcount into nops before starting SMP\nand thus, eliminating the need to do this with kstop_machine.\n\nNote, A well documented perl script (scripts/recordmcount.pl) is used\nto do all this in one location.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f87f1121895dc09d2d1c1db5f14af6aa4ce3e94",
      "tree": "4b8354ab2dc0890d0d4c91d42ff9e13db50ebeab",
      "parents": [
        "cf569a932217b97e2fc2c48aa597fe29519a0cff"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 23 14:15:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:33:32 2008 +0200"
      },
      "message": "tracing: clean up tracepoints kconfig structure\n\ndo not expose users to CONFIG_TRACEPOINTS - tracers can select it\njust fine.\n\nupdate ftrace to select CONFIG_TRACEPOINTS.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b07c3f193a8074aa4afe43cfa8ae38ec4c7ccfa9",
      "tree": "7d2b1d9efc5a8e24cb07c8d7f0b3e056fec8f150",
      "parents": [
        "0a16b6075843325dc402edf80c1662838b929aff"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 18 12:16:17 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:32:26 2008 +0200"
      },
      "message": "ftrace: port to tracepoints\n\nPorting the trace_mark() used by ftrace to tracepoints. (cleanup)\n\nChangelog :\n- Change error messages : marker -\u003e tracepoint\n\n[ mingo@elte.hu: conflict resolutions ]\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: \u0027Peter Zijlstra\u0027 \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ccc7dadf736639da86f3e0c86832c11a66fc8221",
      "tree": "3f1c0df0a291fec4a10d72cc1ab278ad81e697c5",
      "parents": [
        "b00c1a99e7758f794923c61e5cd55268d61c9469"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 29 15:47:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 29 17:09:14 2008 +0200"
      },
      "message": "hrtimer: prevent migration of per CPU hrtimers\n\nImpact: per CPU hrtimers can be migrated from a dead CPU\n\nThe hrtimer code has no knowledge about per CPU timers, but we need to\nprevent the migration of such timers and warn when such a timer is\nactive at migration time.\n\nExplicitely mark the timers as per CPU and use a more understandable\nmode descriptor for the interrupts safe unlocked callback mode, which\nis used by hrtimer_sleeper and the scheduler code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9e3ee1c39c0cc71222f9980ccbf87fe072897eef",
      "tree": "99462000e6f0d4f907cb2fc690f19d4d441ba0f3",
      "parents": [
        "e56b3bc7942982ac2589c942fb345e38bc7a341a",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tkernel/stop_machine.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "414f746d232d41ed6ae8632c4495ae795373c44b",
      "tree": "167f9bc8f139c6e82e6732b38c7a938b8a9d31cd",
      "parents": [
        "5a7a201c51c324876d00a54e7208af6af12d1ca4",
        "c9272c4f9fbe2087beb3392f526dc5b19efaa56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n"
    },
    {
      "commit": "784e2d76007f90d69341b95967160c4fb7829299",
      "tree": "adf7f8a8a5470080efcc971559b79f10b44042e6",
      "parents": [
        "9b1a4d38373a5581a4e01032a3ccdd94cd93477b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 +1000"
      },
      "message": "stop_machine: fix up ftrace.c\n\nSimple conversion.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "605ccb73f6a1c891a16268b3a2923208fc637958",
      "tree": "598c26eeb3e911cc2effc203c89fe414241532f2",
      "parents": [
        "375614422509c98a1f3dbef410206bf81775169b"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Sun Jul 27 13:39:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:58:20 2008 -0700"
      },
      "message": "tracing: remove unused variable\n\nRemove the following warning with CONFIG_TRACING\u003dy:\n\n\tkernel/trace/trace.c: In function ‘s_next’:\n\tkernel/trace/trace.c:1186: warning: unused variable ‘last_ent’\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a048d3aff8b828b6c0fa7ddd90a531248ab4e0f9",
      "tree": "8edfb5bd152aef0d48c4a165247906db347c3a56",
      "parents": [
        "fb3b80614438f8b73b3879a19350439d6aa402da",
        "1fe371044b21b226b96a9dd959e971b50b28c78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:47 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: fix modular build\n  ftrace: disable tracing on acpi idle calls\n  ftrace: remove latency-tracer leftover\n  ftrace: only trace preempt off with preempt tracer\n  ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)\n"
    },
    {
      "commit": "0bc3cc03fa6e1c20aecb5a33356bcaae410640b9",
      "tree": "7dab4b0002298b45e31053fe0f37e5ff745682b7",
      "parents": [
        "6524d938b3360504b43a1278b5a8403e85383d1a"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:31 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:33 2008 +0200"
      },
      "message": "cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu\n\n  * Replace previous instances of the cpumask_of_cpu_ptr* macros\n    with a the new (lvalue capable) generic cpumask_of_cpu().\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1fe371044b21b226b96a9dd959e971b50b28c78e",
      "tree": "1ce8243c13d869155f607b739a9d3e25493a1d31",
      "parents": [
        "dcf309974555d17019c6a8e1a425238f17990b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 15:09:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 15:08:22 2008 +0200"
      },
      "message": "ftrace: fix modular build\n\nfix:\n\n ERROR: \"start_critical_timings\" [drivers/acpi/processor.ko] undefined!\n ERROR: \"stop_critical_timings\" [drivers/acpi/processor.ko] undefined!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a89cc1959d0ea5f36bf7421dc97b34f03809637d",
      "tree": "3532653b4246c9771fb7bcbfcc1dd979de12415e",
      "parents": [
        "28325df0d9339b7f3aba9c45174d4586223ef46b"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Jul 25 01:48:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "markers: fix sparse integer as NULL pointer warning\n\nkernel/trace/trace_sysprof.c:164:20: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1986b0cb1671ea39178b4e2b00461109728fc935",
      "tree": "cf8ff2253bb57d339f895a85ab16b2ef28b5ce7b",
      "parents": [
        "28afe961a18f77b2249062499bdbf70fd2ec6bba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 24 08:10:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 24 08:10:02 2008 +0200"
      },
      "message": "ftrace: remove latency-tracer leftover\n\nremove the :vim\u003dft\u003dhelp tag from trace files.\n\nI used them years ago to syntax-highlight traces and forgot about this hack.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "28afe961a18f77b2249062499bdbf70fd2ec6bba",
      "tree": "71a5cb32924b8c8256bbc0f2f81c6b8c2ac79108",
      "parents": [
        "1e01cb0c6ff7e9ddb6547551794c6aa82785a7cb",
        "338b9bb3adac0d2c5a1e180491d9b001d624c402"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 24 08:09:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 24 08:09:26 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/urgent\n"
    },
    {
      "commit": "65c011845316d3c1381f478ca0d8265c43b3b039",
      "tree": "a7e29e92a1ad0440ef5fe16dc16d73e8bf7983d2",
      "parents": [
        "bb2c018b09b681d43f5e08124b83e362647ea82b"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Jul 15 14:14:30 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:02:57 2008 +0200"
      },
      "message": "cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr\n\n  * This patch replaces the dangerous lvalue version of cpumask_of_cpu\n    with new cpumask_of_cpu_ptr macros.  These are patterned after the\n    node_to_cpumask_ptr macros.\n\n    In general terms, if there is a cpumask_of_cpu_map[] then a pointer to\n    the cpumask_of_cpu_map[cpu] entry is used.  The cpumask_of_cpu_map\n    is provided when there is a large NR_CPUS count, reducing\n    greatly the amount of code generated and stack space used for\n    cpumask_of_cpu().  The pointer to the cpumask_t value is needed for\n    calling set_cpus_allowed_ptr() to reduce the amount of stack space\n    needed to pass the cpumask_t value.\n\n    If there isn\u0027t a cpumask_of_cpu_map[], then a temporary variable is\n    declared and filled in with value from cpumask_of_cpu(cpu) as well as\n    a pointer variable pointing to this temporary variable.  Afterwards,\n    the pointer is used to reference the cpumask value.  The compiler\n    will optimize out the extra dereference through the pointer as well\n    as the stack space used for the pointer, resulting in identical code.\n\n    A good example of the orthogonal usages is in net/sunrpc/svc.c:\n\n\tcase SVC_POOL_PERCPU:\n\t{\n\t\tunsigned int cpu \u003d m-\u003epool_to[pidx];\n\t\tcpumask_of_cpu_ptr(cpumask, cpu);\n\n\t\t*oldmask \u003d current-\u003ecpus_allowed;\n\t\tset_cpus_allowed_ptr(current, cpumask);\n\t\treturn 1;\n\t}\n\tcase SVC_POOL_PERNODE:\n\t{\n\t\tunsigned int node \u003d m-\u003epool_to[pidx];\n\t\tnode_to_cpumask_ptr(nodecpumask, node);\n\n\t\t*oldmask \u003d current-\u003ecpus_allowed;\n\t\tset_cpus_allowed_ptr(current, nodecpumask);\n\t\treturn 1;\n\t}\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e01cb0c6ff7e9ddb6547551794c6aa82785a7cb",
      "tree": "791ecc834a169f6e3d7322a0c285dd95e9cd0c31",
      "parents": [
        "e59494f441c834ca7aaa0e6fa6678ddbd3d72743"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 15 09:53:37 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 18:57:34 2008 +0200"
      },
      "message": "ftrace: only trace preempt off with preempt tracer\n\nWhen PREEMPT_TRACER and IRQSOFF_TRACER are both configured and irqsoff\ntracer is running, the preempt_off sections might also be traced.\n\nThanks to Andrew Morton for pointing out my mistake of spin_lock disabling\ninterrupts while he was reviewing ftrace.txt. Seems that my example I used\nactually hit this bug.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e59494f441c834ca7aaa0e6fa6678ddbd3d72743",
      "tree": "2442881b6f96ae0d859e45b893b9694bded8879a",
      "parents": [
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 16 00:13:45 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:47:15 2008 +0200"
      },
      "message": "ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)\n\nOn Wed, 16 Jul 2008, Vegard Nossum wrote:\n\n\u003e When booting 4d3702b6, I got this huge thing:\n\u003e\n\u003e Testing tracer wakeup: \u003c4\u003e------------[ cut here ]------------\n\u003e WARNING: at kernel/lockdep.c:2731 check_flags+0x123/0x160()\n\u003e Modules linked in:\n\u003e Pid: 1, comm: swapper Not tainted 2.6.26-crashing-02127-g4d3702b6 #30\n\u003e  [\u003cc015c349\u003e] warn_on_slowpath+0x59/0xb0\n\u003e  [\u003cc01276c6\u003e] ? ftrace_call+0x5/0x8\n\u003e  [\u003cc012d800\u003e] ? native_read_tsc+0x0/0x20\n\u003e  [\u003cc0158de2\u003e] ? sub_preempt_count+0x12/0xf0\n\u003e  [\u003cc01814eb\u003e] ? trace_hardirqs_off+0xb/0x10\n\u003e  [\u003cc0182fbc\u003e] ? __lock_acquire+0x2cc/0x1120\n\u003e  [\u003cc01814eb\u003e] ? trace_hardirqs_off+0xb/0x10\n\u003e  [\u003cc01276af\u003e] ? mcount_call+0x5/0xa\n\u003e  [\u003cc017ff53\u003e] check_flags+0x123/0x160\n\u003e  [\u003cc0183e61\u003e] lock_acquire+0x51/0xd0\n\u003e  [\u003cc01276c6\u003e] ? ftrace_call+0x5/0x8\n\u003e  [\u003cc0613d4f\u003e] _spin_lock_irqsave+0x5f/0xa0\n\u003e  [\u003cc01a8d45\u003e] ? ftrace_record_ip+0xf5/0x220\n\u003e  [\u003cc02d5413\u003e] ? debug_locks_off+0x3/0x50\n\u003e  [\u003cc01a8d45\u003e] ftrace_record_ip+0xf5/0x220\n\u003e  [\u003cc01276af\u003e] mcount_call+0x5/0xa\n\u003e  [\u003cc02d5418\u003e] ? debug_locks_off+0x8/0x50\n\u003e  [\u003cc017ff27\u003e] check_flags+0xf7/0x160\n\u003e  [\u003cc0183e61\u003e] lock_acquire+0x51/0xd0\n\u003e  [\u003cc01276c6\u003e] ? ftrace_call+0x5/0x8\n\u003e  [\u003cc0613d4f\u003e] _spin_lock_irqsave+0x5f/0xa0\n\u003e  [\u003cc01affcd\u003e] ? wakeup_tracer_call+0x6d/0xf0\n\u003e  [\u003cc01625e2\u003e] ? _local_bh_enable+0x62/0xb0\n\u003e  [\u003cc0158ddd\u003e] ? sub_preempt_count+0xd/0xf0\n\u003e  [\u003cc01affcd\u003e] wakeup_tracer_call+0x6d/0xf0\n\u003e  [\u003cc0162724\u003e] ? __do_softirq+0xf4/0x110\n\u003e  [\u003cc01afff1\u003e] ? wakeup_tracer_call+0x91/0xf0\n\u003e  [\u003cc01276c6\u003e] ftrace_call+0x5/0x8\n\u003e  [\u003cc0162724\u003e] ? __do_softirq+0xf4/0x110\n\u003e  [\u003cc0158de2\u003e] ? sub_preempt_count+0x12/0xf0\n\u003e  [\u003cc01625e2\u003e] _local_bh_enable+0x62/0xb0\n\u003e  [\u003cc0162724\u003e] __do_softirq+0xf4/0x110\n\u003e  [\u003cc01627ed\u003e] do_softirq+0xad/0xb0\n\u003e  [\u003cc0162a15\u003e] irq_exit+0xa5/0xb0\n\u003e  [\u003cc013a506\u003e] smp_apic_timer_interrupt+0x66/0xa0\n\u003e  [\u003cc02d3fac\u003e] ? trace_hardirqs_off_thunk+0xc/0x10\n\u003e  [\u003cc0127449\u003e] apic_timer_interrupt+0x2d/0x34\n\u003e  [\u003cc018007b\u003e] ? find_usage_backwards+0xb/0xf0\n\u003e  [\u003cc0613a09\u003e] ? _spin_unlock_irqrestore+0x69/0x80\n\u003e  [\u003cc014ef32\u003e] tg_shares_up+0x132/0x1d0\n\u003e  [\u003cc014d2a2\u003e] walk_tg_tree+0x62/0xa0\n\u003e  [\u003cc014ee00\u003e] ? tg_shares_up+0x0/0x1d0\n\u003e  [\u003cc014a860\u003e] ? tg_nop+0x0/0x10\n\u003e  [\u003cc015499d\u003e] update_shares+0x5d/0x80\n\u003e  [\u003cc0154a2f\u003e] try_to_wake_up+0x6f/0x280\n\u003e  [\u003cc01a8b90\u003e] ? __ftrace_modify_code+0x0/0xc0\n\u003e  [\u003cc01a8b90\u003e] ? __ftrace_modify_code+0x0/0xc0\n\u003e  [\u003cc0154c94\u003e] wake_up_process+0x14/0x20\n\u003e  [\u003cc01725f6\u003e] kthread_create+0x66/0xb0\n\u003e  [\u003cc0195400\u003e] ? do_stop+0x0/0x200\n\u003e  [\u003cc0195320\u003e] ? __stop_machine_run+0x30/0xb0\n\u003e  [\u003cc0195340\u003e] __stop_machine_run+0x50/0xb0\n\u003e  [\u003cc0195400\u003e] ? do_stop+0x0/0x200\n\u003e  [\u003cc01a8b90\u003e] ? __ftrace_modify_code+0x0/0xc0\n\u003e  [\u003cc061242d\u003e] ? mutex_unlock+0xd/0x10\n\u003e  [\u003cc01953cc\u003e] stop_machine_run+0x2c/0x60\n\u003e  [\u003cc01a94d3\u003e] unregister_ftrace_function+0x103/0x180\n\u003e  [\u003cc01b0517\u003e] stop_wakeup_tracer+0x17/0x60\n\u003e  [\u003cc01b056f\u003e] wakeup_tracer_ctrl_update+0xf/0x30\n\u003e  [\u003cc01ab8d5\u003e] trace_selftest_startup_wakeup+0xb5/0x130\n\u003e  [\u003cc01ab950\u003e] ? trace_wakeup_test_thread+0x0/0x70\n\u003e  [\u003cc01aadf5\u003e] register_tracer+0x135/0x1b0\n\u003e  [\u003cc0877d02\u003e] init_wakeup_tracer+0xd/0xf\n\u003e  [\u003cc085d437\u003e] kernel_init+0x1a9/0x2ce\n\u003e  [\u003cc061397b\u003e] ? _spin_unlock_irq+0x3b/0x60\n\u003e  [\u003cc02d3f9c\u003e] ? trace_hardirqs_on_thunk+0xc/0x10\n\u003e  [\u003cc0877cf5\u003e] ? init_wakeup_tracer+0x0/0xf\n\u003e  [\u003cc0182646\u003e] ? trace_hardirqs_on_caller+0x126/0x180\n\u003e  [\u003cc02d3f9c\u003e] ? trace_hardirqs_on_thunk+0xc/0x10\n\u003e  [\u003cc01269c8\u003e] ? restore_nocheck_notrace+0x0/0xe\n\u003e  [\u003cc085d28e\u003e] ? kernel_init+0x0/0x2ce\n\u003e  [\u003cc085d28e\u003e] ? kernel_init+0x0/0x2ce\n\u003e  [\u003cc01275fb\u003e] kernel_thread_helper+0x7/0x10\n\u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e ---[ end trace a7919e7f17c0a725 ]---\n\u003e irq event stamp: 579530\n\u003e hardirqs last  enabled at (579528): [\u003cc01826ab\u003e] trace_hardirqs_on+0xb/0x10\n\u003e hardirqs last disabled at (579529): [\u003cc01814eb\u003e] trace_hardirqs_off+0xb/0x10\n\u003e softirqs last  enabled at (579530): [\u003cc0162724\u003e] __do_softirq+0xf4/0x110\n\u003e softirqs last disabled at (579517): [\u003cc01627ed\u003e] do_softirq+0xad/0xb0\n\u003e irq event stamp: 579530\n\u003e hardirqs last  enabled at (579528): [\u003cc01826ab\u003e] trace_hardirqs_on+0xb/0x10\n\u003e hardirqs last disabled at (579529): [\u003cc01814eb\u003e] trace_hardirqs_off+0xb/0x10\n\u003e softirqs last  enabled at (579530): [\u003cc0162724\u003e] __do_softirq+0xf4/0x110\n\u003e softirqs last disabled at (579517): [\u003cc01627ed\u003e] do_softirq+0xad/0xb0\n\u003e PASSED\n\u003e\n\u003e Incidentally, the kernel also hung while I was typing in this report.\n\nThings get weird between lockdep and ftrace because ftrace can be called\nwithin lockdep internal code (via the mcount pointer) and lockdep can be\ncalled with ftrace (via spin_locks).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nTested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6712e299b7dc78aa4971b85e803435ee6d49a9dd",
      "tree": "b3d17a2d068737ec07727b28e93c7d374c27721b",
      "parents": [
        "ec1bb60bbff0386c3ec25360e7a8c72f467a6ff1",
        "b2613e370dbeb69edbff989382fa54f2395aa471"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 15:58:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 15:58:35 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "b2613e370dbeb69edbff989382fa54f2395aa471",
      "tree": "e943c77ea618e08cc1d2ba8cd026079d357c69fb",
      "parents": [
        "60bc080090e3bf6afa29c62cb25f913706551010"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 16:44:27 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 16:46:50 2008 +0200"
      },
      "message": "ftrace: build fix for ftraced_suspend\n\nfix:\n\n kernel/trace/ftrace.c:1615: error: \u0027ftraced_suspend\u0027 undeclared (first use in this function)\n kernel/trace/ftrace.c:1615: error: (Each undeclared identifier is reported only once\n kernel/trace/ftrace.c:1615: error: for each function it appears in.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60bc080090e3bf6afa29c62cb25f913706551010",
      "tree": "42fa03bbae28072c0302f6c8f4efead22307828f",
      "parents": [
        "a2bb6a3d85ef3124cd336403a95abc0540d3fbe2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:16 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:22 2008 +0200"
      },
      "message": "ftrace: separate out the function enabled variable\n\nCurrently the function tracer uses the global tracer_enabled variable that\nis used to keep track if the tracer is enabled or not. The function tracing\nstartup needs to be separated out, otherwise the internal happenings of\nthe tracer startup is also recorded.\n\nThis patch creates a ftrace_function_enabled variable to all the starting\nof the function traces to happen after everything has been started.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2bb6a3d85ef3124cd336403a95abc0540d3fbe2",
      "tree": "3048f355cc3ca814222ba34943c9a8f735e7a5e6",
      "parents": [
        "26bc83f4cb911a0b4dabfe23b700aaf3235f2955"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:21 2008 +0200"
      },
      "message": "ftrace: add ftrace_kill_atomic\n\nIt has been suggested that I add a way to disable the function tracer\non an oops. This code adds a ftrace_kill_atomic. It is not meant to be\nused in normal situations. It will disable the ftrace tracer, but will\nnot perform the nice shutdown that requires scheduling.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26bc83f4cb911a0b4dabfe23b700aaf3235f2955",
      "tree": "d68f36b2373164af899678eada1922dbdbfbd13a",
      "parents": [
        "ad591240ceadcaf41b2a88855ca5f1c77c5a0298"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:14 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:21 2008 +0200"
      },
      "message": "ftrace: use current CPU for function startup\n\nThis is more of a clean up. Currently the function tracer initializes the\ntracer with which ever CPU was last used for tracing. This value isn\u0027t\nrealy useful for function tracing, but at least it should be something other\nthan a random number.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad591240ceadcaf41b2a88855ca5f1c77c5a0298",
      "tree": "8ace309f09fd6d1cbbf422452618297714654f81",
      "parents": [
        "b5c21b4514b38f450848feb432f7120376d01ffe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:13 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:20 2008 +0200"
      },
      "message": "ftrace: start wakeup tracing after setting function tracer\n\nEnabling the wakeup tracer before enabling the function tracing causes\nsome strange results due to the dynamic enabling of the functions.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5c21b4514b38f450848feb432f7120376d01ffe",
      "tree": "cb1309db3cecd0aeef9ca1e546f731c8c04faef4",
      "parents": [
        "1e16c0a081f6c93f04c6af784d6a160955269f91"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:12 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:19 2008 +0200"
      },
      "message": "ftrace: check proper config for preempt type\n\nThere is no CONFIG_PREEMPT_DESKTOP. Use the proper entry CONFIG_PREEMPT.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "001b6767b1d0c89e458e5ddb039245b268f569fb",
      "tree": "51d1135647957f9ad1a513103cdd3cfa11694cda",
      "parents": [
        "007c05d4d2ce42fabd58cb54ed98e0a1714d9d86"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:10 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:18 2008 +0200"
      },
      "message": "ftrace: define function trace nop\n\nWhen CONFIG_FTRACE is not enabled, the tracing_start_functon_trace\nand tracing_stop_function_trace should be nops.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "007c05d4d2ce42fabd58cb54ed98e0a1714d9d86",
      "tree": "94873072975275a1e03ccc1dad27a15c41ee3cc4",
      "parents": [
        "98a05ed4bd7774f533ab185fe0bf2fdc58292d7c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 10 20:58:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 11 15:49:18 2008 +0200"
      },
      "message": "ftrace: move sched_switch enable after markers\n\nWe have two markers now that are enabled on sched_switch. One that records\nthe context switching and the other that records task wake ups. Currently\nwe enable the tracing first and then set the markers. This causes some\nconfusing traces:\n\n# tracer: sched_switch\n#\n#           TASK-PID   CPU#    TIMESTAMP  FUNCTION\n#              | |      |          |         |\n       trace-cmd-3973  [00]   115.834817:   3973:120:R   +     3:  0:S\n       trace-cmd-3973  [01]   115.834910:   3973:120:R   +     6:  0:S\n       trace-cmd-3973  [02]   115.834910:   3973:120:R   +     9:  0:S\n       trace-cmd-3973  [03]   115.834910:   3973:120:R   +    12:  0:S\n       trace-cmd-3973  [02]   115.834910:   3973:120:R   +     9:  0:S\n          \u003cidle\u003e-0     [02]   115.834910:      0:140:R \u003d\u003d\u003e  3973:120:R\n\nHere we see that trace-cmd with PID 3973 wakes up task 9 but the next line\nshows the idle task doing a context switch to task 3973.\n\nEnabling the tracing to _after_ the markers are set creates a much saner\noutput:\n\n# tracer: sched_switch\n#\n#           TASK-PID   CPU#    TIMESTAMP  FUNCTION\n#              | |      |          |         |\n          \u003cidle\u003e-0     [02]  7922.634225:      0:140:R \u003d\u003d\u003e  4790:120:R\n       trace-cmd-4789  [03]  7922.634225:      0:140:R   +  4790:120:R\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec1bb60bbff0386c3ec25360e7a8c72f467a6ff1",
      "tree": "893c04336763acd84d575fd713773b882e8bc8a6",
      "parents": [
        "5373fdbdc1dba69aa956098650f71b731d471885",
        "37f5d732f34fa099676b2c52b8a57bab01a011de"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:08 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/sysprof\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "5373fdbdc1dba69aa956098650f71b731d471885",
      "tree": "8d9f07539896a696352818820c9c5f6612370882",
      "parents": [
        "bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f",
        "4d51c7587bb13dbb2fafcad6c0b5231bd864b55f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:06 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/mmiotrace\u0027 into auto-ftrace-next\n"
    }
  ],
  "next": "98a05ed4bd7774f533ab185fe0bf2fdc58292d7c"
}
