)]}'
{
  "log": [
    {
      "commit": "d69fb81f0554fb980e4b1d3db4e44351c2c4a4a2",
      "tree": "c2b6f6081ceb31fba9c37401f0cc81afaa3b6d1f",
      "parents": [
        "77b4c255af34e73ea1efd1c3384bbe91361c81e6"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Dec 14 09:54:20 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:10 2008 +0200"
      },
      "message": "KVM: Portability: Move memslot aliases to new struct kvm_arch\n\nThis patches create kvm_arch to hold arch-specific kvm fileds\nand moves fields naliases and aliases to kvm_arch.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "77b4c255af34e73ea1efd1c3384bbe91361c81e6",
      "tree": "6e8e41d7489540a17853167de32f12fca4f904d7",
      "parents": [
        "d17fbbf7384d3b639f3c3299b5248ec4c4404556"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Dec 14 09:49:26 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:10 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_vcpu_stat to x86.h\n\nThis patches moves kvm_vcpu_stat to x86.h, so every\narch can define its own kvm_vcpu_stat structure.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d17fbbf7384d3b639f3c3299b5248ec4c4404556",
      "tree": "e647268a494a14134c64bf8472541131b26fdfca",
      "parents": [
        "d657a98e3c20537d8b4d44aef51cf4311d96f2b0"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Dec 14 09:45:31 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:09 2008 +0200"
      },
      "message": "KVM: Portability: Expand the KVM_VCPU_COMM in kvm_vcpu structure.\n\nThis patches removes KVM_COMM macro, original it is hold\nkvm_vcpu common fields.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d657a98e3c20537d8b4d44aef51cf4311d96f2b0",
      "tree": "cf1e1e2e3c0d05617ab6baf5c017987708a55d41",
      "parents": [
        "1d737c8a68736db36e0aa502ace9da240704c5ae"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Dec 14 09:41:22 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:09 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_vcpu definition back to kvm.h\n\nThis patches moves kvm_vcpu definition to kvm.h, and finally\nkvm.h includes x86.h.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1d737c8a68736db36e0aa502ace9da240704c5ae",
      "tree": "fb3bd80ccd7d0068563791d1ef0db24f035f71f8",
      "parents": [
        "ad312c7c79f781c822e37effe41307503a2bb85b"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Dec 14 09:35:10 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:09 2008 +0200"
      },
      "message": "KVM: Portability: Split mmu-related static inline functions to mmu.h\n\nSince these functions need to know the details of kvm or kvm_vcpu structure,\nit can\u0027t be put in x86.h.  Create mmu.h to hold them.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ad312c7c79f781c822e37effe41307503a2bb85b",
      "tree": "d979bfb70e76ada58b79b456c61a0507a8f0847d",
      "parents": [
        "682c59a3f3f211ed555b17144f2d82eb8286a1db"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Thu Dec 13 23:50:52 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:58:09 2008 +0200"
      },
      "message": "KVM: Portability: Introduce kvm_vcpu_arch\n\nMove all the architecture-specific fields in kvm_vcpu into a new struct\nkvm_vcpu_arch.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "682c59a3f3f211ed555b17144f2d82eb8286a1db",
      "tree": "939bb2644ec6d556d27e82ecfb0cdf8ec9e7378a",
      "parents": [
        "2bacc55c7c3c61e356aef06b9a319b4cee90b519"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Tue Dec 11 20:36:00 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:22 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm{pic,ioapic} accesors to x86 specific code\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2bacc55c7c3c61e356aef06b9a319b4cee90b519",
      "tree": "8a1860bbcfe62970353b71260887449c334f5477",
      "parents": [
        "62b9abaaf8423a3a38b938831b3b8431a6607ad8"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Wed Dec 12 10:46:12 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:22 2008 +0200"
      },
      "message": "KVM: MMU: emulated cmpxchg8b should be atomic on i386\n\nEmulate cmpxchg8b atomically on i386. This is required to avoid a guest\npte walker from seeing a splitted write.\n\n[avi: make it compile]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62b9abaaf8423a3a38b938831b3b8431a6607ad8",
      "tree": "1518309462bb5d730b09f2d595f47998514fe37c",
      "parents": [
        "722f6ecbcf3e53809236b36e6dfd9042924a2d51"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Dec 11 15:36:57 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:22 2008 +0200"
      },
      "message": "KVM: SVM: support writing 0 to K8 performance counter control registers\n\nThis lets SVM ignore writes of the value 0 to the performance counter control\nregisters.  Thus enabling them will still fail in the guest, but a write of 0\nwhich keeps them disabled is accepted.  This is required to boot Windows\nVista 64bit.\n\n[avi: avoid fall-thru in switch statement]\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "722f6ecbcf3e53809236b36e6dfd9042924a2d51",
      "tree": "a6ae05e5edd99244c88ccab9131f06ab132b96ed",
      "parents": [
        "7819026eefee53eaaac3fdce1a2f157c7ea943fe"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Dec 12 12:37:24 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: LAPIC: minor debugging compile fix\n\nThis patch fixes a compile error of the LAPIC code with APIC debugging enabled.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7819026eefee53eaaac3fdce1a2f157c7ea943fe",
      "tree": "e5ee690406a8ebe381ce5d712f010a5a0c706c4c",
      "parents": [
        "1d075434149c38d457c30d1f11d9c39210b0bb79"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Tue Dec 11 19:12:27 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: MMU: Fix SMP shadow instantiation race\n\nThere is a race where VCPU0 is shadowing a pagetable entry while VCPU1\nis updating it, which results in a stale shadow copy.\n\nFix that by comparing the contents of the cached guest pte with the\ncurrent guest pte after write-protecting the guest pagetable.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1d075434149c38d457c30d1f11d9c39210b0bb79",
      "tree": "bb824281fe4c5b07877adbaa4793b8b4038b37d0",
      "parents": [
        "e833240f3c1b0b415efb14eaa102718769d5f063"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Dec 06 21:02:25 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: SVM: Exit to userspace if write to cr8 and not using in-kernel apic\n\nWith this patch KVM on SVM will exit to userspace if the guest writes to CR8\nand the in-kernel APIC is disabled.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e833240f3c1b0b415efb14eaa102718769d5f063",
      "tree": "a2482ca91665ce0e761131d971bb418c5e8e365c",
      "parents": [
        "bc750ba860d978fcaac1e0db28774b1f38ae8193"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 18:43:00 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: MMU: Use mmu_set_spte() for real-mode shadows\n\nIn addition to removing some duplicated code, this also handles the unlikely\ncase of real-mode code updating a guest page table.  This can happen when\none vcpu (in real mode) touches a second vcpu\u0027s (in protected mode) page\ntables, or if a vcpu switches to real mode, touches page tables, and switches\nback.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bc750ba860d978fcaac1e0db28774b1f38ae8193",
      "tree": "e359e63b65e1798e4876e04cd52d0ce95f7f893f",
      "parents": [
        "1c4f1fd6d5692614e8dc75ee53f7be590f1e878b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 18:39:41 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1c4f1fd6d5692614e8dc75ee53f7be590f1e878b",
      "tree": "8b3c8f468923537dbd87c39995661e704c4f2b80",
      "parents": [
        "2fbf4cf13f777e1f61ee692fe67d16bddd747700"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 17:40:31 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: MMU: Move set_pte() into guest paging mode independent code\n\nAs set_pte() no longer references either a gpte or the guest walker, we can\nmove it out of paging mode dependent code (which compiles twice and is\ngenerally nasty).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2fbf4cf13f777e1f61ee692fe67d16bddd747700",
      "tree": "34f724ed2a3d77f18e503c055931f072cf47917d",
      "parents": [
        "e3f955042219a595b1c3208e12c20860f23f72fb"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 17:33:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:21 2008 +0200"
      },
      "message": "KVM: MMU: Remove walker argument to set_pte()\n\nUnused.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e3f955042219a595b1c3208e12c20860f23f72fb",
      "tree": "f6ff71fa2026625bc0223ecb04ffaff67cb91008",
      "parents": [
        "b4ab019ce71efe30790b5aaa396549a16bb20608"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 17:32:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: Pass pte dirty flag to set_pte() instead of calculating it on-site\n\nThis allows us to remove its dependency on pt_element_t.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b4ab019ce71efe30790b5aaa396549a16bb20608",
      "tree": "f502e79d39cce0af0514d6f03fe09aa2d9ceed43",
      "parents": [
        "41074d07c78b086b18fc2af590caef05dbcca568"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 17:27:52 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: No need to pick up nx bit from guest pte\n\nWe already set it according to cumulative access permissions.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "41074d07c78b086b18fc2af590caef05dbcca568",
      "tree": "1e07a3d17d718d61bbb45e427c7e7980f2b7ad2e",
      "parents": [
        "bedbe4ee86195dcd899577828714cc1413beb571"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 17:00:02 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: Fix inherited permissions for emulated guest pte updates\n\nWhen we emulate a guest pte write, we fail to apply the correct inherited\npermissions from the parent ptes.  Now that we store inherited permissions\nin the shadow page, we can use that to update the pte permissions correctly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bedbe4ee86195dcd899577828714cc1413beb571",
      "tree": "3dfd5ae82837d4dacdabd8efd8a498cb5c4bcb9b",
      "parents": [
        "8d87a03aea43535a92efbb180e0ceac94d4bb5db"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 16:52:56 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: Move pte access calculation into a helper function\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8d87a03aea43535a92efbb180e0ceac94d4bb5db",
      "tree": "109fc349fbf4010155eab1393fa71c3a7029a110",
      "parents": [
        "fe135d2ceb3d7dc08151b3cbad96565d02cc8676"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 16:37:36 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: Set nx bit correctly on shadow ptes\n\nWhile the page table walker correctly generates a guest page fault\nif a guest tries to execute a non-executable page, the shadow code does\nnot mark it non-executable.  This means that if a guest accesses an nx\npage first with a read access, then subsequent code fetch accesses will\nsucceed.\n\nFix by setting the nx bit on shadow ptes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fe135d2ceb3d7dc08151b3cbad96565d02cc8676",
      "tree": "7dec07ec0a32a53f003551802cb73c4ce3373527",
      "parents": [
        "b3e4e63fd9ee8cd5d9047b89e0d463d5c48ee5b5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 09 16:15:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:20 2008 +0200"
      },
      "message": "KVM: MMU: Simplify calculation of pte access\n\nThe nx bit is awkwardly placed in the 63rd bit position; furthermore it\nhas a reversed meaning compared to the other bits, which means we can\u0027t use\na bitwise and to calculate compounded access masks.\n\nSo, we simplify things by creating a new 3-bit exec/write/user access word,\nand doing all calculations in that.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b3e4e63fd9ee8cd5d9047b89e0d463d5c48ee5b5",
      "tree": "a7e1cd372a26b36d9fc4d6a7a12523e07f7a9f5e",
      "parents": [
        "80a8119ca3f021037b8513d39dbb0ffd1af86b20"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Fri Dec 07 07:56:58 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: MMU: Use cmpxchg for pte updates on walk_addr()\n\nIn preparation for multi-threaded guest pte walking, use cmpxchg()\nwhen updating guest pte\u0027s. This guarantees that the assignment of the\ndirty bit can\u0027t be lost if two CPU\u0027s are faulting the same address\nsimultaneously.\n\n[avi: fix kunmap_atomic() parameters]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "80a8119ca3f021037b8513d39dbb0ffd1af86b20",
      "tree": "38928e7b3fbd21ad4508bce11fb35899babf7774",
      "parents": [
        "6e3d5dfbad4d8c29bdf8ed160f91f955f0efc12b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Dec 06 19:50:00 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: SVM: Trap access to the cr8 register\n\nLater we may be able to use the virtual tpr feature, but for now,\njust trap it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6e3d5dfbad4d8c29bdf8ed160f91f955f0efc12b",
      "tree": "914da0fb65504385c1e9e93728517585cea1f780",
      "parents": [
        "152ff9be2ed11e76ed3014b94eacdd6bc9275518"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Dec 06 18:14:14 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: x86 emulator: Fix stack instructions on 64-bit mode\n\nStack instructions are always 64-bit on 64-bit mode; many of the\nemulated stack instructions did not take that into account.  Fix by\nadding a \u0027Stack\u0027 bitflag and setting the operand size appropriately\nduring the decode stage (except for \u0027push r/m\u0027, which is in a group\nwith a few other instructions, so it gets its own treatment).\n\nThis fixes random crashes on Vista x64.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "152ff9be2ed11e76ed3014b94eacdd6bc9275518",
      "tree": "9c5c561bddb17e3195ee51b559184bd6fa636884",
      "parents": [
        "e5314067f6a77688a3d36548e7618430ce4a6236"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "jroedel@lemmy.amd.com",
        "time": "Thu Dec 06 15:46:52 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: SVM: Emulate read/write access to cr8\n\nThis patch adds code to emulate the access to the cr8 register to the x86\ninstruction emulator in kvm.  This is needed on svm, where there is no\nhardware decode for control register access.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e5314067f6a77688a3d36548e7618430ce4a6236",
      "tree": "a03623c7ae33403d7e4de0deeb581367bef67ae3",
      "parents": [
        "e934c9c1c8742872a53efb84966d9c1d7b8c8e24"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Dec 06 16:32:45 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: VMX: Avoid exit when setting cr8 if the local apic is in the kernel\n\nWith apic in userspace, we must exit to userspace after a cr8 write in order\nto update the tpr.  But if the apic is in the kernel, the exit is unnecessary.\n\nNoticed by Joerg Roedel.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e934c9c1c8742872a53efb84966d9c1d7b8c8e24",
      "tree": "37292af0e1f065b74e9eaf016653df798bb136b0",
      "parents": [
        "7ee5d940f5064a7a4f0e53a8ffe755bc26a8b0f1"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Dec 06 16:15:02 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:19 2008 +0200"
      },
      "message": "KVM: x86 emulator: fix eflags preparation for emulation\n\nWe prepare eflags for the emulated instruction, then clobber it with an \u0027andl\u0027.\nFix by popping eflags as the last thing in the sequence.\n\nPatch taken from Xen (16143:959b4b92b6bf)\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7ee5d940f5064a7a4f0e53a8ffe755bc26a8b0f1",
      "tree": "d14454d9254e90f77c5e7dc55b4adc21ae593e2f",
      "parents": [
        "c1a5d4f990ce034bcb19aebbb910c07019e60f6b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 25 15:22:50 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: Use generalized exception queue for injecting #UD\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c1a5d4f990ce034bcb19aebbb910c07019e60f6b",
      "tree": "23aeb993f99c0b9523486c0dcbedb61247352a45",
      "parents": [
        "c3c91fee5195ba5176a6da5ddc2a2822243eb79f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 25 14:12:03 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: Replace #GP injection by the generalized exception queue\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c3c91fee5195ba5176a6da5ddc2a2822243eb79f",
      "tree": "1fcccd77e5705d5f885bbb24ecb08bd93cf71c63",
      "parents": [
        "298101da2f507c13eaf179ee4507a7c0fe3e7b06"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 25 14:04:58 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: Replace page fault injection by the generalized exception queue\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "298101da2f507c13eaf179ee4507a7c0fe3e7b06",
      "tree": "2c0808964e5bc04812f0379b945fb187aaf901eb",
      "parents": [
        "4bf8ed8dd2781a5e7603a83f8ee1d4f5aa04ebc4"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 25 13:41:11 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: Generalize exception injection mechanism\n\nInstead of each subarch doing its own thing, add an API for queuing an\ninjection, and manage failed exception injection centerally (i.e., if\nan inject failed due to a shadow page fault, we need to requeue it).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4bf8ed8dd2781a5e7603a83f8ee1d4f5aa04ebc4",
      "tree": "f3bb9e9268c8349e322d1d8943c50ebf7b6782f9",
      "parents": [
        "e4a533a416936753882060bf743222576713fde8"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Tue Dec 04 13:42:16 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: MMU: Remove unused prev_shadow_ent variable from fetch()\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4a533a416936753882060bf743222576713fde8",
      "tree": "40c9a571ac54c77d52d0cb4ee6cfb95f13f1f418",
      "parents": [
        "53e0aa7b65ec0d66e34e4d356a641c725cc2e519"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 05 18:15:52 2007 +1100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:18 2008 +0200"
      },
      "message": "KVM: Convert KVM from -\u003enopage() to -\u003efault()\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: kvm-devel@lists.sourceforge.net\nCc: avi@qumranet.com\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "53e0aa7b65ec0d66e34e4d356a641c725cc2e519",
      "tree": "3964471dba10c506407370aefacdfce2cab3086f",
      "parents": [
        "e01a1b570f66ad318239517adbcc2cbe368d0a46"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Dec 03 16:15:26 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Portability: Create kvm_arch_vcpu_runnable() function\n\nThis abstracts the detail of x86 hlt and INIT modes into a function.\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e01a1b570f66ad318239517adbcc2cbe368d0a46",
      "tree": "2400a276ef5db5087319a9ab92b3917243071db0",
      "parents": [
        "e2174021cfa535dbcaef02dc6f2897019c30731d"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Dec 03 15:30:25 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Portability: Stop including x86-specific headers in kvm_main.c\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e2174021cfa535dbcaef02dc6f2897019c30731d",
      "tree": "8f3713033be0b0d3c7c398e0e343c271d2d6b8dc",
      "parents": [
        "d77a39d982431ef9efc7e7a1690cee2ce252b95e"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Dec 03 15:30:24 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Portability: Move IO device definitions to its own header file\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d77a39d982431ef9efc7e7a1690cee2ce252b95e",
      "tree": "ddef3adf23b7e6e794215177016e1b063e575be4",
      "parents": [
        "b1fd3d30ba46360fc94d40ee8dc1f7a4338b19be"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Dec 03 15:30:23 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Portability: Move address types to their own header file\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b1fd3d30ba46360fc94d40ee8dc1f7a4338b19be",
      "tree": "f4da83ade6adf2ef27e6ed903afc2667ee22b375",
      "parents": [
        "0c7ac28d3dd27d718493aae4bbc7de89a2d9d386"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sun Dec 02 22:53:07 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Extend ioapic code to support iosapic\n\niosapic supports an additional mmio EOI register compared to ioapic.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0c7ac28d3dd27d718493aae4bbc7de89a2d9d386",
      "tree": "976c243aa5f4325c9087f3e2f88d81d8b0e48983",
      "parents": [
        "8be5453f95933340a42c6e7fc7b66f3bb786fddd"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sun Dec 02 22:49:09 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Replace dest_Lowest_Prio and dest_Fixed with self-defined macros\n\nChange\n  dest_Loest_Prio -\u003e IOAPIC_LOWEST_PRIORITY\n  dest_Fixed -\u003e IOAPIC_FIXED\n\nthe original names are x86 specific, while the ioapic code will be reused\nfor ia64.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8be5453f95933340a42c6e7fc7b66f3bb786fddd",
      "tree": "7c17e5413f4085d1dd344c72ffad88b728ffadcd",
      "parents": [
        "2b5203ee6828e9cabab1e1fb42e53d72ab9351a6"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sun Dec 02 22:35:57 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:17 2008 +0200"
      },
      "message": "KVM: Replace kvm_lapic with kvm_vcpu in ioapic/lapic interface\n\nThis patch replaces lapic structure with kvm_vcpu in ioapic.c, making ioapic\nindependent of the local apic, as required by ia64.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2b5203ee6828e9cabab1e1fb42e53d72ab9351a6",
      "tree": "cc69fb09ba9f57eff97680a0bd504c3ad7d1b62d",
      "parents": [
        "fb56dbb31c4738a3918db81fd24da732ce3b4ae6"
      ],
      "author": {
        "name": "Carlo Marcelo Arenas Belon",
        "email": "carenas@sajinet.com.pe",
        "time": "Sat Dec 01 06:17:11 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: SVM: Remove KVM specific defines for MSR_EFER\n\nThis patch removes the KVM specific defines for MSR_EFER that were being used\nin the svm support file and migrates all references to use instead the ones\nfrom the kernel headers that are used everywhere else and that have the same\nvalues.\n\nSigned-off-by: Carlo Marcelo Arenas Belon \u003ccarenas@sajinet.com.pe\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fb56dbb31c4738a3918db81fd24da732ce3b4ae6",
      "tree": "b201bcc1dda7729045e9cf2e9ef9d281eb66d92c",
      "parents": [
        "d23087847184a7417fc69bdfaa8a32834b447bef"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 02 10:50:06 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM\n\nCurrently, make headers_check barfs due to \u003casm/kvm.h\u003e, which \u003clinux/kvm.h\u003e\nincludes, not existing.  Rather than add a zillion \u003casm/kvm.h\u003es, export kvm.h\nonly if the arch actually supports it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d23087847184a7417fc69bdfaa8a32834b447bef",
      "tree": "84b436ab14ecf4d62107a030c2a0f7d5dc881c44",
      "parents": [
        "f77bc6a420eba845605ff1d53cadf55f94c5e8b7"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Thu Nov 29 15:35:39 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: Correct kvm_init() error paths not freeing bad_pge.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f77bc6a420eba845605ff1d53cadf55f94c5e8b7",
      "tree": "1b393e18aeaeb5c728ec2fd2aa71e6d85139ad26",
      "parents": [
        "018a98db74d4cc8967cfc570197b14bcbdddb579"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 21 04:36:41 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: Portability: Move KVM_INTERRUPT vcpu ioctl to x86.c\n\nOther archs doesn\u0027t need it.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "018a98db74d4cc8967cfc570197b14bcbdddb579",
      "tree": "eea371dd8c2c3060120501572da651c7bfc63f93",
      "parents": [
        "111de5d60c589bca02b49dce076ca588618e0d1c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 27 19:30:56 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: x86 emulator: unify four switch statements into two\n\nUnify the special instruction switch with the regular instruction switch,\nand the two byte special instruction switch with the regular two byte\ninstruction switch.  That makes it much easier to find an instruction or\nthe place an instruction needs to be added in.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "111de5d60c589bca02b49dce076ca588618e0d1c",
      "tree": "834d68c45a5bffa628d3060371e39e83ce4c1ac7",
      "parents": [
        "b9fa9d6bc6ac617170c4cf21ca764eb187618c0d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 27 19:14:21 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:16 2008 +0200"
      },
      "message": "KVM: x86 emulator: unify two switches\n\nThe rep prefix cleanup left two switch () statements next to each other.\nUnify them.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b9fa9d6bc6ac617170c4cf21ca764eb187618c0d",
      "tree": "291927725c16a16f743f75e84b742f61d8378b07",
      "parents": [
        "51e296258cba41759ff0de5da110d8d52675ee67"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 27 19:05:37 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: x86 emulator: Move rep processing before instruction execution\n\nCurrently rep processing is handled somewhere in the middle of instruction\nprocessing.  Move it to a sensible place.\n\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": "d7e5117a2568f7407e98ca85155511ecfe4f0631",
      "tree": "7f9bcd5b42d4ef8f40b396ac3c979399a41dcfab",
      "parents": [
        "e8d8d7fe8877c594c08f40cc7c013626cfe3e9cc"
      ],
      "author": {
        "name": "Guillaume Thouvenin",
        "email": "guillaume.thouvenin@ext.bull.net",
        "time": "Mon Nov 26 13:49:09 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: x86 emulator: cmps instruction\n\nAdd emulation for the cmps instruction.  This lets OpenBSD boot on kvm.\n\nSigned-off-by: Guillaume Thouvenin \u003cguillaume.thouvenin@ext.bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e8d8d7fe8877c594c08f40cc7c013626cfe3e9cc",
      "tree": "8b5e093454cf3d4dd1f58deacf35dc65f4c7f835",
      "parents": [
        "448353caeab1d9180f12194a80790859ddbeebd5"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Fri Nov 16 16:29:15 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: x86 emulator: Rename \u0027cr2\u0027 to \u0027memop\u0027\n\nPrevious patches have removed the dependency on cr2; we can now stop passing\nit to the emulator and rename uses to \u0027memop\u0027.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "448353caeab1d9180f12194a80790859ddbeebd5",
      "tree": "a2abe706462d493588bfc660b6610a0f23a25a49",
      "parents": [
        "eb9774f0d675922d780f23cbb747f474b0573dea"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Nov 26 14:08:14 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: MMU: mark pages that were inserted to the shadow pages table as accessed\n\nMark guest pages as accessed when removed from the shadow page tables for\nbetter lru processing.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "eb9774f0d675922d780f23cbb747f474b0573dea",
      "tree": "b5fcf90d5a4b9a87f6e1fb8ff0c79dee479d7f08",
      "parents": [
        "f21b8bf4cc4091b23669987124fd13f758abf6d6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 25 17:45:31 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: Remove misleading check for mmio during event injection\n\nmmio was already handled in kvm_arch_vcpu_ioctl_run(), so no need to check\nagain.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f21b8bf4cc4091b23669987124fd13f758abf6d6",
      "tree": "a15405e027bc520727c9aa86e607a629b98924ac",
      "parents": [
        "90e0a28f6b7241c7793f2ebd540c349580170446"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 22 14:16:12 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:14 2008 +0200"
      },
      "message": "KVM: x86 emulator: address size and operand size overrides are sticky\n\nCurrent implementation is to toggle, which is incorrect.  Patch ported from\ncorresponding Xen code.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "90e0a28f6b7241c7793f2ebd540c349580170446",
      "tree": "e0e92ea3bd13298ac99529e54d1be98d306eb8f0",
      "parents": [
        "e9f85cde99fa011db256f6683ba81d155e0d3f57"
      ],
      "author": {
        "name": "Guillaume Thouvenin",
        "email": "guillaume.thouvenin@ext.bull.net",
        "time": "Thu Nov 22 11:32:09 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:14 2008 +0200"
      },
      "message": "KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2\n\ncmps and scas instructions accept repeat prefixes F3 and F2. So in\norder to emulate those prefixed instructions we need to be able to know\nif prefixes are REP/REPE/REPZ or REPNE/REPNZ. Currently kvm doesn\u0027t make\nthis distinction. This patch introduces this distinction.\n\nSigned-off-by: Guillaume Thouvenin \u003cguillaume.thouvenin@ext.bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e9f85cde99fa011db256f6683ba81d155e0d3f57",
      "tree": "778409f784f030687166c660c2dd9425d032ec1f",
      "parents": [
        "83ff3b9d4a0ade8f8eb9757fd4b36c501ba161e4"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Thu Nov 22 11:20:33 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:14 2008 +0200"
      },
      "message": "KVM: Portability: Move unalias_gfn to arch dependent file\n\nNon-x86 archs don\u0027t need this mechanism. Move it to arch, and\nkeep its interface in common.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "83ff3b9d4a0ade8f8eb9757fd4b36c501ba161e4",
      "tree": "0d264664f9d9f1acb202e3537347a7520284f406",
      "parents": [
        "0771671749b59a507b6da4efb931c44d9691e248"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Wed Nov 21 14:33:25 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:14 2008 +0200"
      },
      "message": "KVM: VMX: Remove the secondary execute control dependency on irqchip\n\nThe state of SECONDARY_VM_EXEC_CONTROL shouldn\u0027t depend on in-kernel IRQ chip,\nthis patch fix this.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.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": "6d4e4c4fca5be806b888d606894d914847e82d78",
      "tree": "dc383e27d812f617d791f48ba1527d70c86b65ba",
      "parents": [
        "76c35c6e99cb46b936b88cc795c9c886e7fe7bd4"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 16:41:05 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:13 2008 +0200"
      },
      "message": "KVM: Disallow fork() and similar games when using a VM\n\nWe don\u0027t want the meaning of guest userspace changing under our feet.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "76c35c6e99cb46b936b88cc795c9c886e7fe7bd4",
      "tree": "50b115f7cf35ee1d450ac09548ae456f2f66d3f5",
      "parents": [
        "4db3531487bdde4027b701da7c1b8d094ae2cc91"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 15:32:41 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:12 2008 +0200"
      },
      "message": "KVM: MMU: Rename \u0027release_page\u0027\n\nRename the awkwardly named variable.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4db3531487bdde4027b701da7c1b8d094ae2cc91",
      "tree": "b4901a0290549bdf6c43ec87ca6e006936333b2f",
      "parents": [
        "1d28f5f4a4984be4cd7200ed512c94517c13e392"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 15:28:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:12 2008 +0200"
      },
      "message": "KVM: MMU: Rename variables of type \u0027struct kvm_mmu_page *\u0027\n\nThese are traditionally named \u0027page\u0027, but even more traditionally, that name\nis reserved for variables that point to a \u0027struct page\u0027.  Rename them to \u0027sp\u0027\n(for \"shadow page\").\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1d28f5f4a4984be4cd7200ed512c94517c13e392",
      "tree": "1ed90eca9769f1d5e076a538d8d3a5818dc3af8d",
      "parents": [
        "0d81f2966a61953c4cc7397342f5f907b3a6e257"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 15:01:44 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:12 2008 +0200"
      },
      "message": "KVM: Remove gpa_to_hpa()\n\nConverting last uses along the way.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0d81f2966a61953c4cc7397342f5f907b3a6e257",
      "tree": "afee0fa810fa862c3fa8f9ee765c959b6931dffc",
      "parents": [
        "3f3e7124f66df2d36751b0c97eabe38a13752fff"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:57:44 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Remove gva_to_hpa()\n\nNo longer used.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3f3e7124f66df2d36751b0c97eabe38a13752fff",
      "tree": "6ce4957583da71e60a8bf98b5b394544170c7f41",
      "parents": [
        "1755fbcc6666906cada43c1c839ca1fc6616d4a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:54:16 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Simplify nonpaging_map()\n\nInstead of passing an hpa, pass a regular struct page.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1755fbcc6666906cada43c1c839ca1fc6616d4a6",
      "tree": "2f878da8de7c7e9043337d7ee028116b0c397829",
      "parents": [
        "38c335f1f57bd9edc3cd894e8f5f3fc133320ad3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:44:45 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Introduce gfn_to_gpa()\n\nConverting a frame number to an address is tricky since the data type changes\nsize.  Introduce a function to do it.  This fixes an actual bug when\naccessing guest ptes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "38c335f1f57bd9edc3cd894e8f5f3fc133320ad3",
      "tree": "583a41cb7c639dcf6286deddd2ff55ef50bfd09e",
      "parents": [
        "230c9a8f2354dc51f55bf81147f408d8fc2f3dd1"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:20:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Adjust page_header_update_slot() to accept a gfn instead of a gpa\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "230c9a8f2354dc51f55bf81147f408d8fc2f3dd1",
      "tree": "3a0d2a1129a7cf5fb71553d64a25b2faba03dd6e",
      "parents": [
        "050e64992f90abee4e1e77b57fe7abf1ba22d330"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:16:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Merge set_pte() and set_pte_common()\n\nSince set_pte() is now the only caller of set_pte_common(), merge the two\nfunctions.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "050e64992f90abee4e1e77b57fe7abf1ba22d330",
      "tree": "a9985890e130c9f7567446dc4ebbdca1eb86bb8e",
      "parents": [
        "4e542370c7570bdb582ab8c751ab899ff9e4214a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:11:49 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Remove set_pde()\n\nIt is now identical to set_pte().\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4e542370c7570bdb582ab8c751ab899ff9e4214a",
      "tree": "7fdb7ad0076d21a3833f67ef4cc37bce98e40153",
      "parents": [
        "da928521b7a095e85f6ac92a6c106bca7e17625f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 14:08:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:11 2008 +0200"
      },
      "message": "KVM: MMU: Remove extra gaddr parameter from set_pte_common()\n\nSimilar information is available in the gfn parameter, so use that.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "da928521b7a095e85f6ac92a6c106bca7e17625f",
      "tree": "4c8fc2b3f056cd1bd7d335958bf384ebc62d8614",
      "parents": [
        "5fb07ddb183eb4728f240e09c3305d271ce61d48"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 13:54:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: MMU: Move pse36 handling to the guest walker\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5fb07ddb183eb4728f240e09c3305d271ce61d48",
      "tree": "2f05586ff39ceaa050c76b0b151e3fbe864d11a6",
      "parents": [
        "b238f7bc2dd5e0e8ecbd28863d6d03e490c652ce"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 12:35:07 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: MMU: Introduce and use gpte_to_gfn()\n\nInstead of repretitively open-coding this.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b238f7bc2dd5e0e8ecbd28863d6d03e490c652ce",
      "tree": "3023d72504412f6e82243af736ccbed695e8a2fb",
      "parents": [
        "d835dfecd00fd770288dcd9a46c0e0966d526fdf"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Nov 20 12:02:12 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: MMU: Code cleanup\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d835dfecd00fd770288dcd9a46c0e0966d526fdf",
      "tree": "9e80c69f9024e45b39cf0d1eeda56ba4a57567a6",
      "parents": [
        "79539cec0c3c38d35a1e3e5310d2c562ae6e82b8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 02:57:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: Don\u0027t bother the mmu if cr3 load doesn\u0027t change cr3\n\nIf the guest requests just a tlb flush, don\u0027t take the vm lock and\ndrop the mmu context pointlessly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "79539cec0c3c38d35a1e3e5310d2c562ae6e82b8",
      "tree": "7bcb93c2a3a26a1541a77f108915e43479dc3ebd",
      "parents": [
        "0f74a24c59b814c1c8085251cbea48d339f0c7c6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Nov 21 02:06:21 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: MMU: Avoid unnecessary remote tlb flushes when guest updates a pte\n\nIf all we\u0027re doing is increasing permissions on a pte (typical for demand\npaging), then there\u0027s not need to flush remote tlbs.  Worst case they\u0027ll\nget a spurious page fault.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0f74a24c59b814c1c8085251cbea48d339f0c7c6",
      "tree": "1102e9835f247b7c9d05887f36e2f8fa3b20681a",
      "parents": [
        "e5a4c8cad952d6e060991841f3632578ab3ae133"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 23:01:14 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:10 2008 +0200"
      },
      "message": "KVM: Add statistic for remote tlb flushes\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e5a4c8cad952d6e060991841f3632578ab3ae133",
      "tree": "85f98599534c78cf95f090471ceaaacd29ab2a34",
      "parents": [
        "26e5215fdc6cf7b5a8b1269134095abbb7338b3c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 21:39:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: MMU: Implement guest page fault bypass for nonpae\n\nI spent an hour worrying why I see so many guest page faults on FC6 i386.\nTurns out bypass wasn\u0027t implemented for nonpae.  Implement it so it doesn\u0027t\nhappen again.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "26e5215fdc6cf7b5a8b1269134095abbb7338b3c",
      "tree": "d5a326a910996549827a11beb3af1c60f1f1cf3c",
      "parents": [
        "0de10343b3ca7aa34dd606145748f73ed19f627e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 15:30:24 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: Split vcpu creation to avoid vcpu_load() before preemption setup\n\nSplit kvm_arch_vcpu_create() into kvm_arch_vcpu_create() and\nkvm_arch_vcpu_setup(), enabling preemption notification between the two.\nThis mean that we can now do vcpu_load() within kvm_arch_vcpu_setup().\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0de10343b3ca7aa34dd606145748f73ed19f627e",
      "tree": "c15dd64e027ce58784ec8296bd7687591d08997e",
      "parents": [
        "3ad82a7e874c5d6c4045090cc01d7794dd9eb21c"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Tue Nov 20 16:25:04 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: Portability:  Split kvm_set_memory_region() to have an arch callout\n\nMoving !user_alloc case to kvm_arch to avoid unnecessary\ncode logic in non-x86 platform.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3ad82a7e874c5d6c4045090cc01d7794dd9eb21c",
      "tree": "94aabdff667daa7de80b61dd7d0233af21a54fa4",
      "parents": [
        "6226686954c4cce3d63ffe1777e60360fcbf0b83"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Tue Nov 20 13:11:38 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: Recalculate mmu pages needed for every memory region change\n\nInstead of incrementally changing the mmu cache size for every memory slot\noperation, recalculate it from scratch.  This is simpler and safer.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6226686954c4cce3d63ffe1777e60360fcbf0b83",
      "tree": "900614019cbc1c1cf4039d81bfa198624c7316cd",
      "parents": [
        "93a0039c8d93074d5f92dfb69f6a7d453905d002"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 13:15:52 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: x86 emulator: prefetch up to 15 bytes of the instruction executed\n\nInstead of fetching one byte at a time, prefetch 15 bytes (or until the next\npage boundary) to avoid guest page table walks.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "93a0039c8d93074d5f92dfb69f6a7d453905d002",
      "tree": "23a693083f2bfcf85e161f64a2500bb7b13ad014",
      "parents": [
        "b4231d61807cac8d9d257eb6979c1685fa9a171f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 12:49:31 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: x86 emulator: retire -\u003ewrite_std()\n\nTheoretically used to acccess memory known to be ordinary RAM, it was\nnever implemented.  It is questionable whether it is possible to implement\nit correctly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b4231d61807cac8d9d257eb6979c1685fa9a171f",
      "tree": "36b2064c0df4a2b2e11c5d9a2221c097bb0c7be9",
      "parents": [
        "2065b3727ecdb64450597d70f7e13af00b85dbd8"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@localhost.localdomain",
        "time": "Tue Nov 20 11:49:33 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:09 2008 +0200"
      },
      "message": "KVM: MMU: Selectively set PageDirty when releasing guest memory\n\nImprove dirty bit setting for pages that kvm release, until now every page\nthat we released we marked dirty, from now only pages that have potential\nto get dirty we mark dirty.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2065b3727ecdb64450597d70f7e13af00b85dbd8",
      "tree": "cbfcc78359c7738ee748569bbc6eec39f17a8784",
      "parents": [
        "2d2a7b9cff7f6324e69daa3ab76799641a94a0e8"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Nov 20 11:30:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: MMU: Fix potential memory leak with smp real-mode\n\nWhen we map a page, we check whether some other vcpu mapped it for us and if\nso, bail out.  But we should decrease the refcount on the page as we do so.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2d2a7b9cff7f6324e69daa3ab76799641a94a0e8",
      "tree": "6547e9c10b4c1da754f8365d302a962507852cd1",
      "parents": [
        "a162dd58736d446f52ca45b170508c3a5868807b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Nov 20 11:45:14 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Export include/asm-x86/kvm.h\n\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": "7faa8f6fcc119ce680a90a5f011841b466b1e161",
      "tree": "b153253a229f1adfa181fde7e9f41b7917a40c46",
      "parents": [
        "d40ccc6246ed19ca529043998942a6b450c0e498"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Nov 19 14:04:44 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Move misplaced comment\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d40ccc6246ed19ca529043998942a6b450c0e498",
      "tree": "40607ad0ebfacf3d6cf32fef44c15bc7cc77e05a",
      "parents": [
        "00fc9f5ae5988fb180f5a288451a741b35cc806e"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Nov 19 14:04:43 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Correct consistent typo: \"destory\" -\u003e \"destroy\"\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "00fc9f5ae5988fb180f5a288451a741b35cc806e",
      "tree": "89c7c9c183b0bb45d7cfc75f0c473d65eaaef455",
      "parents": [
        "971535ff65da2e967a1105a3b2fa3693fc83ca8f"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Nov 19 14:04:45 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Remove unused \"rmap_overflow\" variable\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "971535ff65da2e967a1105a3b2fa3693fc83ca8f",
      "tree": "89bc4d9bac2873341dacc4957e642709326a69d5",
      "parents": [
        "3e021bf5053bc45448e43cf1d7d020ddf1409714"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Nov 19 18:44:15 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: MMU: Remove unused variable\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3e021bf5053bc45448e43cf1d7d020ddf1409714",
      "tree": "77068aa73bcb6db4af655fce0a48b9c375c2d758",
      "parents": [
        "ec8d4eaefc06636eb8fc83610c6605168796b4f7"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Nov 19 11:16:57 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: Simplify kvm_clear_guest_page()\n\nUse kvm_write_guest_page() with empty_zero_page, instead of doing\nkmap and memset.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ec8d4eaefc06636eb8fc83610c6605168796b4f7",
      "tree": "c0d1accbe8ef30852789b69d4a749ca973ee5e73",
      "parents": [
        "15b00f32d53f31fe194b17ca0384a37756b55be2"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Nov 19 11:28:19 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: MMU: Change guest pte access to kvm_{read,write}_guest()\n\nThings are simpler and more regular this way.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "15b00f32d53f31fe194b17ca0384a37756b55be2",
      "tree": "2555b34389c6a4a3c24569201b6504794b566d5d",
      "parents": [
        "54f1585a8d0131bc3993902d4441f4049daed0d5"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Nov 19 10:21:45 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: VMX: Force seg.base \u003d\u003d (seg.sel \u003c\u003c 4) in real  mode\n\nEnsure that segment.base \u003d\u003d segment.selector \u003c\u003c 4 when entering the real\nmode on Intel so that the CPU will not bark at us.  This fixes some old\nprotected mode demo from http://www.x86.org/articles/pmbasics/tspec_a1_doc.htm.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "54f1585a8d0131bc3993902d4441f4049daed0d5",
      "tree": "eb00bedf26723c4fd583a115106c1a0d35f8a0f1",
      "parents": [
        "ec6d273deb56b1607e2acaad3df4bca42f135cd7"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Nov 19 15:24:28 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: Portability: Move some function declarations to x86.h\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ec6d273deb56b1607e2acaad3df4bca42f135cd7",
      "tree": "baf98bb322414d814f14c25e529c48c68d489b69",
      "parents": [
        "2b3ccfa0c5c7738a08f473b5d00b78f87935de72"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Nov 19 15:08:31 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:06 2008 +0200"
      },
      "message": "KVM: Move some static inline functions out from kvm.h into x86.h\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ],
  "next": "2b3ccfa0c5c7738a08f473b5d00b78f87935de72"
}
