)]}'
{
  "log": [
    {
      "commit": "e82894f84dbba130ab46c97748c03647f8204f92",
      "tree": "dbf20825db44037f0db5d0696d43457292c546c3",
      "parents": [
        "8446f1d391f3d27e6bf9c43d4cbcdac0ca720417"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "zanussi@us.ibm.com",
        "time": "Tue Sep 06 15:16:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:18 2005 -0700"
      },
      "message": "[PATCH] relayfs\n\nHere\u0027s the latest version of relayfs, against linux-2.6.11-mm2.  I\u0027m hoping\nyou\u0027ll consider putting this version back into your tree - the previous\nrounds of comment seem to have shaken out all the API issues and the number\nof comments on the code itself have also steadily dwindled.\n\nThis patch is essentially the same as the relayfs redux part 5 patch, with\nsome minor changes based on reviewer comments.  Thanks again to Pekka\nEnberg for those.  The patch size without documentation is now a little\nsmaller at just over 40k.  Here\u0027s a detailed list of the changes:\n\n- removed the attribute_flags in relay open and changed it to a\n  boolean specifying either overwrite or no-overwrite mode, and removed\n  everything referencing the attribute flags.\n- added a check for NULL names in relayfs_create_entry()\n- got rid of the unnecessary multiple labels in relay_create_buf()\n- some minor simplification of relay_alloc_buf() which got rid of a\n  couple params\n- updated the Documentation\n\nIn addition, this version (through code contained in the relay-apps tarball\nlinked to below, not as part of the relayfs patch) tries to make it as easy\nas possible to create the cooperating kernel/user pieces of a typical and\ncommon type of logging application, one where kernel logging is kicked off\nwhen a user space data collection app starts and stops when the collection\napp exits, with the data being automatically logged to disk in between.  To\ncreate this type of application, you basically just include a header file\n(relay-app.h, included in the relay-apps tarball) in your kernel module,\ndefine a couple of callbacks and call an initialization function, and on\nthe user side call a single function that sets up and continuously monitors\nthe buffers, and writes data to files as it becomes available.  Channels\nare created when the collection app is started and destroyed when it exits,\nnot when the kernel module is inserted, so different channel buffer sizes\ncan be specified for each separate run via command-line options.  See the\nREADME in the relay-apps tarball for details.\n\nAlso included in the relay-apps tarball are a couple examples\ndemonstrating how you can use this to create quick and dirty kernel\nlogging/debugging applications.  They are:\n\n- tprintk, short for \u0027tee printk\u0027, which temporarily puts a kprobe on\n  printk() and writes a duplicate stream of printk output to a relayfs\n  channel.  This could be used anywhere there\u0027s printk() debugging code\n  in the kernel which you\u0027d like to exercise, but would rather not have\n  your system logs cluttered with debugging junk.  You\u0027d probably want\n  to kill klogd while you do this, otherwise there wouldn\u0027t be much\n  point (since putting a kprobe on printk() doesn\u0027t change the output\n  of printk()).  I\u0027ve used this method to temporarily divert the packet\n  logging output of the iptables LOG target from the system logs to\n  relayfs files instead, for instance.\n\n- klog, which just provides a printk-like formatted logging function\n  on top of relayfs.  Again, you can use this to keep stuff out of your\n  system logs if used in place of printk.\n\nThe example applications can be found here:\n\nhttp://prdownloads.sourceforge.net/dprobes/relay-apps.tar.gz?download\n\nFrom: Christoph Hellwig \u003chch@lst.de\u003e\n\n  avoid lookup_hash usage in relayfs\n\nSigned-off-by: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
