)]}'
{
  "log": [
    {
      "commit": "bcd6acd51f3d4d1ada201e9bc5c40a31d6d80c71",
      "tree": "2f6dffd2d3e4dd67355a224de7e7a960335a92fd",
      "parents": [
        "11c34c7deaeeebcee342cbc35e1bb2a6711b2431",
        "3ff6a468b45b5dfeb0e903e56f4eb27d34b2437c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:14:38 2009 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:14:38 2009 +1100"
      },
      "message": "Merge commit \u0027origin/master\u0027 into next\n\nConflicts:\n\tinclude/linux/kvm.h\n"
    },
    {
      "commit": "e15a113700324f7fdcee95589875daed2b98a2fe",
      "tree": "f2a528fb83219a748c86d0c03efd54c6980165ab",
      "parents": [
        "c0cefebc0b6ae1bc4c92672223a54e1ee96ea7f0"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Nov 30 03:02:02 2009 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Dec 08 16:02:50 2009 +1100"
      },
      "message": "powerpc/kvm: Sync guest visible MMU state\n\nCurrently userspace has no chance to find out which virtual address space we\u0027re\nin and resolve addresses. While that is a big problem for migration, it\u0027s also\nunpleasent when debugging, as gdb and the monitor don\u0027t work on virtual\naddresses.\n\nThis patch exports enough of the MMU segment state to userspace to make\ndebugging work and thus also includes the groundwork for migration.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "d7b0b5eb3000c6fb902f08c619fcd673a23d8fab",
      "tree": "4c7aa92657435c687f98383aaea5ce15ee9fba9c",
      "parents": [
        "3cfc3092f40bc37c57ba556cfd8de4218f2135ab"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "carsteno@de.ibm.com",
        "time": "Thu Nov 19 14:21:16 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:25 2009 +0200"
      },
      "message": "KVM: s390: Make psw available on all exits, not just a subset\n\nThis patch moves s390 processor status word into the base kvm_run\nstruct and keeps it up-to date on all userspace exits.\n\nThe userspace ABI is broken by this, however there are no applications\nin the wild using this.  A capability check is provided so users can\nverify the updated API exists.\n\nCc: stable@kernel.org\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3cfc3092f40bc37c57ba556cfd8de4218f2135ab",
      "tree": "562d61febfe7d3c99ea08e376b3f3c016cff613c",
      "parents": [
        "65ac7264043740572ba804edca03c374d70427c9"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Thu Nov 12 01:04:25 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:25 2009 +0200"
      },
      "message": "KVM: x86: Add KVM_GET/SET_VCPU_EVENTS\n\nThis new IOCTL exports all yet user-invisible states related to\nexceptions, interrupts, and NMIs. Together with appropriate user space\nchanges, this fixes sporadic problems of vmsave/restore, live migration\nand system reset.\n\n[avi: future-proof abi by adding a flags field]\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "65ac7264043740572ba804edca03c374d70427c9",
      "tree": "9adc0414526ed289a7f9d6ff7c2ae4e968113cd8",
      "parents": [
        "a9c7399d6cda0a092b347f8ee49bbe44f6e1fe66"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 04 11:59:01 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: VMX: Report unexpected simultaneous exceptions as internal errors\n\nThese happen when we trap an exception when another exception is being\ndelivered; we only expect these with MCEs and page faults.  If something\nunexpected happens, things probably went south and we\u0027re better off reporting\nan internal error and freezing.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a9c7399d6cda0a092b347f8ee49bbe44f6e1fe66",
      "tree": "a00b781aa1521efc387ae9b59875862cb37c1d3f",
      "parents": [
        "c54d2aba27f0c505d61700d656c5943e96982e60"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 04 11:54:59 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: Allow internal errors reported to userspace to carry extra data\n\nUsually userspace will freeze the guest so we can inspect it, but some\ninternal state is not available.  Add extra data to internal error\nreporting so we can expose it to the debugger.  Extra data is specific\nto the suberror.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c54d2aba27f0c505d61700d656c5943e96982e60",
      "tree": "cbf5fff26e2a061f9ec8b2bb2e98aa9279e82f29",
      "parents": [
        "4f926bf291863c237188bd2e27222ed801f12094"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Nov 02 17:20:28 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: Reorder IOCTLs in main kvm.h\n\nObviously, people tend to extend this header at the bottom - more or\nless blindly. Ensure that deprecated stuff gets its own corner again by\nmoving things to the top. Also add some comments and reindent IOCTLs to\nmake them more readable and reduce the risk of number collisions.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "afbcf7ab8d1bc8c2d04792f6d9e786e0adeb328d",
      "tree": "14320a1c768562139a550fd0c576d6d52829d9ec",
      "parents": [
        "cd5a2685de4a642fd0bd763e8c19711ef08dbe27"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Fri Oct 16 15:28:36 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:19 2009 +0200"
      },
      "message": "KVM: allow userspace to adjust kvmclock offset\n\nWhen we migrate a kvm guest that uses pvclock between two hosts, we may\nsuffer a large skew. This is because there can be significant differences\nbetween the monotonic clock of the hosts involved. When a new host with\na much larger monotonic time starts running the guest, the view of time\nwill be significantly impacted.\n\nSituation is much worse when we do the opposite, and migrate to a host with\na smaller monotonic clock.\n\nThis proposed ioctl will allow userspace to inform us what is the monotonic\nclock value in the source host, so we can keep the time skew short, and\nmore importantly, never goes backwards. Userspace may also need to trigger\nthe current data, since from the first migration onwards, it won\u0027t be\nreflected by a simple call to clock_gettime() anymore.\n\n[marcelo: future-proof abi with a flags field]\n[jan: fix KVM_GET_CLOCK by clearing flags field instead of checking it]\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ffde22ac53b6d6b1d7206f1172176a667eead778",
      "tree": "16ab77d364ba26928136e6d18463845941b6dd2c",
      "parents": [
        "94c30d9ca6fd00a69e367b91b6e13572c41938c5"
      ],
      "author": {
        "name": "Ed Swierk",
        "email": "eswierk@aristanetworks.com",
        "time": "Thu Oct 15 15:21:43 2009 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:18 2009 +0200"
      },
      "message": "KVM: Xen PV-on-HVM guest support\n\nSupport for Xen PV-on-HVM guests can be implemented almost entirely in\nuserspace, except for handling one annoying MSR that maps a Xen\nhypercall blob into guest address space.\n\nA generic mechanism to delegate MSR writes to userspace seems overkill\nand risks encouraging similar MSR abuse in the future.  Thus this patch\nadds special support for the Xen HVM MSR.\n\nI implemented a new ioctl, KVM_XEN_HVM_CONFIG, that lets userspace tell\nKVM which MSR the guest will write to, as well as the starting address\nand size of the hypercall blobs (one each for 32-bit and 64-bit) that\nuserspace has loaded from files.  When the guest writes to the MSR, KVM\ncopies one page of the blob from userspace to the guest.\n\nI\u0027ve tested this patch with a hacked-up version of Gerd\u0027s userspace\ncode, booting a number of guests (CentOS 5.3 i386 and x86_64, and\nFreeBSD 8.0-RC1 amd64) and exercising PV network and block devices.\n\n[jan: fix i386 build warning]\n[avi: future proof abi with a flags field]\n\nSigned-off-by: Ed Swierk \u003ceswierk@aristanetworks.com\u003e\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b927a3cec081a605142f5b7e90b730611bee28b1",
      "tree": "ed7609e83e89c0830d568aa8304200cdb0c58736",
      "parents": [
        "b792c344dfd57ee2cf737440e4a9b4a5bc39d1db"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Jul 21 10:42:48 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:16 2009 +0300"
      },
      "message": "KVM: VMX: Introduce KVM_SET_IDENTITY_MAP_ADDR ioctl\n\nNow KVM allow guest to modify guest\u0027s physical address of EPT\u0027s identity mapping page.\n\n(change from v1, discard unnecessary check, change ioctl to accept parameter\naddress rather than value)\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "d34e6b175e61821026893ec5298cc8e7558df43a",
      "tree": "8f2934bb0df05d18372509f9ac59aecee5884997",
      "parents": [
        "090b7aff27120cdae76a346a70db394844fea598"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Tue Jul 07 17:08:49 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:12 2009 +0300"
      },
      "message": "KVM: add ioeventfd support\n\nioeventfd is a mechanism to register PIO/MMIO regions to trigger an eventfd\nsignal when written to by a guest.  Host userspace can register any\narbitrary IO address with a corresponding eventfd and then pass the eventfd\nto a specific end-point of interest for handling.\n\nNormal IO requires a blocking round-trip since the operation may cause\nside-effects in the emulated model or may return data to the caller.\nTherefore, an IO in KVM traps from the guest to the host, causes a VMX/SVM\n\"heavy-weight\" exit back to userspace, and is ultimately serviced by qemu\u0027s\ndevice model synchronously before returning control back to the vcpu.\n\nHowever, there is a subclass of IO which acts purely as a trigger for\nother IO (such as to kick off an out-of-band DMA request, etc).  For these\npatterns, the synchronous call is particularly expensive since we really\nonly want to simply get our notification transmitted asychronously and\nreturn as quickly as possible.  All the sychronous infrastructure to ensure\nproper data-dependencies are met in the normal IO case are just unecessary\noverhead for signalling.  This adds additional computational load on the\nsystem, as well as latency to the signalling path.\n\nTherefore, we provide a mechanism for registration of an in-kernel trigger\npoint that allows the VCPU to only require a very brief, lightweight\nexit just long enough to signal an eventfd.  This also means that any\nclients compatible with the eventfd interface (which includes userspace\nand kernelspace equally well) can now register to be notified. The end\nresult should be a more flexible and higher performance notification API\nfor the backend KVM hypervisor and perhipheral components.\n\nTo test this theory, we built a test-harness called \"doorbell\".  This\nmodule has a function called \"doorbell_ring()\" which simply increments a\ncounter for each time the doorbell is signaled.  It supports signalling\nfrom either an eventfd, or an ioctl().\n\nWe then wired up two paths to the doorbell: One via QEMU via a registered\nio region and through the doorbell ioctl().  The other is direct via\nioeventfd.\n\nYou can download this test harness here:\n\nftp://ftp.novell.com/dev/ghaskins/doorbell.tar.bz2\n\nThe measured results are as follows:\n\nqemu-mmio:       110000 iops, 9.09us rtt\nioeventfd-mmio: 200100 iops, 5.00us rtt\nioeventfd-pio:  367300 iops, 2.72us rtt\n\nI didn\u0027t measure qemu-pio, because I have to figure out how to register a\nPIO region with qemu\u0027s device model, and I got lazy.  However, for now we\ncan extrapolate based on the data from the NULLIO runs of +2.56us for MMIO,\nand -350ns for HC, we get:\n\nqemu-pio:      153139 iops, 6.53us rtt\nioeventfd-hc: 412585 iops, 2.37us rtt\n\nthese are just for fun, for now, until I can gather more data.\n\nHere is a graph for your convenience:\n\nhttp://developer.novell.com/wiki/images/7/76/Iofd-chart.png\n\nThe conclusion to draw is that we save about 4us by skipping the userspace\nhop.\n\n--------------------\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e9f4275732add046fed4a548b8dbb98dbe500d2f",
      "tree": "8d9e22bbc6a9557f95712aaa98534d5983034252",
      "parents": [
        "0d1de2d901f4ba0972a3886496a44fb1d3300dbd"
      ],
      "author": {
        "name": "Beth Kon",
        "email": "eak@us.ibm.com",
        "time": "Tue Jul 07 11:50:38 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:12 2009 +0300"
      },
      "message": "KVM: PIT support for HPET legacy mode\n\nWhen kvm is in hpet_legacy_mode, the hpet is providing the timer\ninterrupt and the pit should not be. So in legacy mode, the pit timer\nis destroyed, but the *state* of the pit is maintained. So if kvm or\nthe guest tries to modify the state of the pit, this modification is\naccepted, *except* that the timer isn\u0027t actually started. When we exit\nhpet_legacy_mode, the current state of the pit (which is up to date\nsince we\u0027ve been accepting modifications) is used to restart the pit\ntimer.\n\nThe saved_mode code in kvm_pit_load_count temporarily changes mode to\n0xff in order to destroy the timer, but then restores the actual\nvalue, again maintaining \"current\" state of the pit for possible later\nreenablement.\n\n[avi: add some reserved storage in the ioctl; make SET_PIT2 IOW]\n[marcelo: fix memory corruption due to reserved storage]\n\nSigned-off-by: Beth Kon \u003ceak@us.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2023a29cbe34139afcea8f65f8aef78c325c5dc0",
      "tree": "142223b88f59710a366321a1b47b54b33ba8e19c",
      "parents": [
        "46f43c6ee022c3aeb9686b104234b9f27fac03c2"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Jun 18 11:47:28 2009 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:03 2009 +0300"
      },
      "message": "KVM: remove old KVMTRACE support code\n\nReturn EOPNOTSUPP for KVM_TRACE_ENABLE/PAUSE/DISABLE ioctls.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3f5d18a96577fd78277e08c467041573b9a65eaf",
      "tree": "5c9e15a3b48d188729bb77283cf353fd42903155",
      "parents": [
        "988a2cae6a3c0dea6df59808a935a9a697bfc28c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 11 15:43:28 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:52 2009 +0300"
      },
      "message": "KVM: Return to userspace on emulation failure\n\nInstead of mindlessly retrying to execute the instruction, report the\nfailure to userspace.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "73880c80aa9c8dc353cd0ad26579023213cd5314",
      "tree": "d5bee5c87c3468feb941cc898e342f52c0adce19",
      "parents": [
        "1ed0ce000a6c20c36ec649e32fc24393ef418ed8"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Jun 09 15:56:28 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:52 2009 +0300"
      },
      "message": "KVM: Break dependency between vcpu index in vcpus array and vcpu_id.\n\nArchs are free to use vcpu_id as they see fit. For x86 it is used as\nvcpu\u0027s apic id. New ioctl is added to configure boot vcpu id that was\nassumed to be 0 till now.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6a4a98397331723dce25a7537270548d91523431",
      "tree": "36aedb4d6a2724fff0d838eec812f2233b6a3381",
      "parents": [
        "3a624e29c7587b79abab60e279f9d1a62a3d4716"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jun 09 11:33:36 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:50 2009 +0300"
      },
      "message": "KVM: Reorder ioctls in kvm.h\n\nSomehow the VM ioctls got unsorted; resort.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e7333391403b31feb27a05bc0dcd052a471f1276",
      "tree": "91e4966938853cc97a1d686f9e1643e96ee56ff3",
      "parents": [
        "628eb9b8a8f3ef31d8316112a4596b1a21b38159"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu May 21 13:50:13 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:43 2009 +0300"
      },
      "message": "KVM: Downsize max support MSI-X entry to 256\n\nWe only trap one page for MSI-X entry now, so it\u0027s 4k/(128/8) \u003d 256 entries at\nmost.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c5ff41ce66382d657a76bc06ba252d848826950f",
      "tree": "4b7bc3674faa6259b1e6b07fc616b17dcf281d98",
      "parents": [
        "721eecbf4fe995ca94a9edec0c9843b1cc0eaaf3"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Thu May 14 22:42:53 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:41 2009 +0300"
      },
      "message": "KVM: Allow PIT emulation without speaker port\n\nThe in-kernel speaker emulation is only a dummy and also unneeded from\nthe performance point of view. Rather, it takes user space support to\ngenerate sound output on the host, e.g. console beeps.\n\nTo allow this, introduce KVM_CREATE_PIT2 which controls in-kernel\nspeaker port emulation via a flag passed along the new IOCTL. It also\nleaves room for future extensions of the PIT configuration interface.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "721eecbf4fe995ca94a9edec0c9843b1cc0eaaf3",
      "tree": "c759fe98a4ea5e2e2a7694e4b44a558407077290",
      "parents": [
        "0ba12d10817a8db1fd7d96d3283ec6c0b294aeab"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed May 20 10:30:49 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:41 2009 +0300"
      },
      "message": "KVM: irqfd\n\nKVM provides a complete virtual system environment for guests, including\nsupport for injecting interrupts modeled after the real exception/interrupt\nfacilities present on the native platform (such as the IDT on x86).\nVirtual interrupts can come from a variety of sources (emulated devices,\npass-through devices, etc) but all must be injected to the guest via\nthe KVM infrastructure.  This patch adds a new mechanism to inject a specific\ninterrupt to a guest using a decoupled eventfd mechnanism:  Any legal signal\non the irqfd (using eventfd semantics from either userspace or kernel) will\ntranslate into an injected interrupt in the guest at the next available\ninterrupt window.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "890ca9aefa78f7831f8f633cab9e4803636dffe4",
      "tree": "1a66ca576b6b0c396de79214e2262dc218ec5d56",
      "parents": [
        "af24a4e4aec77ef16c1971cf4465f767ba946034"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon May 11 16:48:15 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:39 2009 +0300"
      },
      "message": "KVM: Add MCE support\n\nThe related MSRs are emulated. MCE capability is exported via\nextension KVM_CAP_MCE and ioctl KVM_X86_GET_MCE_CAP_SUPPORTED.  A new\nvcpu ioctl command KVM_X86_SETUP_MCE is used to setup MCE emulation\nsuch as the mcg_cap. MCE is injected via vcpu ioctl command\nKVM_X86_SET_MCE. Extended machine-check state (MCG_EXT_P) and CMCI are\nnot implemented.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2f8b9ee14eb439008e0c5131116ea6baa40dba50",
      "tree": "7c269a25ba379aef925c8cc462232c116f297a37",
      "parents": [
        "ede2ccc51742059d356d419260460cbbf3e36273"
      ],
      "author": {
        "name": "nathan binkert",
        "email": "nate@binkert.org",
        "time": "Fri Mar 27 21:53:05 2009 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:39 2009 +0300"
      },
      "message": "KVM: Make kvm header C++ friendly\n\nTwo things needed fixing: 1) g++ does not allow a named structure type\nwithin an anonymous union and 2) Avoid name clash between two padding\nfields within the same struct by giving them different names as is\ndone elsewhere in the header.\n\nSigned-off-by: Nathan Binkert \u003cnate@binkert.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e56d532f20c890a06bbe7cd479f4201e3a03cd73",
      "tree": "6c8b1a019a77bf2081ac7482eea322f5b0a636e8",
      "parents": [
        "386eb6e8b3caface8a0514da70a47c05cabb5b96"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu Mar 12 21:45:39 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:29 2009 +0300"
      },
      "message": "KVM: Device assignment framework rework\n\nAfter discussion with Marcelo, we decided to rework device assignment framework\ntogether. The old problems are kernel logic is unnecessary complex. So Marcelo\nsuggest to split it into a more elegant way:\n\n1. Split host IRQ assign and guest IRQ assign. And userspace determine the\ncombination. Also discard msi2intx parameter, userspace can specific\nKVM_DEV_IRQ_HOST_MSI | KVM_DEV_IRQ_GUEST_INTX in assigned_irq-\u003eflags to\nenable MSI to INTx convertion.\n\n2. Split assign IRQ and deassign IRQ. Import two new ioctls:\nKVM_ASSIGN_DEV_IRQ and KVM_DEASSIGN_DEV_IRQ.\n\nThis patch also fixed the reversed _IOR vs _IOW in definition(by deprecated the\nold interface).\n\n[avi: replace homemade bitcount() by hweight_long()]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d510d6cc653bc4b3094ea73afe12600d0ab445b3",
      "tree": "60ea170465dcddcd5cdd7c29a29df3f28407c202",
      "parents": [
        "2350bd1f62c8706c22b8e58c3bfff10806c0a31b"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Feb 25 17:22:28 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:23 2009 +0300"
      },
      "message": "KVM: Enable MSI-X for KVM assigned device\n\nThis patch finally enable MSI-X.\n\nWhat we need for MSI-X:\n1. Intercept one page in MMIO region of device. So that we can get guest desired\nMSI-X table and set up the real one. Now this have been done by guest, and\ntransfer to kernel using ioctl KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY.\n\n2. Information for incoming interrupt. Now one device can have more than one\ninterrupt, and they are all handled by one workqueue structure. So we need to\nidentify them. The previous patch enable gsi_msg_pending_bitmap get this done.\n\n3. Mapping from host IRQ to guest gsi as well as guest gsi to real MSI/MSI-X\nmessage address/data. We used same entry number for the host and guest here, so\nthat it\u0027s easy to find the correlated guest gsi.\n\nWhat we lack for now:\n1. The PCI spec said nothing can existed with MSI-X table in the same page of\nMMIO region, except pending bits. The patch ignore pending bits as the first\nstep (so they are always 0 - no pending).\n\n2. The PCI spec allowed to change MSI-X table dynamically. That means, the OS\ncan enable MSI-X, then mask one MSI-X entry, modify it, and unmask it. The patch\ndidn\u0027t support this, and Linux also don\u0027t work in this way.\n\n3. The patch didn\u0027t implement MSI-X mask all and mask single entry. I would\nimplement the former in driver/pci/msi.c later. And for single entry, userspace\nshould have reposibility to handle it.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c1e01514296e8a4a43ff0c88dcff635cb90feb5f",
      "tree": "299a54da71c4900fc3b71840e2c6eec98b35f8b4",
      "parents": [
        "bfd349d073b2838a6a031f057d25e266619b7093"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Feb 25 17:22:26 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:23 2009 +0300"
      },
      "message": "KVM: Ioctls for init MSI-X entry\n\nIntroduce KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY two ioctls.\n\nThis two ioctls are used by userspace to specific guest device MSI-X entry\nnumber and correlate MSI-X entry with GSI during the initialization stage.\n\nMSI-X should be well initialzed before enabling.\n\nDon\u0027t support change MSI-X entry number for now.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4cd481f68dde99ac416003b825c835f71e364393",
      "tree": "ee30cd2e24534285cdb2b4315e7d441c9689ea99",
      "parents": [
        "bf47a760f66add7870fba33ab50f58b550d6bbd1"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Mon Apr 13 11:59:32 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Apr 22 13:52:09 2009 +0300"
      },
      "message": "KVM: Fix overlapping check for memory slots\n\nWhen checking for overlapping slots on registration of a new one, kvm\ncurrently also considers zero-length (ie. deleted) slots and rejects\nrequests incorrectly. This finally denies user space from joining slots.\nFix the check by skipping deleted slots and advertise this via a\nKVM_CAP_JOIN_MEMORY_REGIONS_WORKS.\n\nCc: stable@kernel.org\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bc7a8660df62da3fb5cad025322eda75fbee8731",
      "tree": "fd65bc4aa3046b3dffc843389be52869576aa99b",
      "parents": [
        "046a48b35baa7c66d0d0331256ba12ca51665411"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Mar 17 19:27:19 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:15 2009 +0200"
      },
      "message": "KVM: Correct deassign device ioctl to IOW\n\nIt\u0027s IOR by mistake, so fix it before release.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2df8a40bccf5999261d0d3a82eac5a77678e61bd",
      "tree": "dee31e8e129b9ef90ae57e93e83ce76e6f44015b",
      "parents": [
        "b0a1835d53c57bc38b36867c04436b60454cb610"
      ],
      "author": {
        "name": "Weidong Han",
        "email": "weidong.han@intel.com",
        "time": "Fri Feb 13 10:50:56 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:12 2009 +0200"
      },
      "message": "KVM: define KVM_CAP_DEVICE_DEASSIGNMENT\n\ndefine KVM_CAP_DEVICE_DEASSIGNMENT and KVM_DEASSIGN_PCI_DEVICE\nfor device deassignment.\n\nthe ioctl has been already implemented in the\ncommit: 0a920356748df4fb06e86c21c23d2ed6d31d37ad\n\nAcked-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4925663a079c77d95d8685228ad6675fc5639c8e",
      "tree": "52e93df78b23a44ed21d015f835688f673dd351a",
      "parents": [
        "452425dbaa1974e9fc489e64a8de46a47b4c2754"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Wed Feb 04 17:28:14 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:11 2009 +0200"
      },
      "message": "KVM: Report IRQ injection status to userspace.\n\nIRQ injection status is either -1 (if there was no CPU found\nthat should except the interrupt because IRQ was masked or\nioapic was misconfigured or ...) or \u003e\u003d 0 in that case the\nnumber indicates to how many CPUs interrupt was injected.\nIf the value is 0 it means that the interrupt was coalesced\nand probably should be reinjected.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "79950e1073150909619b7c0f9a39a2fea83a42d8",
      "tree": "5dc96ee5d69029d61b90bc18d44cb42baaa925cd",
      "parents": [
        "34c33d163fe509da8414a736c6328855f8c164e5"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Feb 10 13:57:06 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:09 2009 +0200"
      },
      "message": "KVM: Use irq routing API for MSI\n\nMerge MSI userspace interface with IRQ routing table. Notice the API have been\nchanged, and using IRQ routing table would be the only interface kvm-userspace\nsupported.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "91b2ae773d3b168b763237fac33f75b13d891f20",
      "tree": "739ec0a4debd058277493707c8ebf6226dbe41a3",
      "parents": [
        "399ec807ddc38ecccf8c06dbde04531cbdc63e11"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 19 14:57:52 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:06 2009 +0200"
      },
      "message": "KVM: Avoid using CONFIG_ in userspace visible headers\n\nKconfig symbols are not available in userspace, and are not stripped by\nheaders-install.  Avoid their use by adding #defines in \u003casm/kvm.h\u003e to\nsuit each architecture.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "399ec807ddc38ecccf8c06dbde04531cbdc63e11",
      "tree": "75a4e3ee9cfffb4ecf7b4608bb592c89f2b62219",
      "parents": [
        "193554750441d91e127dd5066b8aebe0f769101c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 19 13:58:46 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:06 2009 +0200"
      },
      "message": "KVM: Userspace controlled irq routing\n\nCurrently KVM has a static routing from GSI numbers to interrupts (namely,\n0-15 are mapped 1:1 to both PIC and IOAPIC, and 16:23 are mapped 1:1 to\nthe IOAPIC).  This is insufficient for several reasons:\n\n- HPET requires non 1:1 mapping for the timer interrupt\n- MSIs need a new method to assign interrupt numbers and dispatch them\n- ACPI APIC mode needs to be able to reassign the PCI LINK interrupts to the\n  ioapics\n\nThis patch implements an interrupt routing table (as a linked list, but this\ncan be easily changed) and a userspace interface to replace the table.  The\nrouting table is initialized according to the current hardwired mapping.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "17071fe74fe0fbfdb03cd9b82f2490447cf1f986",
      "tree": "1090267522ecf64960c0745ccf6dca32927e481d",
      "parents": [
        "67346440e83d2a2f2e9801f370b6240317c7d9bd"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Jan 06 16:25:11 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:02 2009 +0200"
      },
      "message": "KVM: Add support to disable MSI for assigned device\n\nMSI is always enabled by default for msi2intx\u003d1. But if msi2intx\u003d0, we\nhave to disable MSI if guest require to do so.\n\nThe patch also discard unnecessary msi2intx judgment if guest want to update\nMSI state.\n\nNotice KVM_DEV_IRQ_ASSIGN_MSI_ACTION is a mask which should cover all MSI\nrelated operations, though we only got one for now.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "52d939a0bf44081bc9f69b4fbdc9e7f416df27c7",
      "tree": "27a14385847f5585cdccaf5e5c18074595642970",
      "parents": [
        "61a6bd672bda3b9468bf5895c1be085c4e481138"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Tue Dec 30 15:55:06 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:55 2009 +0200"
      },
      "message": "KVM: PIT: provide an option to disable interrupt reinjection\n\nCertain clocks (such as TSC) in older 2.6 guests overaccount for lost\nticks, causing severe time drift. Interrupt reinjection magnifies the\nproblem.\n\nProvide an option to disable it.\n\n[avi: allow room for expansion in case we want to disable reinjection\n      of other timers]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "971cc3dcbc0e020b82f568e61a47b72be03307dd",
      "tree": "f21c0865fd26ea820a88fe7bb7fea59840ada7e1",
      "parents": [
        "2b3d2a206037b1471de6a6dc51427af034cfdb47"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Dec 19 18:13:54 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:52 2009 +0200"
      },
      "message": "KVM: Advertise guest debug capability per-arch\n\nLimit KVM_CAP_SET_GUEST_DEBUG only to those archs (currently x86) that\nsupport it. This simplifies user space stub implementations.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e9a999fe1feaddb71bffbacbbd68e0da8ca8b50b",
      "tree": "57e8758433e31f8d70251aff9ce32fdd30ad8c18",
      "parents": [
        "ae675ef01cd86014acf8da5dee87876b71122495"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Thu Dec 18 12:17:51 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:50 2009 +0200"
      },
      "message": "KVM: ia64: stack get/restore patch\n\nImplement KVM_IA64_VCPU_[GS]ET_STACK ioctl calls. This is required\nfor live migrations.\n\nPatch is based on previous implementation that was part of old\nGET/SET_REGS ioctl calls.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d0bfb940ecabf0b44fb1fd80d8d60594e569e5ec",
      "tree": "b5927d44937a54ec23d2a28d59db06a0262c0412",
      "parents": [
        "8ab2d2e231062814bd89bba2d6d92563190aa2bb"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Dec 15 13:52:10 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:49 2009 +0200"
      },
      "message": "KVM: New guest debug interface\n\nThis rips out the support for KVM_DEBUG_GUEST and introduces a new IOCTL\ninstead: KVM_SET_GUEST_DEBUG. The IOCTL payload consists of a generic\npart, controlling the \"main switch\" and the single-step feature. The\narch specific part adds an x86 interface for intercepting both types of\ndebug exceptions separately and re-injecting them when the host was not\ninterested. Moveover, the foundation for guest debugging via debug\nregisters is layed.\n\nTo signal breakpoint events properly back to userland, an arch-specific\ndata block is now returned along KVM_EXIT_DEBUG. For x86, the arch block\ncontains the PC, the debug exception, and relevant debug registers to\ntell debug events properly apart.\n\nThe availability of this new interface is signaled by\nKVM_CAP_SET_GUEST_DEBUG. Empty stubs for not yet supported archs are\nprovided.\n\nNote that both SVM and VTX are supported, but only the latter was tested\nyet. Based on the experience with all those VTX corner case, I would be\nfairly surprised if SVM will work out of the box.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7a0eb1960e8ddcb68ea631caf16815485af0e228",
      "tree": "0614c3c2265ed02072a082dea68a86e31f71dd7f",
      "parents": [
        "d39123a486524fed9b4e43e08a8757fd90a5859a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 19 14:57:52 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Feb 15 02:47:35 2009 +0200"
      },
      "message": "KVM: Avoid using CONFIG_ in userspace visible headers\n\nKconfig symbols are not available in userspace, and are not stripped by\nheaders-install.  Avoid their use by adding #defines in \u003casm/kvm.h\u003e to\nsuit each architecture.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "00bfddaf7f68a6551319b536f052040c370756b0",
      "tree": "353061720b9558708ae513fd71673a4c50bc1c3f",
      "parents": [
        "068b38c1fa7a9210608f27ac521897ccc5f9b726"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@infradead.org",
        "time": "Thu Jan 15 13:51:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:41 2009 -0800"
      },
      "message": "include of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n\nImpact: fix 15 make headers_check warnings:\n\ninclude of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4531220b71f0399e71cda0c4cf749e7281a7416a",
      "tree": "2d0b71b97a15bdd6ede42d05b7b9b791c3891eb3",
      "parents": [
        "264ff01d55b456932cef03082448b41d2edeb6a1"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Thu Dec 11 16:54:54 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:47 2008 +0200"
      },
      "message": "KVM: x86: Rework user space NMI injection as KVM_CAP_USER_NMI\n\nThere is no point in doing the ready_for_nmi_injection/\nrequest_nmi_window dance with user space. First, we don\u0027t do this for\nin-kernel irqchip anyway, while the code path is the same as for user\nspace irqchip mode. And second, there is nothing to loose if a pending\nNMI is overwritten by another one (in contrast to IRQs where we have to\nsave the number). Actually, there is even the risk of raising spurious\nNMIs this way because the reason for the held-back NMI might already be\nhandled while processing the first one.\n\nTherefore this patch creates a simplified user space NMI injection\ninterface, exporting it under KVM_CAP_USER_NMI and dropping the old\nKVM_CAP_NMI capability. And this time we also take care to provide the\ninterface only on archs supporting NMIs via KVM (right now only x86).\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "1a811b6167089bcdb84284f2dc9fd0b4d0f1899d",
      "tree": "6a5d9fbf78475dd7fe2f0b85aa98dd8b82b660d8",
      "parents": [
        "7f59f492da722eb3551bbe1f8f4450a21896f05d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Dec 08 18:25:27 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:46 2008 +0200"
      },
      "message": "KVM: Advertise the bug in memory region destruction as fixed\n\nUserspace might need to act differently.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6b9cc7fd469869bed38831c5adac3f59dc25eaf5",
      "tree": "63d526ff94b891116c37bf9705e42a45479271f0",
      "parents": [
        "f64769eb05565c74d7fce6fa75d65924f9cdaf79"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Mon Nov 24 14:32:56 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:02 2008 +0200"
      },
      "message": "KVM: Enable MSI for device assignment\n\nWe enable guest MSI and host MSI support in this patch. The userspace want to\nenable MSI should set KVM_DEV_IRQ_ASSIGN_ENABLE_MSI in the assigned_irq\u0027s flag.\nFunction would return -ENOTTY if can\u0027t enable MSI, userspace shouldn\u0027t set MSI\nEnable bit when KVM_ASSIGN_IRQ return -ENOTTY with\nKVM_DEV_IRQ_ASSIGN_ENABLE_MSI.\n\nUserspace can tell the support of MSI device from #ifdef KVM_CAP_DEVICE_MSI.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "0937c48d075ddd59ae2c12a6fa8308b9c7a63753",
      "tree": "36195da5274891f8e417f907be6cca53f8e1dda0",
      "parents": [
        "fbac7818d8fba7e1df9f4b209777f3b67b953dd3"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Mon Nov 24 14:32:53 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:01 2008 +0200"
      },
      "message": "KVM: Add fields for MSI device assignment\n\nPrepared for kvm_arch_assigned_device_msi_dispatch().\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c4abb7c9cde24b7351a47328ef866e6a2bbb1ad0",
      "tree": "85cef82232898397e645e53334655712af54085f",
      "parents": [
        "26df99c6c5807115f06d4e1abae397b7f5f3e00c"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Sep 26 09:30:55 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:51:42 2008 +0200"
      },
      "message": "KVM: x86: Support for user space injected NMIs\n\nIntroduces the KVM_NMI IOCTL to the generic x86 part of KVM for\ninjecting NMIs from user space and also extends the statistic report\naccordingly.\n\nBased on the original patch by Sheng Yang.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bb45e202e695dea8657bb03a01d1522c37558672",
      "tree": "529c3ca4e9947d1dc536f53d68d2eb743b4a53a9",
      "parents": [
        "decc90162a99b4e51c534ab63f9b6fc5cb0f2596"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 19 16:39:45 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Oct 28 14:22:15 2008 +0200"
      },
      "message": "KVM: Future-proof device assignment ABI\n\nReserve some space so we can add more data.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2381ad241d0bea1253a37f314b270848067640bb",
      "tree": "f722e3da63c8f26ef7309653848ab7cea02e08cb",
      "parents": [
        "b010eb5103cfbe12ae6f08a4cdb3a748bf78c410"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Oct 08 08:29:33 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:39 2008 +0200"
      },
      "message": "KVM: ia64: Add intel iommu support for guests.\n\nWith intel iommu hardware, we can assign devices to kvm/ia64 guests.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a98f6648a2b0756d8f26d6c13332f5526355fec",
      "tree": "8df03d146d22082644df8078747e332f9b2aff1f",
      "parents": [
        "371c01b28e4049d1fbf60a9631cdad98f7cae030"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Oct 06 13:47:38 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:33 2008 +0200"
      },
      "message": "KVM: Move device assignment logic to common code\n\nTo share with other archs, this patch moves device assignment\nlogic to common parts.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62c476c7c7f25a5b245b9902a935636e6316e58c",
      "tree": "6584591c7c345fcbb3c6d437203dc7f4a628573a",
      "parents": [
        "387179464257921eb9aa3d15cc3ff194f6945a7c"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Sun Sep 14 03:48:28 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:04 2008 +0200"
      },
      "message": "KVM: Device Assignment with VT-d\n\nBased on a patch by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\n\nThis patch enables PCI device assignment based on VT-d support.\nWhen a device is assigned to the guest, the guest memory is pinned and\nthe mapping is updated in the VT-d IOMMU.\n\n[Amit: Expose KVM_CAP_IOMMU so we can check if an IOMMU is present\nand also control enable/disable from userspace]\n\nSigned-off-by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nAcked-by: Mark Gross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4d5c5d0fe89c921336b95f5e7e4f529a9df92f53",
      "tree": "7281955b46811fb25283a3b6abb7620630b2b26e",
      "parents": [
        "cbff90a7caa49507d399c9a55ba4a411e840bfb4"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Mon Jul 28 19:26:26 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:18 2008 +0200"
      },
      "message": "KVM: pci device assignment\n\nBased on a patch from: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nThis patch adds support for handling PCI devices that are assigned to\nthe guest.\n\nThe device to be assigned to the guest is registered in the host kernel\nand interrupt delivery is handled.  If a device is already assigned, or\nthe device driver for it is still loaded on the host, the device\nassignment is failed by conveying a -EBUSY reply to the userspace.\n\nDevices that share their interrupt line are not supported at the moment.\n\nBy itself, this patch will not make devices work within the guest.\nThe VT-d extension is required to enable the device to perform DMA.\nAnother alternative is PVDMA.\n\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3b4bd7969f7b61a1ab455bff084ee4f0a2411055",
      "tree": "019b375e8981e70e8b60dd43d0d9ae6927f76724",
      "parents": [
        "31711f2294b38d8334efaf7dbac6da4781fd151e"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:04 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: trace powerpc instruction emulation\n\nThis patch adds a trace point for the instruction emulation on embedded powerpc\nutilizing the KVM_TRACE interface.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "31711f2294b38d8334efaf7dbac6da4781fd151e",
      "tree": "0e60487f9c79113f1f0c9cbc094d9a167d5c3f46",
      "parents": [
        "12f67556023389a6be929a56617142a8e8ab20fe"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Jul 14 14:00:03 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: adds trace points for ppc tlb activity\n\nThis patch adds trace points to track powerpc TLB activities using the\nKVM_TRACE infrastructure.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3f7f95c65ef6a89472a28da1b9436eaeee288831",
      "tree": "d453af46dceb3fcce512a110573cd2e8e4341cfa",
      "parents": [
        "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:01 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: kvmtrace: replace get_cycles with ktime_get v3\n\nThe current kvmtrace code uses get_cycles() while the interpretation would be\neasier using using nanoseconds. ktime_get() should give at least the same\naccuracy as get_cycles on all architectures (even better on 32bit archs) but\nat a better unit (e.g. comparable between hosts with different frequencies.\n\n[avi: avoid ktime_t in public header]\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707",
      "tree": "75329603864952437757705781520dc52906b51c",
      "parents": [
        "80e31d4f61f69d0e480ae092cda0e590d6a30aeb"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:00 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:14 2008 +0200"
      },
      "message": "KVM: kvmtrace: Remove use of bit fields in kvm trace structure\n\nThis patch fixes kvmtrace use on big endian systems. When using bit fields the\ncompiler will lay data out in the wrong order expected when laid down into a\nfile.\nThis fixes it by using one variable instead of using bit fields.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d98e6346350ac909f095768beb28b82368bd126f",
      "tree": "e0d1c78c08f0305f514ad69011a7b8701faf6f12",
      "parents": [
        "5fdbf9765b7ba6a45100851154768de703d51e76"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Tue Jul 01 16:23:49 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:12 2008 +0200"
      },
      "message": "KVM: Move KVM TRACE DEFINITIONS to common header\n\nMove KVM trace definitions from x86 specific kvm headers to common kvm\nheaders to create a cross-architecture numbering scheme for trace\nevents. This means the kvmtrace_format userspace tool won\u0027t need to know\nwhich architecture produced the log file being processed.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1327138e294ffda120a50c8f31d792addb196c79",
      "tree": "64ed2619cae4f2768b43f541ca5b73999d241646",
      "parents": [
        "cd5998ebfbc9e6cb44408efa217c15d7eea13675"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Aug 06 01:36:09 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Aug 25 17:28:25 2008 +0300"
      },
      "message": "KVM: fix userspace ABI breakage\n\nThe following part of commit 9ef621d3be56e1188300476a8102ff54f7b6793f\n(KVM: Support mixed endian machines) changed on the size of a struct\nthat is exported to userspace:\n\ninclude/linux/kvm.h:\n\n@@ -318,14 +318,14 @@ struct kvm_trace_rec {\n \t__u32 vcpu_id;\n \tunion {\n \t\tstruct {\n-\t\t\t__u32 cycle_lo, cycle_hi;\n+\t\t\t__u64 cycle_u64;\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} cycle;\n \t\tstruct {\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} nocycle;\n \t} u;\n-};\n+} __attribute__((packed));\n\nPacking a struct was the correct idea, but it packed the wrong struct.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ed8486243379ef3e6c61363df915882945c0eaec",
      "tree": "5504b545fc236d192be34a4a68de7b74c64f70e9",
      "parents": [
        "e930bffe95e1e886a1ede80726ea38df5838d067"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 11:30:57 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 12:34:02 2008 +0300"
      },
      "message": "KVM: Advertise synchronized mmu support to userspace\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9ef621d3be56e1188300476a8102ff54f7b6793f",
      "tree": "f5576d1365e726823c3eb4f772481cf5e4d1d0c7",
      "parents": [
        "25be46080f1a446cb2bda3daadbd22a5682b955e"
      ],
      "author": {
        "name": "Tan, Li",
        "email": "li.tan@intel.com",
        "time": "Fri May 23 14:54:09 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:32 2008 +0300"
      },
      "message": "KVM: Support mixed endian machines\n\nCurrently kvmtrace is not portable. This will prevent from copying a\ntrace file from big-endian target to little-endian workstation for analysis.\nIn the patch, kernel outputs metadata containing a magic number to trace\nlog, and changes 64-bit words to be u64 instead of a pair of u32s.\n\nSigned-off-by: Tan Li \u003cli.tan@intel.com\u003e\nAcked-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5f94c1741bdc7a336553122036e8a779e616ccbf",
      "tree": "fb0dc4edf0c346dc266eb2ee2d433cb2678a0bc4",
      "parents": [
        "92760499d01ef91518119908eb9b8798b6c9bd3f"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri May 30 16:05:54 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:31 2008 +0300"
      },
      "message": "KVM: Add coalesced MMIO support (common part)\n\nThis patch adds all needed structures to coalesce MMIOs.\nUntil an architecture uses it, it is not compiled.\n\nCoalesced MMIO introduces two ioctl() to define where are the MMIO zones that\ncan be coalesced:\n\n- KVM_REGISTER_COALESCED_MMIO registers a coalesced MMIO zone.\n  It requests one parameter (struct kvm_coalesced_mmio_zone) which defines\n  a memory area where MMIOs can be coalesced until the next switch to\n  user space. The maximum number of MMIO zones is KVM_COALESCED_MMIO_ZONE_MAX.\n\n- KVM_UNREGISTER_COALESCED_MMIO cancels all registered zones inside\n  the given bounds (bounds are also given by struct kvm_coalesced_mmio_zone).\n\nThe userspace client can check kernel coalesced MMIO availability by asking\nioctl(KVM_CHECK_EXTENSION) for the KVM_CAP_COALESCED_MMIO capability.\nThe ioctl() call to KVM_CAP_COALESCED_MMIO will return 0 if not supported,\nor the page offset where will be stored the ring buffer.\nThe page offset depends on the architecture.\n\nAfter an ioctl(KVM_RUN), the first page of the KVM memory mapped points to\na kvm_run structure. The offset given by KVM_CAP_COALESCED_MMIO is\nan offset to the coalesced MMIO ring expressed in PAGE_SIZE relatively\nto the address of the start of th kvm_run structure. The MMIO ring buffer\nis defined by the structure kvm_coalesced_mmio_ring.\n\n[akio: fix oops during guest shutdown]\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Akio Takebe \u003ctakebe_akio@jp.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b2312f059c893833de58876c74290511846cd208",
      "tree": "6164572aeaf0761412af0ce860b031e126cebcba",
      "parents": [
        "4baacfb0de53b05428c87d377fc8a3def4dc10e7"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Apr 16 23:28:07 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:37 2008 +0300"
      },
      "message": "KVM: ppc: Add DCR access information to struct kvm_run\n\nDevice Control Registers are essentially another address space found on PowerPC\n4xx processors, analogous to PIO on x86. DCRs are always 32 bits, and can be\nidentified by a 32-bit number. We forward most DCR accesses to userspace for\nemulation (with the exception of CPR0 registers, which can be read directly\nfor simplicity in timebase frequency determination).\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62d9f0dbc92d7e398fde53fc6021338393522e68",
      "tree": "028e62807ead3db11f15694323743b90c8211ef8",
      "parents": [
        "a45352908b88d383bc40e1e4d1a6cc5bbcefc895"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 11 13:24:45 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:16 2008 +0300"
      },
      "message": "KVM: add ioctls to save/store mpstate\n\nSo userspace can save/restore the mpstate during migration.\n\n[avi: export the #define constants describing the value]\n[christian: add s390 stubs]\n[avi: ditto for ia64]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2714d1d3d6be882b97cd0125140fccf9976a460a",
      "tree": "57b654cafff076ae95b62b7763113b1ef8511eb5",
      "parents": [
        "53371b5098543ab09dcb0c7ce31da887dbe58c62"
      ],
      "author": {
        "name": "Feng (Eric) Liu",
        "email": "eric.e.liu@intel.com",
        "time": "Thu Apr 10 15:31:10 2008 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:01:19 2008 +0300"
      },
      "message": "KVM: Add trace markers\n\nTrace markers allow userspace to trace execution of a virtual machine\nin order to monitor its performance.\n\nSigned-off-by: Feng (Eric) Liu \u003ceric.e.liu@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e28acfea5dd9dbc67c2594cbefc140129dbd0e3f",
      "tree": "2f66c3afcf18fd938bae1460f1c5d35ccbf75550",
      "parents": [
        "5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:34 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:46 2008 +0300"
      },
      "message": "KVM: s390: intercepts for diagnose instructions\n\nThis patch introduces interpretation of some diagnose instruction intercepts.\nDiagnose is our classic architected way of doing a hypercall. This patch\nfeatures the following diagnose codes:\n- vm storage size, that tells the guest about its memory layout\n- time slice end, which is used by the guest to indicate that it waits\n  for a lock and thus cannot use up its time slice in a useful way\n- ipl functions, which a guest can use to reset and reboot itself\n\nIn order to implement ipl functions, we also introduce an exit reason that\ncauses userspace to perform various resets on the virtual machine. All resets\nare described in the principles of operation book, except KVM_S390_RESET_IPL\nwhich causes a reboot of the machine.\n\nAcked-by: Martin Schwidefsky \u003cmartin.schwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ba5c1e9b6ceebdc39343cc03eb39f077abd3c571",
      "tree": "ab07e763ad7d9aad2ef189def5537e73a50c7503",
      "parents": [
        "8f2abe6a1e525e878bdf58f68ccd146d543fde84"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:26 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:44 2008 +0300"
      },
      "message": "KVM: s390: interrupt subsystem, cpu timer, waitpsw\n\nThis patch contains the s390 interrupt subsystem (similar to in kernel apic)\nincluding timer interrupts (similar to in-kernel-pit) and enabled wait\n(similar to in kernel hlt).\n\nIn order to achieve that, this patch also introduces intercept handling\nfor instruction intercepts, and it implements load control instructions.\n\nThis patch introduces an ioctl KVM_S390_INTERRUPT which is valid for both\nthe vm file descriptors and the vcpu file descriptors. In case this ioctl is\nissued against a vm file descriptor, the interrupt is considered floating.\nFloating interrupts may be delivered to any virtual cpu in the configuration.\n\nThe following interrupts are supported:\nSIGP STOP       - interprocessor signal that stops a remote cpu\nSIGP SET PREFIX - interprocessor signal that sets the prefix register of a\n                  (stopped) remote cpu\nINT EMERGENCY   - interprocessor interrupt, usually used to signal need_reshed\n                  and for smp_call_function() in the guest.\nPROGRAM INT     - exception during program execution such as page fault, illegal\n                  instruction and friends\nRESTART         - interprocessor signal that starts a stopped cpu\nINT VIRTIO      - floating interrupt for virtio signalisation\nINT SERVICE     - floating interrupt for signalisations from the system\n                  service processor\n\nstruct kvm_s390_interrupt, which is submitted as ioctl parameter when injecting\nan interrupt, also carrys parameter data for interrupts along with the interrupt\ntype. Interrupts on s390 usually have a state that represents the current\noperation, or identifies which device has caused the interruption on s390.\n\nkvm_s390_handle_wait() does handle waitpsw in two flavors: in case of a\ndisabled wait (that is, disabled for interrupts), we exit to userspace. In case\nof an enabled wait we set up a timer that equals the cpu clock comparator value\nand sleep on a wait queue.\n\n[christian: change virtio interrupt to 0x2603]\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8f2abe6a1e525e878bdf58f68ccd146d543fde84",
      "tree": "5f52959474a16847c740fb8668ebd9d6cbc75d07",
      "parents": [
        "b0c632db637d68ad39d9f97f452ce176253f5f4e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:23 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:43 2008 +0300"
      },
      "message": "KVM: s390: sie intercept handling\n\nThis path introduces handling of sie intercepts in three flavors: Intercepts\nare either handled completely in-kernel by kvm_handle_sie_intercept(),\nor passed to userspace with corresponding data in struct kvm_run in case\nkvm_handle_sie_intercept() returns -ENOTSUPP.\nIn case of partial execution in kernel with the need of userspace support,\nkvm_handle_sie_intercept() may choose to set up struct kvm_run and return\n-EREMOTE.\n\nThe trivial intercept reasons are handled in this patch:\nhandle_noop() just does nothing for intercepts that don\u0027t require our support\n  at all\nhandle_stop() is called when a cpu enters stopped state, and it drops out to\n  userland after updating our vcpu state\nhandle_validity() faults in the cpu lowcore if needed, or passes the request\n  to userland\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b0c632db637d68ad39d9f97f452ce176253f5f4e",
      "tree": "770d68c17cbcabc1543d1e9125669130fcf4fee4",
      "parents": [
        "8a88ac6183975c73c65b45f365f6f3b875c1348b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Mar 25 18:47:20 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:42 2008 +0300"
      },
      "message": "KVM: s390: arch backend for the kvm kernel module\n\nThis patch contains the port of Qumranet\u0027s kvm kernel module to IBM zSeries\n (aka s390x, mainframe) architecture. It uses the mainframe\u0027s virtualization\ninstruction SIE to run virtual machines with up to 64 virtual CPUs each.\nThis port is only usable on 64bit host kernels, and can only run 64bit guest\nkernels. However, running 31bit applications in guest userspace is possible.\n\nThe following source files are introduced by this patch\narch/s390/kvm/kvm-s390.c    similar to arch/x86/kvm/x86.c, this implements all\n                            arch callbacks for kvm. __vcpu_run calls back into\n                            sie64a to enter the guest machine context\narch/s390/kvm/sie64a.S      assembler function sie64a, which enters guest\n                            context via SIE, and switches world before and after                            that\ninclude/asm-s390/kvm_host.h contains all vital data structures needed to run\n                            virtual machines on the mainframe\ninclude/asm-s390/kvm.h      defines kvm_regs and friends for user access to\n                            guest register content\narch/s390/kvm/gaccess.h     functions similar to uaccess to access guest memory\narch/s390/kvm/kvm-s390.h    header file for kvm-s390 internals, extended by\n                            later patches\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97646202bc3f190dfcb48a3d506ea2445717d392",
      "tree": "0715fd746a29360522154e0a15f91da94a243555",
      "parents": [
        "1e977aa12dd4f80688b1f243762212e75c6d7fe8"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Mar 12 18:10:45 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:32 2008 +0300"
      },
      "message": "KVM: kvm.h: __user requires compiler.h\n\ninclude/linux/kvm.h defines struct kvm_dirty_log to\n\t[...]\n\tunion {\n\t\tvoid __user *dirty_bitmap; /* one bit per page */\n\t\t__u64 padding;\n\t};\n\n__user requires compiler.h to compile. Currently, this works on x86\nonly coincidentally due to other include files. This patch makes\nkvm.h compile in all cases.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2f333bcb4edd8daef99dabe4e7df8277af73cff1",
      "tree": "c984466e7756e0910bf470a094558b52bd10df33",
      "parents": [
        "9f81128591ca1e9907f2e7a7b195e33232167d60"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:37 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:27 2008 +0300"
      },
      "message": "KVM: MMU: hypercall based pte updates and TLB flushes\n\nHypercall based pte updates are faster than faults, and also allow use\nof the lazy MMU mode to batch operations.\n\nDon\u0027t report the feature if two dimensional paging is enabled.\n\n[avi:\n - one mmu_op hypercall instead of one per op\n - allow 64-bit gpa on hypercall\n - don\u0027t pass host errors (-ENOMEM) to guest]\n\n[akpm: warning fix on i386]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a28e4f5a621289fe0d9c8a461b0c256f9e17f3bc",
      "tree": "dfa62426cf55dfb2fad66e924eab34e9840bff12",
      "parents": [
        "308b0f239e8d6754b8b903d279e5b5b987e257ac"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:36 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:24 2008 +0300"
      },
      "message": "KVM: add basic paravirt support\n\nAdd basic KVM paravirt support. Avoid vm-exits on IO delays.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e0f63cb9277b64850854aee301762beeeb463473",
      "tree": "ae10bac92ee6cc1a658b479a311fac67ebd3524c",
      "parents": [
        "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Tue Mar 04 00:50:59 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:22 2008 +0300"
      },
      "message": "KVM: Add save/restore supporting of in kernel PIT\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a",
      "tree": "37a89d5c10869a9ada59df75b49d685708661434",
      "parents": [
        "4fcaa98267efc4d39ded9b0bc33c6b4a2f62fecd"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Mon Jan 28 05:10:22 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:21 2008 +0300"
      },
      "message": "KVM: In kernel PIT model\n\nThe patch moves the PIT model from userspace to kernel, and increases\nthe timer accuracy greatly.\n\n[marcelo: make last_injected_time per-guest]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nTested-and-Acked-by: Alex Davis \u003calex14641@yahoo.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a988b910ef816ed57e1cecbec14e98e906453f91",
      "tree": "ff76b7c516db08bb5adafd87d895f53356144d0d",
      "parents": [
        "edbe6c325da48e707a3b31310c5ff5783cf6c0be"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:59:20 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API for determining the number of supported memory slots\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f725230af9ea03f6cc6f4a90e87aa428df46ec19",
      "tree": "dcbeae15414805505a71b25c0ee989d698522ea4",
      "parents": [
        "7a95727567f0991751c2db774a110b4f8080de7f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:53:16 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API to retrieve the number of supported vcpus per vm\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "18068523d3a0b41fcee5b53cdb437a0ab4d65e4b",
      "tree": "cbedbd4371cb57c34728137988a7433ae736d79a",
      "parents": [
        "24e09cbf480a72f9c952af4ca77b159503dca44b"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Feb 15 17:52:47 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "KVM: paravirtualized clocksource: host part\n\nThis is the host part of kvm clocksource implementation. As it does\nnot include clockevents, it is a fairly simple implementation. We\nonly have to register a per-vcpu area, and start writing to it periodically.\n\nThe area is binary compatible with xen, as we use the same shadow_info\nstructure.\n\n[marcelo: fix bad_page on MSR_KVM_SYSTEM_TIME]\n[avi: save full value of the msr, even if enable bit is clear]\n[avi: clear previous value of time_page]\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "674eea0fc4d1d693250b5d3ddad42ca931c87dfd",
      "tree": "a7995dd52f6715081cac74484a84351003e48480",
      "parents": [
        "d730616384211436cfc84e6c2c1aa45351706a96"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 11 18:37:23 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 03 11:22:25 2008 +0200"
      },
      "message": "KVM: Make the supported cpuid list a host property rather than a vm property\n\nOne of the use cases for the supported cpuid list is to create a \"greatest\ncommon denominator\" of cpu capabilities in a server farm.  As such, it is\nuseful to be able to get the list without creating a virtual machine first.\n\nSince the code does not depend on the vm in any way, all that is needed is\nto move it to the device ioctl handler.  The capability identifier is also\nchanged so that binaries made against -rc1 will fail gracefully.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6f723c7911e7827091586ae63f4040874eeb75e5",
      "tree": "fd048c1c6cfd47131fc03e97a55520562d1f152b",
      "parents": [
        "571008daccc17c03ccec810922c2bcaed86b15c1"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Tue Jan 08 08:04:50 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:22 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_fpu to asm-x86/kvm.h\n\nThis patch moves kvm_fpu asm-x86/kvm.h to allow every architecture to\ndefine an own representation used for KVM_GET_FPU/KVM_SET_FPU.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b93463aa59d67b21b4921e30bd5c5dcc7c35ffbd",
      "tree": "8de9a2789624d27155d8a94c93a23c01f473fea7",
      "parents": [
        "b209749f528488c4c0d20a42c0fbcbf49e6933b3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 25 16:52:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:20 2008 +0200"
      },
      "message": "KVM: Accelerated apic support\n\nThis adds a mechanism for exposing the virtual apic tpr to the guest, and a\nprotocol for letting the guest update the tpr without causing a vmexit if\nconditions allow (e.g. there is no interrupt pending with a higher priority\nthan the new tpr).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b209749f528488c4c0d20a42c0fbcbf49e6933b3",
      "tree": "0e0a24225a5c6bca1c1986cc0daaf8753424cfe6",
      "parents": [
        "565f1fbd9d2f766dcfed5db90b89ef80afe8b49a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Oct 22 16:50:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:20 2008 +0200"
      },
      "message": "KVM: local APIC TPR access reporting facility\n\nAdd a facility to report on accesses to the local apic tpr even if the\nlocal apic is emulated in the kernel.  This is basically a hack that\nallows userspace to patch Windows which tends to bang on the tpr a lot.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ec10f4750db5e810cafef114a592428f8242b640",
      "tree": "940178c10eaf4f9cba65da77537b9c82ed0a739b",
      "parents": [
        "5736199afba8a8bb60a1ea282ab72857d6b16400"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Dec 17 20:27:27 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:19 2008 +0200"
      },
      "message": "KVM: Expose ioapic to ia64 save/restore APIs\n\nIA64 also needs to see ioapic structure in irqchip.\n\nSigned-off-by: xiantao.zhang@intel.com \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "51e296258cba41759ff0de5da110d8d52675ee67",
      "tree": "97675b88559d9bab5674fb2c497be17e0b7d5be9",
      "parents": [
        "d7e5117a2568f7407e98ca85155511ecfe4f0631"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 26 08:33:53 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: Add ifdef in irqchip struct for x86 only structures\n\nThis patch fixes a small issue where sturctures:\n\tkvm_pic_state\n\tkvm_ioapic_state\n\nare defined inside x86 specific code and may or may not\nbe defined in anyway for other architectures. The problem\ncaused is one cannot compile userspace apps (ex. libkvm)\nfor other archs since a size cannot be determined for these\nstructures.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0771671749b59a507b6da4efb931c44d9691e248",
      "tree": "8d73e81194c7522ad9c0754201c5199b79e2bb98",
      "parents": [
        "6d4e4c4fca5be806b888d606894d914847e82d78"
      ],
      "author": {
        "name": "Dan Kenigsberg",
        "email": "danken@qumranet.com",
        "time": "Wed Nov 21 17:10:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:13 2008 +0200"
      },
      "message": "KVM: Enhance guest cpuid management\n\nThe current cpuid management suffers from several problems, which inhibit\npassing through the host feature set to the guest:\n\n - No way to tell which features the host supports\n\n  While some features can be supported with no changes to kvm, others\n  need explicit support.  That means kvm needs to vet the feature set\n  before it is passed to the guest.\n\n - No support for indexed or stateful cpuid entries\n\n  Some cpuid entries depend on ecx as well as on eax, or on internal\n  state in the processor (running cpuid multiple times with the same\n  input returns different output).  The current cpuid machinery only\n  supports keying on eax.\n\n - No support for save/restore/migrate\n\n  The internal state above needs to be exposed to userspace so it can\n  be saved or migrated.\n\nThis patch adds extended cpuid support by means of three new ioctls:\n\n - KVM_GET_SUPPORTED_CPUID: get all cpuid entries the host (and kvm)\n   supports\n\n - KVM_SET_CPUID2: sets the vcpu\u0027s cpuid table\n\n - KVM_GET_CPUID2: gets the vcpu\u0027s cpuid table, including hidden state\n\n[avi: fix original KVM_SET_CPUID not removing nx on non-nx hosts as it did\n      before]\n\nSigned-off-by: Dan Kenigsberg \u003cdanken@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a162dd58736d446f52ca45b170508c3a5868807b",
      "tree": "dce2f29ccde737dba386d14986bfd77a9ec42456",
      "parents": [
        "244d57ece94b56692c61f2d507d1251b5844c550"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:37 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move cpuid structures to \u003casm/kvm.h\u003e\n\nThis patch moves structures:\n\tkvm_cpuid_entry\n\tkvm_cpuid\n\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "244d57ece94b56692c61f2d507d1251b5844c550",
      "tree": "69db4777d504c4af95432a464fd82b3fb2f7f100",
      "parents": [
        "3a56b20104f51bd6caf07e49fa1e3c09bee222e5"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:36 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_sregs and msr structures to \u003casm/kvm.h\u003e\n\nMove structures:\n\tkvm_sregs\n\tkvm_msr_entry\n\tkvm_msrs\n\tkvm_msr_list\n\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3a56b20104f51bd6caf07e49fa1e3c09bee222e5",
      "tree": "b0cb4975142644942361c17196c2470aae9fb4a0",
      "parents": [
        "d9ecf9281069c4c8dd429e1eb61cb7e0f3dda6b4"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:35 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_segment \u0026 kvm_dtable structure to  \u003casm/kvm.h\u003e\n\nThis patch moves structures:\n\tkvm_segment\n\tkvm_dtable\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d9ecf9281069c4c8dd429e1eb61cb7e0f3dda6b4",
      "tree": "c42f56ee70b8ac62288fa5d05cac2966992451e8",
      "parents": [
        "19d30b164417e7580d7f8c495a03137e1a45d4a7"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:34 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move structure lapic_state to \u003casm/kvm.h\u003e\n\nThis patch moves structure lapic_state from include/linux/kvm.h\nto include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "19d30b164417e7580d7f8c495a03137e1a45d4a7",
      "tree": "a6ec84b1298540c9e75ea1a437d7e3060ea57b60",
      "parents": [
        "da1386a5bc43fa0faf17089a68c2991cf1d526c8"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:33 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_regs to \u003casm/kvm.h\u003e\n\nThis patch moves structure kvm_regs to include/asm-x86/kvm.h.\nEach architecture will need to create there own version of this\nstructure.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "da1386a5bc43fa0faf17089a68c2991cf1d526c8",
      "tree": "f8b14c46567ce4dd81bdc513a0bb81422099fe03",
      "parents": [
        "f6a40e3bdf5fe0a7d7d7f2dbc5b10158fbdad968"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:32 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 pic strutctures\n\nThis patch moves structures:\n\tkvm_pic_state\n\tkvm_ioapic_state\n\nto inclue/asm-x86/kvm.h.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f6a40e3bdf5fe0a7d7d7f2dbc5b10158fbdad968",
      "tree": "79dbcdf9cefcfa3757a94bd8f129968e2cc423a0",
      "parents": [
        "7faa8f6fcc119ce680a90a5f011841b466b1e161"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:31 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_memory_alias to asm/kvm.h\n\nThis patch moves sturct kvm_memory_alias from include/linux/kvm.h\nto include/asm-x86/kvm.h. Also have include/linux/kvm.h include\ninclude/asm/kvm.h.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cbc9402297b9a233981f74587786364cda21c771",
      "tree": "35ba97693ffc506bb08f6bafa9e61a260bc8189f",
      "parents": [
        "e0d62c7f48605119a7f9fa632e77561c89928963"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Oct 25 00:29:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: Add ioctl to tss address from userspace,\n\nCurrently kvm has a wart in that it requires three extra pages for use\nas a tss when emulating real mode on Intel.  This patch moves the allocation\ninternally, only requiring userspace to tell us where in the physical address\nspace we can place the tss.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6fc138d2278078990f597cb1f62fde9e5b458f96",
      "tree": "176026316843a4e47b8271f0e84a03f8807ecb64",
      "parents": [
        "d77c26fce93d07802db97498959587eb9347b31d"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 09 19:20:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Support assigning userspace memory to the guest\n\nInstead of having the kernel allocate memory to the guest, let userspace\nallocate it and pass the address to the kernel.\n\nThis is required for s390 support, but also enables features like memory\nsharing and using hugetlbfs backed memory.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "82ce2c96831f049a37118733ced5c8f7c8848102",
      "tree": "609fed010ebbb1ced6f0f24698148e69a72da5fd",
      "parents": [
        "195aefde9cc2cee38dd54ef92a866721fba4413e"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 02 18:52:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Allow dynamic allocation of the mmu shadow cache size\n\nThe user is now able to set how many mmu pages will be allocated to the guest.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a45450d0a559912873428077908f9bc1411042c",
      "tree": "9f643a1c6d58fcdaf9b3555131c4258d860793d2",
      "parents": [
        "0967b7bf1c22b55777aba46ff616547feed0b141"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 10 14:03:16 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:29 2007 +0200"
      },
      "message": "KVM: Replace enum by #define\n\nEasier for existence test (#ifdef) in userspace.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "96ad2cc6132479aa0aea485d0838a13fda765bd5",
      "tree": "dc3596b92981332cee0749004b7076a7d52a90b1",
      "parents": [
        "6bf9e962d14deb9e460afbbfd83ea2f450325c2d"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Thu Sep 06 12:22:56 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: in-kernel LAPIC save and restore support\n\nThis patch adds a new vcpu-based IOCTL to save and restore the local\napic registers for a single vcpu. The kernel only copies the apic page as\na whole, extraction of registers is left to userspace side. On restore, the\nAPIC timer is restarted from the initial count, this introduces a little\ndelay, but works fine.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6bf9e962d14deb9e460afbbfd83ea2f450325c2d",
      "tree": "050b2be2fcded255afbb2512ed9c07adbd3f5b0f",
      "parents": [
        "c52fb35a8b5dada749d35fbe15ac1f9857b22896"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Sun Aug 05 10:49:16 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: in-kernel IOAPIC save and restore support\n\nThis patch adds support for in-kernel ioapic save and restore (to\nand from userspace). It uses the same get/set_irqchip ioctl as\nin-kernel PIC.\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6ceb9d791eeeb0a5493958f5d6d4dc7d91e59cf7",
      "tree": "8cef21acf9346fdbea36075029dc007fe969b51e",
      "parents": [
        "9cf98828d12285d1fb43e774c8c100a55f8f34e1"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Thu Jul 26 11:05:18 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Add get/set irqchip ioctls for in-kernel PIC live migration support\n\nThis patch adds two new ioctls to dump and write kernel irqchips for\nsave/restore and live migration. PIC s/r and l/m is implemented in this\npatch.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b6958ce44a11a9e9425d2b67a653b1ca2a27796f",
      "tree": "503478ef27254df9b6ea21d2a6a279a7dfe2ef04",
      "parents": [
        "1fd4f2a5ed8f80cf6e23d2bdf78554f6a1ac7997"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Jul 18 12:15:21 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Emulate hlt in the kernel\n\nBy sleeping in the kernel when hlt is executed, we simplify the in-kernel\nguest interrupt path considerably.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97222cc8316328965851ed28d23f6b64b4c912d2",
      "tree": "469b2f72e74046a7aec5061df194c3f68812a224",
      "parents": [
        "7017fc3d1a12e30ea7df4992152978a188433457"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Sep 12 10:58:04 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Emulate local APIC in kernel\n\nBecause lightweight exits (exits which don\u0027t involve userspace) are many\ntimes faster than heavyweight exits, it makes sense to emulate high usage\ndevices in the kernel.  The local APIC is one such device, especially for\nWindows and for SMP, so we add an APIC model to kvm.\n\nIt also allows in-kernel host-side drivers to inject interrupts without\ngoing through userspace.\n\n[compile fix on i386 from Jindrich Makovicka]\n\nSigned-off-by: Yaozu (Eddie) Dong \u003cEddie.Dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "85f455f7ddbed403b34b4d54b1eaf0e14126a126",
      "tree": "1dba7aa8fee3c8f756e12049c496dee5baae752c",
      "parents": [
        "152d3f2f246ce3c2a0cf2fc6c2214663cd99aa83"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Fri Jul 06 12:20:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:24 2007 +0200"
      },
      "message": "KVM: Add support for in-kernel PIC emulation\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "253abdee5ec2edd0a7f6dc2358bef42e3fdf1f39",
      "tree": "a9823774dcf3fa7a66c1895b78528d3239eaa71b",
      "parents": [
        "7e66f350cfc853043bfa71b281581dd6f92fa347"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Thu Aug 16 13:01:00 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Communicate cr8 changes to userspace\n\nThis allows running 64-bit Windows.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "519ef35341b4f360f072ea74e398b70a5a2fc270",
      "tree": "aabebcfaea5ed195dfa106863361c6e8c24269f7",
      "parents": [
        "1c3d14fe0ab75337a3f6c06b6bc18bcbc2b3d0bc"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Jul 16 15:24:47 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: add hypercall nr to kvm_run\n\nAdd the hypercall number to kvm_run and initialize it.  This changes the ABI,\nbut as this particular ABI was unusable before this no users are affected.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9eb829ced8c6f2e43a3a644ddf1279ffeee38a33",
      "tree": "ea8360405de41110dd0063a9838447c5a7ab2632",
      "parents": [
        "66aee91aaab8f998d28a61ed7733be17ad8e6d8f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jul 18 13:05:58 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:18 2007 +0200"
      },
      "message": "KVM: Trivial: Use standard BITMAP macros, open-code userspace-exposed header\n\nCreating one\u0027s own BITMAP macro seems suboptimal: if we use manual\narithmetic in the one place exposed to userspace, we can use standard\nmacros elsewhere.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "dea8caee7b6971ae90e9d303b5d98dbf2dafed53",
      "tree": "64a6e284fa5ae8a7699937ef19c8994a5b7b49a1",
      "parents": [
        "65619eb5a88dae3dadbb1050f957ed357aa54a50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 23:12:26 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:17 2007 +0200"
      },
      "message": "KVM: Trivial: /dev/kvm interface is no longer experimental.\n\nKVM interface is no longer experimental.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ],
  "next": "24cbc7e9cb0488095e4e144a762276c85ff55f9b"
}
