)]}'
{
  "log": [
    {
      "commit": "0f9a623dd6c9b5b4dd00c232f29525bfc7a8ecf2",
      "tree": "d442cd6e03cb458b231374697ed7bb04caafabc2",
      "parents": [
        "46e91d00b1165b14b484aa33800e1bba0794ae1a"
      ],
      "author": {
        "name": "Stuart Bennett",
        "email": "stuart@freedesktop.org",
        "time": "Tue Apr 28 20:17:51 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 11:33:34 2009 +0200"
      },
      "message": "tracing: x86, mmiotrace: only register for die notifier when tracer active\n\nFollow up to afcfe024aebd74b0984a41af9a34e009cf5badaf in Linus\u0027 tree\n(\"x86: mmiotrace: quieten spurious warning message\")\n\nSigned-off-by: Stuart Bennett \u003cstuart@freedesktop.org\u003e\nAcked-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1240946271-7083-5-git-send-email-stuart@freedesktop.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b814d41f0987c7648d7ed07471258101c95c026b",
      "tree": "860a824d96dbb128d5038a93103370afbdf00b08",
      "parents": [
        "121d5d0a7e5808fbcfda484efd7ba840ac93450f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 20 22:32:10 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 21 00:09:42 2009 +0100"
      },
      "message": "x86, mm: fault.c, simplify kmmio_fault()\n\nImpact: cleanup\n\nRemove an #ifdef from kmmio_fault() - we can do this by\nproviding default implementations for is_kmmio_active()\nand kmmio_handler(). The compiler optimizes it all away\nin the !CONFIG_MMIOTRACE case.\n\nAlso, while at it, clean up mmiotrace.h a bit:\n\n - standard header guards\n - standard vertical spaces for structure definitions\n\nNo code changed (both with mmiotrace on and off in the config):\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n   2947\t     12\t     12\t   2971\t    b9b\tfault.o.before\n   2947\t     12\t     12\t   2971\t    b9b\tfault.o.after\n\nCc: Pekka Paalanen \u003cpq@iki.fi\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4427414170a63331a9cc36b9598502c5cdfe453b",
      "tree": "684d77d4052d5ab59d2e0786fc627d113a403833",
      "parents": [
        "fc5e27ae4b45a0619701a83f30d9b7fad7ed9400"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Tue Sep 16 22:03:56 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:37:17 2008 +0200"
      },
      "message": "mmiotrace: remove left-over marker cruft\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": "a50445d76c22a34ae149704ea5adaef171c8acb7",
      "tree": "ab176b85f7894e32185ebc385e3586016527b623",
      "parents": [
        "dee310d0adf41019aca476052ac3085ff286d9be"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:21:03 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:27:41 2008 +0200"
      },
      "message": "mmiotrace: rename kmmio_probe::user_data to :private.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dee310d0adf41019aca476052ac3085ff286d9be",
      "tree": "8e5b7982b787fc4036ad01a8a4a58accf9e15127",
      "parents": [
        "87e547fe41a8b57d6d80afc67a0031fbe477eb0d"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:21:03 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:27:36 2008 +0200"
      },
      "message": "x86 mmiotrace: use resource_size_t for phys addresses\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "970e6fa03885f32cc43e42cb08c73a5f54cd8bd9",
      "tree": "36fd85de2ac0e43c93a7274f8cd1e5ddf630617c",
      "parents": [
        "6f6f394d9ca61fcc73ecfd2f2bf58e92dc1ab269"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:21:03 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:27:28 2008 +0200"
      },
      "message": "mmiotrace: code style cleanups\n\nFrom c2da03771e29159627c5c7b9509ec70bce9f91ee Mon Sep 17 00:00:00 2001\nFrom: Pekka Paalanen \u003cpq@iki.fi\u003e\nDate: Mon, 28 Apr 2008 21:25:22 +0300\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "138295373ccf7625fcb0218dfea114837983bc39",
      "tree": "3d4afbb0d976fa41435fd5806ff0338aa1f15567",
      "parents": [
        "bd8ac686c73c7e925fcfe0b02dc4e7b947127864"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:58 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:25:16 2008 +0200"
      },
      "message": "ftrace: mmiotrace update, #2\n\nanother weekend, another patch. This should apply on top of my previous patch\nfrom March 23rd.\n\nSummary of changes:\n- Print PCI device list in output header\n- work around recursive probe hits on SMP\n- refactor dis/arm_kmmio_fault_page() and add check for page levels\n- remove un/reference_kmmio(), the die notifier hook is registered\npermanently into the list\n- explicitly check for single stepping in die notifier callback\n\nI have tested this version on my UP Athlon64 desktop with Nouveau, and\nSMP Core 2 Duo laptop with the proprietary nvidia driver. Both systems\nare 64-bit. One previously unknown bug crept into daylight: the ftrace\nframework\u0027s output routines print the first entry last after buffer has\nwrapped around.\n\nThe most important regressions compared to non-ftrace mmiotrace at this\ntime are:\n- failure of trace_pipe file\n- illegal lines in output file\n- unaware of losing data due to buffer full\n\nPersonally I\u0027d like to see these three solved before submitting to\nmainline. Other issues may come up once we know when we lose events.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bd8ac686c73c7e925fcfe0b02dc4e7b947127864",
      "tree": "7a675c4919429b507bb8e7b09677d96ae30ec561",
      "parents": [
        "f984b51e0779a6dd30feedc41404013ca54e5d05"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:24:53 2008 +0200"
      },
      "message": "ftrace: mmiotrace, updates\n\nhere is a patch that makes mmiotrace work almost well within the tracing\nframework. The patch applies on top of my previous patch. I have my own\noutput formatting in place now.\n\nSummary of changes:\n- fix the NULL dereference that was due to not calling tracing_reset()\n- add print_line() callback into struct tracer\n- implement print_line() for mmiotrace, producing up-to-spec text\n- add my output header, but that is not really called in the right place\n- rewrote the main structs in mmiotrace\n- added two new trace entry types: TRACE_MMIO_RW and TRACE_MMIO_MAP\n- made some functions in trace.c non-static\n- check current\u003d\u003dNULL in tracing_generic_entry_update()\n- fix(?) comparison in trace_seq_printf()\n\nThings seem to work fine except a few issues. Markers (text lines injected\ninto mmiotrace log) are missing, I did not feel hacking them in before we\nhave variable length entries. My output header is printed only for \u0027trace\u0027\nfile, but not \u0027trace_pipe\u0027. For some reason, despite my quick fix,\niter-\u003etrace is NULL in print_trace_line() when called from \u0027trace_pipe\u0027\nfile, which means I don\u0027t get proper output formatting.\n\nI only tried by loading nouveau.ko, which just detects the card, and that\nis traced fine. I didn\u0027t try further. Map, two reads and unmap. Works\nperfectly.\n\nI am missing the information about overflows, I\u0027d prefer to have a\ncounter for lost events. I didn\u0027t try, but I guess currently there is no\nway of knowning when it overflows?\n\nSo, not too far from being fully operational, it seems :-)\nAnd looking at the diffstat, there also is some 700-900 lines of user space\ncode that just became obsolete.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f984b51e0779a6dd30feedc41404013ca54e5d05",
      "tree": "ae7e80f53707e9069a9607072a554b51c660075b",
      "parents": [
        "d61fc44853f46fb002228b18aa5f30db21fcd4ac"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:22:43 2008 +0200"
      },
      "message": "ftrace: add mmiotrace plugin\n\nOn Sat, 22 Mar 2008 13:07:47 +0100\nIngo Molnar \u003cmingo@elte.hu\u003e wrote:\n\n\u003e \u003e \u003e i\u0027d suggest the following: pull x86.git and sched-devel.git into a\n\u003e \u003e \u003e single tree [the two will combine without rejects]. Then try to add a\n\u003e \u003e \u003e kernel/tracing/trace_mmiotrace.c ftrace plugin. The trace_sysprof.c\n\u003e \u003e \u003e plugin might be a good example.\n\u003e \u003e\n\u003e \u003e I did this and now I have mmiotrace enabled/disabled via the tracing\n\u003e \u003e framework (what do we call this, since ftrace is one of the tracers?).\n\u003e\n\u003e cool! could you send the patches for that? (even if they are not fully\n\u003e functional yet)\n\nPatch attached in the end. Nice to see how much code disappeared. I tried\nto mark all the features I had to break with XXX-comments.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d61fc44853f46fb002228b18aa5f30db21fcd4ac",
      "tree": "14fa9416aeceb7c5d24876c1111f6f2458a1dc7d",
      "parents": [
        "0fd0e3da4557c479b820b9a4a7afa25b4637ddf2"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:22:24 2008 +0200"
      },
      "message": "x86: mmiotrace, preview 2\n\nKconfig.debug, Makefile and testmmiotrace.c style fixes.\nUse real mutex instead of mutex.\nFix failure path in register probe func.\nkmmio: RCU read-locked over single stepping.\nGenerate mapping id\u0027s.\nMake mmio-mod.c built-in and rewrite its locking.\nAdd debugfs file to enable/disable mmiotracing.\nkmmio: use irqsave spinlocks.\nLots of cleanups in mmio-mod.c\nMarker file moved from /proc into debugfs.\nCall mmiotrace entrypoints directly from ioremap.c.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0fd0e3da4557c479b820b9a4a7afa25b4637ddf2",
      "tree": "5f34b3673202303f394c6dd180a15751f50014e9",
      "parents": [
        "f513638030ca384b0bace4df64f0b82f6ae1e4c6"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:22:12 2008 +0200"
      },
      "message": "x86: mmiotrace full patch, preview 1\n\nkmmio.c handles the list of mmio probes with callbacks, list of traced\npages, and attaching into the page fault handler and die notifier. It\narms, traps and disarms the given pages, this is the core of mmiotrace.\n\nmmio-mod.c is a user interface, hooking into ioremap functions and\nregistering the mmio probes. It also decodes the required information\nfrom trapped mmio accesses via the pre and post callbacks in each probe.\nCurrently, hooking into ioremap functions works by redefining the symbols\nof the target (binary) kernel module, so that it calls the traced\nversions of the functions.\n\nThe most notable changes done since the last discussion are:\n- kmmio.c is a built-in, not part of the module\n- direct call from fault.c to kmmio.c, removing all dynamic hooks\n- prepare for unregistering probes at any time\n- make kmmio re-initializable and accessible to more than one user\n- rewrite kmmio locking to remove all spinlocks from page fault path\n\nCan I abuse call_rcu() like I do in kmmio.c:unregister_kmmio_probe()\nor is there a better way?\n\nThe function called via call_rcu() itself calls call_rcu() again,\nwill this work or break? There I need a second grace period for RCU\nafter the first grace period for page faults.\n\nMmiotrace itself (mmio-mod.c) is still a module, I am going to attack\nthat next. At some point I will start looking into how to make mmiotrace\na tracer component of ftrace (thanks for the hint, Ingo). Ftrace should\nmake the user space part of mmiotracing as simple as\n\u0027cat /debug/trace/mmio \u003e dump.txt\u0027.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "63ffa3e456c1a9884a3ebac997d91e3fdae18d78",
      "tree": "7dd0c780c395e06e2bb5f47e5c35b9a00faf047e",
      "parents": [
        "fe1ffafa80f6673101c6560c2bacfe3df10372ee"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:21:48 2008 +0200"
      },
      "message": "x86 mmiotrace: comment about user space ABI\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8b7d89d02ef3c6a7c73d6596f28cea7632850af4",
      "tree": "32601bf4f34dd9e3ec1e9610c555e10dc448006c",
      "parents": [
        "677aa9f77e8de3791b481a0cec6c8b84d1eec626"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Mon May 12 21:20:56 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 24 11:21:14 2008 +0200"
      },
      "message": "x86: mmiotrace - trace memory mapped IO\n\nMmiotrace is a tool for trapping memory mapped IO (MMIO) accesses within\nthe kernel. It is used for debugging and especially for reverse\nengineering evil binary drivers.\n\nMmiotrace works by wrapping the ioremap family of kernel functions and\nmarking the returned pages as not present. Access to the IO memory\ntriggers a page fault, which will be handled by mmiotrace\u0027s custom page\nfault handler. This will single-step the faulted instruction with the\nMMIO page marked as present. Access logs are directed to user space via\nrelay and debug_fs.\n\nThis page fault approach is necessary, because binary drivers have\nreadl/writel etc. calls inlined and therefore extremely difficult to\ntrap with with e.g. kprobes.\n\nThis patch depends on the custom page fault handlers patch.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ]
}
