)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "24cbc7e9cb0488095e4e144a762276c85ff55f9b",
      "tree": "edcd9287db085d197fd9935a4c29817bbcd6b3f9",
      "parents": [
        "dad3795d2baa4e02cbfd161d9089c73dea16b4ba"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 17 11:45:55 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:17 2007 +0200"
      },
      "message": "KVM: Future-proof the exit information union ABI\n\nNote that as the size of struct kvm_run is not part of the ABI, we can add\nthings at the end.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2ff81f70b56dc1cdd3bf2f08414608069db6ef1a",
      "tree": "e0db2209f7a3a0284240e8245b12c7e72a5760b8",
      "parents": [
        "02c83209726270ddf9597deabc45e08f6fc3942c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 16:25:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Remove unused \u0027instruction_length\u0027\n\nAs we no longer emulate in userspace, this is meaningless.  We don\u0027t\ncompute it on SVM anyway.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "02c83209726270ddf9597deabc45e08f6fc3942c",
      "tree": "570c2d96c1daba96ae2891e63b1e55b3959e9aba",
      "parents": [
        "e7df56e4a00358b6975fae3b70dc9df1282d427a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 15:02:17 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Don\u0027t require explicit indication of completion of mmio or pio\n\nIt is illegal not to return from a pio or mmio request without completing\nit, as mmio or pio is an atomic operation.  Therefore, we can simplify\nthe userspace interface by avoiding the completion indication.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b8836737d92c139be770eae3d6574e33d1224caf",
      "tree": "9c03b429fda12e6fbdc97469eb039076aa397744",
      "parents": [
        "e8207547d2f7b2f557bdb73015c1f74c32474438"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 01 16:34:31 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Add fpu get/set operations\n\nThese are really helpful when migrating an floating point app to another\nmachine.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e8207547d2f7b2f557bdb73015c1f74c32474438",
      "tree": "7e5c15bec5cf9ef45a81227b009e6449f5c6d47c",
      "parents": [
        "954bbbc236afe23b368abdf4942f313a5f6e1d50"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Mar 30 16:54:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Add physical memory aliasing feature\n\nWith this, we can specify that accesses to one physical memory range will\nbe remapped to another.  This is useful for the vga window at 0xa0000 which\nis used as a movable window into the (much larger) framebuffer.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "039576c03c35e2f990ad9bb9c39e1bad3cd60d34",
      "tree": "fa6c81a40a36d2c0da1cf20c5deb45cb9bd7ba95",
      "parents": [
        "f0fe510864a4520a85dfa35ae14f5f376c56efc7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 20 12:46:50 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:25 2007 +0300"
      },
      "message": "KVM: Avoid guest virtual addresses in string pio userspace interface\n\nThe current string pio interface communicates using guest virtual addresses,\nrelying on userspace to translate addresses and to check permissions.  This\ninterface cannot fully support guest smp, as the check needs to take into\naccount two pages at one in case an unaligned string transfer straddles a\npage boundary.\n\nChange the interface not to communicate guest addresses at all; instead use\na buffer page (mmaped by userspace) and do transfers there.  The kernel\nmanages the virtual to physical translation and can perform the checks\natomically by taking the appropriate locks.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "07c45a366d89f8eaec5d9890e810171b408f9a52",
      "tree": "2f54f8c4ba795a1432ee6ac2e8042a472b87550a",
      "parents": [
        "1961d276c877b99f5f16aaf36377c75e0e191c3a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 07 13:05:38 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Allow kernel to select size of mmap() buffer\n\nThis allows us to store offsets in the kernel/user kvm_run area, and be\nsure that userspace has them mapped.  As offsets can be outside the\nkvm_run struct, userspace has no way of knowing how much to mmap.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1961d276c877b99f5f16aaf36377c75e0e191c3a",
      "tree": "4ea92fc2821bd0f9013ee567ee2f11c6cc532d79",
      "parents": [
        "6722c51c51518af9581ab6cd9b6aec93774334a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 05 19:46:05 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add guest mode signal mask\n\nAllow a special signal mask to be used while executing in guest mode.  This\nallows signals to be used to interrupt a vcpu without requiring signal\ndelivery to a userspace handler, which is quite expensive.  Userspace still\nreceives -EINTR and can get the signal via sigwait().\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1b19f3e61d7e1edb395dd64bf7d63621a37af8ca",
      "tree": "52d90cc6e505f84ec741770950f4f07be45b7fba",
      "parents": [
        "8eb7d334bd8e693340ee198280f7d45035cdab8c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 14:24:03 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add a special exit reason when exiting due to an interrupt\n\nThis is redundant, as we also return -EINTR from the ioctl, but it\nallows us to examine the exit_reason field on resume without seeing\nold data.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8eb7d334bd8e693340ee198280f7d45035cdab8c",
      "tree": "438ec0b6b6c7714e436884576a3fdce84507813f",
      "parents": [
        "b4e63f560beb187cffdaf706e534a1e2f9effb66"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 14:17:08 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Fold kvm_run::exit_type into kvm_run::exit_reason\n\nCurrently, userspace is told about the nature of the last exit from the\nguest using two fields, exit_type and exit_reason, where exit_type has\njust two enumerations (and no need for more).  So fold exit_type into\nexit_reason, reducing the complexity of determining what really happened.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b4e63f560beb187cffdaf706e534a1e2f9effb66",
      "tree": "1fe1a640530af04d1d722e0c99c8086b0e13f1e7",
      "parents": [
        "5d308f4550d9dc4c236e08b0377b610b9578577b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 13:59:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Allow userspace to process hypercalls which have no kernel handler\n\nThis is useful for paravirtualized graphics devices, for example.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5d308f4550d9dc4c236e08b0377b610b9578577b",
      "tree": "c19005059de37403db7962bcfa7bac657331b052",
      "parents": [
        "739872c56f3322c38320c7a5a543ef6f56f174bc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 17:56:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add method to check for backwards-compatible API extensions\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "739872c56f3322c38320c7a5a543ef6f56f174bc",
      "tree": "1dbd6e3c541f14e9553fc32a1b1c1d4096a77858",
      "parents": [
        "2a4dac3952468157297b81ae0a29815c02ead179"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 17:20:13 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Renumber ioctls\n\nThe recent changes have left the ioctl numbers in complete disarray.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2a4dac3952468157297b81ae0a29815c02ead179",
      "tree": "d3ee5dcf749061cc588be792b0eeaa06f02e69a1",
      "parents": [
        "106b552b43beac2694df5fbafc8f125a72df5f65"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 16:47:06 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Remove minor wart from KVM_CREATE_VCPU ioctl\n\nThat ioctl does not transfer any data, so it should be an _IO rather than an\n_IOW.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "106b552b43beac2694df5fbafc8f125a72df5f65",
      "tree": "3d26f1f7148eaa4cb6e6d882418db283d9f2d29f",
      "parents": [
        "06465c5a3aa9948a7b00af49cd22ed8f235cdb0f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 16:20:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Remove the \u0027emulated\u0027 field from the userspace interface\n\nWe no longer emulate single instructions in userspace.  Instead, we service\nmmio or pio requests.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "06465c5a3aa9948a7b00af49cd22ed8f235cdb0f",
      "tree": "2a21941ae6f28445abbb3cc80dd3416cf2241b8d",
      "parents": [
        "46fc1477887c41c8e900f2c95485e222b9a54822"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 28 20:46:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Handle cpuid in the kernel instead of punting to userspace\n\nKVM used to handle cpuid by letting userspace decide what values to\nreturn to the guest.  We now handle cpuid completely in the kernel.  We\nstill let userspace decide which values the guest will see by having\nuserspace set up the value table beforehand (this is necessary to allow\nmanagement software to set the cpu features to the least common denominator,\nso that live migration can work).\n\nThe motivation for the change is that kvm kernel code can be impacted by\ncpuid features, for example the x86 emulator.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "46fc1477887c41c8e900f2c95485e222b9a54822",
      "tree": "ef9d4d4b6fc32f3d6b4e77a87d1b47b6da455574",
      "parents": [
        "9a2bb7f486dc639a1cf2ad803bf2227f0dc0809d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Feb 22 19:39:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Do not communicate to userspace through cpu registers during PIO\n\nCurrently when passing the a PIO emulation request to userspace, we\nrely on userspace updating %rax (on \u0027in\u0027 instructions) and %rsi/%rdi/%rcx\n(on string instructions).  This (a) requires two extra ioctls for getting\nand setting the registers and (b) is unfriendly to non-x86 archs, when\nthey get kvm ports.\n\nSo fix by doing the register fixups in the kernel and passing to userspace\nonly an abstract description of the PIO to be done.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9a2bb7f486dc639a1cf2ad803bf2227f0dc0809d",
      "tree": "db323e11ae5a5286a1e344b444162be53bc4d9fc",
      "parents": [
        "1ea252afcd4b264b71d9c3f55358ff5ba4c04f1b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Feb 22 12:58:31 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Use a shared page for kernel/user communication when runing a vcpu\n\nInstead of passing a \u0027struct kvm_run\u0027 back and forth between the kernel and\nuserspace, allocate a page and allow the user to mmap() it.  This reduces\nneedless copying and makes the interface expandable by providing lots of\nfree space.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f7e6a45ad9224dfe9f0d76a45c43be7ccafe0b82",
      "tree": "70a99de2820f90186facd2caf41c14b7e2504e1c",
      "parents": [
        "bccf2150fe62dda5fb09efa2f64d2a234694eb48"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 19:47:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Bump API version\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bccf2150fe62dda5fb09efa2f64d2a234694eb48",
      "tree": "b5e6fc6440b864ddd1c32c4cee1916a0c5484c63",
      "parents": [
        "c5ea76600653b1a242321734435cb1c54778941a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 18:04:26 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Per-vcpu inodes\n\nAllocate a distinct inode for every vcpu in a VM.  This has the following\nbenefits:\n\n - the filp cachelines are no longer bounced when f_count is incremented on\n   every ioctl()\n - the API and internal code are distinctly clearer; for example, on the\n   KVM_GET_REGS ioctl, there is no need to copy the vcpu number from\n   userspace and then copy the registers back; the vcpu identity is derived\n   from the fd used to make the call\n\nRight now the performance benefits are completely theoretical since (a) we\ndon\u0027t support more than one vcpu per VM and (b) virtualization hardware\ninefficiencies completely everwhelm any cacheline bouncing effects.  But\nboth of these will change, and we need to prepare the API today.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ],
  "next": "f17abe9a44425ff9c9858bc1806cc09d6b5dad1c"
}
