)]}'
{
  "log": [
    {
      "commit": "a6bd8e13034dd7d60b6f14217096efa192d0adc1",
      "tree": "23890908b06eb8357e6ce633d35df1216f5e4213",
      "parents": [
        "e18b094f0faa4889b06a112da17230a10b88c815"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 28 11:05:53 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 28 11:05:54 2008 +1100"
      },
      "message": "lguest: comment documentation update.\n\nTook some cycles to re-read the Lguest Journey end-to-end, fix some\nrot and tighten some phrases.\n\nOnly comments change.  No new jokes, but a couple of recycled old jokes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ca94f2bdd1be626361fcfbd474d6b8823ed39f74",
      "tree": "9b7f82ce7c2c20a45e1bfb611153d05ac7af2baf",
      "parents": [
        "382ac6b3fbc0ea6a5697fc6caaf7e7de12fa8b96"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Jan 18 23:59:07 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:19 2008 +1100"
      },
      "message": "lguest: Use explicit includes rateher than indirect\n\nexplicitly use ktime.h include\nexplicitly use hrtimer.h include\nexplicitly use sched.h include\n\nThis patch adds headers explicitly to lguest sources file,\nto avoid depending on them being included somewhere else.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "382ac6b3fbc0ea6a5697fc6caaf7e7de12fa8b96",
      "tree": "bdda012251f29775b2e1201f3b2b3e38c4680f42",
      "parents": [
        "934faab464c6a26ed1a226b6cf7111b35405dde1"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:19:42 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:18 2008 +1100"
      },
      "message": "lguest: get rid of lg variable assignments\n\nWe can save some lines of code by getting rid of\n*lg \u003d cpu... lines of code spread everywhere by now.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1713608f280002d9ffc6de89d7de5cf367072d63",
      "tree": "332e7bdbe7ccccad408b309a4dd00b706b04082f",
      "parents": [
        "5e232f4f428c4266ba5cdae9f23ba19a0913dcf9"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:37 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:14 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest pgdir management\n\nthis patch makes the pgdir management per-vcpu. The pgdirs pool\nis still guest-wide (although it\u0027ll probably need to grow when we\nare really executing more vcpus), but the pgdidx index is gone,\nsince it makes no sense anymore. Instead, we use a per-vcpu\nindex.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5e232f4f428c4266ba5cdae9f23ba19a0913dcf9",
      "tree": "591e21cb88959373e495eac7eb8ee2c2865771ae",
      "parents": [
        "4665ac8e28c30c2a015c617c55783c0bf3a49c05"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:36 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:13 2008 +1100"
      },
      "message": "lguest: make pending notifications per-vcpu\n\nthis patch makes the pending_notify field, used to control\npending notifications, per-vcpu, instead of per-guest\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4665ac8e28c30c2a015c617c55783c0bf3a49c05",
      "tree": "15992d7e693126be7f758e694c8a544306576dfd",
      "parents": [
        "66686c2ab08feb721ca4d98285fba64acdf6017f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:35 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:13 2008 +1100"
      },
      "message": "lguest: makes special fields be per-vcpu\n\nlguest struct have room for some fields, namely, cr2, ts, esp1\nand ss1, that are not really guest-wide, but rather, vcpu-wide.\n\nThis patch puts it in the vcpu struct\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "66686c2ab08feb721ca4d98285fba64acdf6017f",
      "tree": "bae76c0e0dc78809abc83b8f0dc9f84dca702de0",
      "parents": [
        "fc708b3e407dfd2e12ba9a6cf35bd0bffad1796d"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:34 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:12 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest task management\n\nlguest uses tasks to control its running behaviour (like sending\nbreaks, controlling halted state, etc). In a per-vcpu environment,\neach vcpu will have its own underlying task. So this patch\nmakes the infrastructure for that possible\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ad8d8f3bc61ec712dd141e1029ae68c47fadc4a7",
      "tree": "70bd69e85ef7f159a62f4cd8aa2799d8d542b92c",
      "parents": [
        "73044f05a4ac65f2df42753e9566444b9d2a660f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:28 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:08 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest timers\n\nHere, I introduce per-vcpu timers. With this, we can have\nlocal expiries, needed for accounting time in smp guests\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "73044f05a4ac65f2df42753e9566444b9d2a660f",
      "tree": "80a3e1d1bda31a769554a8c51f8c189ccec0b9f8",
      "parents": [
        "7ea07a1500f05e06ebf0136763c781244f77a2a1"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:27 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:08 2008 +1100"
      },
      "message": "lguest: make hypercalls use the vcpu struct\n\nthis patch changes do_hcall() and do_async_hcall() interfaces (and obviously their\ncallers) to get a vcpu struct. Again, a vcpu services the hypercall, not the whole\nguest\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ec04b13f67be3c90b38c625f4b8bdfea54c1ff60",
      "tree": "7819de21361fdd65487ef75ea9f2b774e4203f83",
      "parents": [
        "5c55841d16dbf7c759fa6fb2ecc5e615b86d17db"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Fri Dec 28 14:26:24 2007 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:04 2008 +1100"
      },
      "message": "lguest: Reboot support\n\nReboot Implemented\n\n(Prevent fd leak, fix style and fix documentation --RR)\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e1e72965ec2c02db99b415cd06c17ea90767e3a4",
      "tree": "94e43aac35bdc33220e64f285b72b3b2b787fd57",
      "parents": [
        "568a17ffce2eeceae0cd9fc37e97cbad12f70278"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 15:02:50 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 15:02:50 2007 +1000"
      },
      "message": "lguest: documentation update\n\nWent through the documentation doing typo and content fixes.  This\npatch contains only comment and whitespace changes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n\n"
    },
    {
      "commit": "2d37f94a28170ca656438758fca577acb49a7932",
      "tree": "21049219a98d314a2c442293e512b74d879e6270",
      "parents": [
        "56ae43dfe233323683248a5c553bad7160db2fa5"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:24:24 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:56 2007 +1000"
      },
      "message": "generalize lgread_u32/lgwrite_u32.\n\nJes complains that page table code still uses lgread_u32 even though\nit now uses general kernel pte types.  The best thing to do is to\ngeneralize lgread_u32 and lgwrite_u32.\n\nThis means we lose the efficiency of getuser().  We could potentially\nregain it if we used __copy_from_user instead of copy_from_user, but\nI\u0027m not certain that our range check is equivalent to access_ok() on\nall platforms.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Jes Sorensen \u003cjes@sgi.com\u003e\n"
    },
    {
      "commit": "15045275c32bf6d15d32c2eca8157be9c0ba6e45",
      "tree": "32ef90c875b22cb1bbb94e38f557a690f1c0c6f8",
      "parents": [
        "0ca49ca946409f87a8cd0b14d5acb6dea58de6f3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:24:10 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:55 2007 +1000"
      },
      "message": "Remove old lguest I/O infrrasructure.\n\nThis patch gets rid of the old lguest host I/O infrastructure and\nreplaces it with a single hypercall \"LHCALL_NOTIFY\" which takes an\naddress.\n\nThe main change is the removal of io.c: that mainly did inter-guest\nI/O, which virtio doesn\u0027t yet support.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "47436aa4ad054c1c7c8231618e86ebd9305308dc",
      "tree": "a9ba6e0521f9116442144a86e781a3164ec86094",
      "parents": [
        "c18acd73ffc209def08003a1927473096f66c5ad"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:36 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:54 2007 +1000"
      },
      "message": "Boot with virtual \u003d\u003d physical to get closer to native Linux.\n\n1) This allows us to get alot closer to booting bzImages.\n\n2) It means we don\u0027t have to know page_offset.\n\n3) The Guest needs to modify the boot pagetables to create the\n   PAGE_OFFSET mapping before jumping to C code.\n\n4) guest_pa() walks the page tables rather than using page_offset.\n\n5) We don\u0027t use page_offset to figure out whether to emulate: it was\n   always kinda quesationable, and won\u0027t work for instructions done\n   before remapping (bzImage unpacking in particular).\n\n6) We still want the kernel address for tlb flushing: have the initial\n   hypercall give us that, too.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "df29f43e650df29456804dabdb2611de914e7c0f",
      "tree": "2f8de4a2f1b7c4141e710123fc86db266f507d83",
      "parents": [
        "47aee45ae3c708ab678e09abfba0efaf6ca0e87a"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "matias.zabaljauregui@cern.ch",
        "time": "Mon Oct 22 11:03:33 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:53 2007 +1000"
      },
      "message": "Pagetables to use normal kernel types\n\nThis is my first step in the migration of page_tables.c to the kernel\ntypes and functions/macros (2.6.23-rc3).  Seems to be working OK.\n\nSigned-off-by: Matias Zabaljauregui \u003cmatias.zabaljauregui@cern.ch\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b410e7b1499c49513cab18275db8a8ab549d9e09",
      "tree": "8a71fa34660f5ccc9d71677137c5ae211a38bbf2",
      "parents": [
        "cc6d4fbcef328acdc9fa7023e69f39f753f72fe1"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:31 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Make hypercalls arch-independent.\n\nClean up the hypercall code to make the code in hypercalls.c\narchitecture independent. First process the common hypercalls and\nthen call lguest_arch_do_hcall() if the call hasn\u0027t been handled.\nRename struct hcall_ring to hcall_args.\n\nThis patch requires the previous patch which reorganize the layout of\nstruct lguest_regs on i386 so they match the layout of struct\nhcall_args.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "cc6d4fbcef328acdc9fa7023e69f39f753f72fe1",
      "tree": "860672e7da1a3516e36dd40f962552451ef0bcf2",
      "parents": [
        "4614a3a3b638dfd7a67d0237944f6a76331af61d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:30 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Introduce \"hcall\" pointer to indicate pending hypercall.\n\nCurrently we look at the \"trapnum\" to see if the Guest wants a\nhypercall.  But once the hypercall is done we have to reset trapnum to\na bogus value, otherwise if we exit to userspace and return, we\u0027d run\nthe same hypercall twice (that was a nasty bug to find!).\n\nThis has two main effects:\n\n1) When Jes\u0027s patch changes the hypercall args to be a generic \"struct\n   hcall_args\" we simply change the type of \"lg-\u003ehcall\".  It\u0027s set by\n   arch code, so if it has to copy args or something it can do so, and\n   point \"hcall\" into lg-\u003earch somewhere.\n\n2) Async hypercalls only get run when an actual hypercall is pending.\n   This simplfies the code a little and is a more logical semantic.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "48245cc0708d49d1d0566b9fa617ad6c5f4c6934",
      "tree": "b396fd2d1ab185aab20894570e7e84bd4f656355",
      "parents": [
        "3c6b5bfa3cf3b4057788e08482a468cc3bc00780"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:27 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:51 2007 +1000"
      },
      "message": "Remove fixed limit on number of guests, and lguests array.\n\nBack when we had all the Guest state in the switcher, we had a fixed\narray of them.  This is no longer necessary.\n\nIf we switch the network code to using random_ether_addr (46 bits is\nenough to avoid clashes), we can get rid of the concept of \"guest id\"\naltogether.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3c6b5bfa3cf3b4057788e08482a468cc3bc00780",
      "tree": "f0d67890f6f8c9d0840c9b19a483ec06cbf822ef",
      "parents": [
        "6649bb7af6a819b675bfcf22ab704737e905645a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:26 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:50 2007 +1000"
      },
      "message": "Introduce guest mem offset, static link example launcher\n\nIn order to avoid problematic special linking of the Launcher, we give\nthe Host an offset: this means we can use any memory region in the\nLauncher as Guest memory rather than insisting on mmap() at 0.\n\nThe result is quite pleasing: a number of casts are replaced with\nsimple additions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "891ff65ff50bb6affdaebb2cda3a4c58a6442b4d",
      "tree": "737603293be49ce612e05fa49ec00a75e1b501a1",
      "parents": [
        "babed5c00225f109d6ebea368ad2deea2abcce32"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 10:56:22 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:48 2007 +1000"
      },
      "message": "Use copy_to_user() not put_user for struct timespec\n\nUse copy_to_user() when copying a struct timespec to the guest -\nput_user() cannot handle two long\u0027s in one go on a 64bit arch.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c8dca5d53f95009d4fff00195bf38f277dc4366",
      "tree": "60cc83cf949d6e598e6dc80dc668aebd42c65540",
      "parents": [
        "a8a11f06973fa63ad692a8f97694cb5eeb70b3f3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 27 13:42:52 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 28 19:54:33 2007 -0700"
      },
      "message": "Provide timespec to guests rather than jiffies clock.\n\nA non-periodic clock_event_device and the \"jiffies\" clock don\u0027t mix well:\ntick_handle_periodic() can go into an infinite loop.\n\nCurrently lguest guests use the jiffies clock when the TSC is\nunusable.  Instead, make the Host write the current time into the lguest\npage on every interrupt.  This doesn\u0027t cost much but is more precise\nand at least as accurate as the jiffies clock.  It also gets rid of\nthe GET_WALLCLOCK hypercall.\n\nAlso, delay setting sched_clock until our clock is set up, otherwise\nthe early printk timestamps can go backwards (not harmful, just ugly).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bff672e630a015d5b54c8bfb16160b7edc39a57c",
      "tree": "3af06baacb76809234a3e71033d14b7ed769dbd8",
      "parents": [
        "dde797899ac17ebb812b7566044124d785e98dc7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation V: Host\n\nDocumentation: The Host\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f938d2c892db0d80d144253d4a7b7083efdbedeb",
      "tree": "1fbc946a9fb59827001a5d4d5224abe5e624e605",
      "parents": [
        "dfb68689bf3e3d31dc9fb5c2bde5379a4ca9b0ec"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:16 2007 -0700"
      },
      "message": "lguest: documentation I: Preparation\n\nThe netfilter code had very good documentation: the Netfilter Hacking HOWTO.\nNoone ever read it.\n\nSo this time I\u0027m trying something different, using a bit of Knuthiness.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7e28ffe6c74416b54345d6004fd0964c115b12c",
      "tree": "844beb4f400d5400098538e0c1e5f12d20a9504a",
      "parents": [
        "07ad157f6e5d228be78acd5cea0291e5d0360398"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:49:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:52 2007 -0700"
      },
      "message": "lguest: the host code\n\nThis is the code for the \"lg.ko\" module, which allows lguest guests to\nbe launched.\n\n[akpm@linux-foundation.org: update for futex-new-private-futexes]\n[akpm@linux-foundation.org: build fix]\n[jmorris@namei.org: lguest: use hrtimers]\n[akpm@linux-foundation.org: x86_64 build fix]\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
