)]}'
{
  "log": [
    {
      "commit": "2e2602ca5df09e4c4e2b593bc30abead9a8617d4",
      "tree": "25b9156612690fe6912e0e56a7839bc8073c9474",
      "parents": [
        "908e75f3e70ca580cc20442cf6780dcc2d0557b7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jul 07 14:09:39 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:38 2010 +0300"
      },
      "message": "KVM: Document MCE banks non-exposure via KVM_GET_MSR_INDEX_LIST\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "908e75f3e70ca580cc20442cf6780dcc2d0557b7",
      "tree": "75d91303b792e8a176761bbb673a46fc23b44696",
      "parents": [
        "aea924f606c309feead37ab5c43f410a08ff3826"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jul 07 14:09:38 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:36 2010 +0300"
      },
      "message": "KVM: Expose MCE control MSRs to userspace\n\nUserspace needs to reset and save/restore these MSRs.\n\nThe MCE banks are not exposed since their number varies from vcpu to vcpu.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "aea924f606c309feead37ab5c43f410a08ff3826",
      "tree": "6d409eb035985ebcec3d16b0410706d3e8fcf184",
      "parents": [
        "a6f177efaa5856e22ed0d3c1e81e65b41654d083"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Sat Jul 10 17:37:56 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:35 2010 +0300"
      },
      "message": "KVM: PIT: stop vpit before freeing irq_routing\n\nFix:\ngeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC\n......\nCall Trace:\n [\u003cffffffffa0159bd1\u003e] ? kvm_set_irq+0xdd/0x24b [kvm]\n [\u003cffffffff8106ea8b\u003e] ? trace_hardirqs_off_caller+0x1f/0x10e\n [\u003cffffffff813ad17f\u003e] ? sub_preempt_count+0xe/0xb6\n [\u003cffffffff8106d273\u003e] ? put_lock_stats+0xe/0x27\n...\nRIP  [\u003cffffffffa0159c72\u003e] kvm_set_irq+0x17e/0x24b [kvm]\n\nThis bug is triggered when guest is shutdown, is because we freed\nirq_routing before pit thread stopped\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "a6f177efaa5856e22ed0d3c1e81e65b41654d083",
      "tree": "440f44a7cad040393067c6aca37d2d9e013b155e",
      "parents": [
        "edba23e51578f7cb6781461568489fc1825db4ac"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Thu Jul 08 12:41:12 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:34 2010 +0300"
      },
      "message": "KVM: Reenter guest after emulation failure if due to access to non-mmio address\n\nWhen shadow pages are in use sometimes KVM try to emulate an instruction\nwhen it accesses a shadowed page. If emulation fails KVM un-shadows the\npage and reenter guest to allow vcpu to execute the instruction. If page\nis not in shadow page hash KVM assumes that this was attempt to do MMIO\nand reports emulation failure to userspace since there is no way to fix\nthe situation. This logic has a race though. If two vcpus tries to write\nto the same shadowed page simultaneously both will enter emulator, but\nonly one of them will find the page in shadow page hash since the one who\nfounds it also removes it from there, so another cpu will report failure\nto userspace and will abort the guest.\n\nFix this by checking (in addition to checking shadowed page hash) that\npage that caused the emulation belongs to valid memory slot. If it is\nthen reenter the guest to allow vcpu to reexecute the instruction.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "edba23e51578f7cb6781461568489fc1825db4ac",
      "tree": "54ce6b22998c1bf7c40cfa43e3ebd8b9df271dcb",
      "parents": [
        "fa7bff8f8a7d3de61c0473d0b6dc5a0f4fdc6ac9"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Wed Jul 07 20:16:45 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:33 2010 +0300"
      },
      "message": "KVM: Return EFAULT from kvm ioctl when guest accesses bad area\n\nCurrently if guest access address that belongs to memory slot but is not\nbacked up by page or page is read only KVM treats it like MMIO access.\nRemove that capability. It was never part of the interface and should\nnot be relied upon.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "fa7bff8f8a7d3de61c0473d0b6dc5a0f4fdc6ac9",
      "tree": "0a5c342261b6cee1ef9d1172a215a6c80af79547",
      "parents": [
        "673813e81d8468e80b6dd0fa839923eb9748dc49"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Wed Jul 07 20:16:44 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:32 2010 +0300"
      },
      "message": "KVM: define hwpoison variables static\n\nThey are not used outside of the file.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "673813e81d8468e80b6dd0fa839923eb9748dc49",
      "tree": "82525c28fb88307046055c23d336bdd48dfd44a9",
      "parents": [
        "f59c1d2ded54e4bd7a9126f4a32c9eca8b336457"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Jul 07 15:02:25 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:31 2010 +0300"
      },
      "message": "KVM: fix lock imbalance in kvm_create_pit()\n\nStanse found that there is an omitted unlock in kvm_create_pit in one fail\npath. Add proper unlock there.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: x86@kernel.org\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: kvm@vger.kernel.org\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "f59c1d2ded54e4bd7a9126f4a32c9eca8b336457",
      "tree": "0528e6c6d301fbda9d897f1d6cf3704a0eb2bfea",
      "parents": [
        "b0eeec29fe7a5b114000f769bd68ffa02652bfb7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 06 16:20:43 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:30 2010 +0300"
      },
      "message": "KVM: MMU: Keep going on permission error\n\nReal hardware disregards permission errors when computing page fault error\ncode bit 0 (page present).  Do the same.\n\nReviewed-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b0eeec29fe7a5b114000f769bd68ffa02652bfb7",
      "tree": "203f6e2f0191c98d4b5460d90a73fa61d0c41e0d",
      "parents": [
        "5d55f299f97769130c6cc67896414c988db309ab"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 06 15:40:18 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:29 2010 +0300"
      },
      "message": "KVM: MMU: Only indicate a fetch fault in page fault error code if nx is enabled\n\nBit 4 of the page fault error code is set only if EFER.NX is set.\n\nReviewed-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "5d55f299f97769130c6cc67896414c988db309ab",
      "tree": "4b18d7721ff788e8bda93e57086037e1d6ac195b",
      "parents": [
        "07cbc6c185aee2c0479776845988242a040c7c93"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Wed Jul 07 17:43:35 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:27 2010 +0300"
      },
      "message": "KVM: x86 emulator: re-implementing \u0027mov AL,moffs\u0027 instruction decoding\n\nThis patch change to use DstAcc for decoding \u0027mov AL, moffs\u0027\nand introduced SrcAcc for decoding \u0027mov moffs, AL\u0027.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "07cbc6c185aee2c0479776845988242a040c7c93",
      "tree": "b47ff3619fe38985273a51e663a81d41674a9ee0",
      "parents": [
        "b16b2b7bb5a78afceb7fe22f2a04476cd70182b7"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jul 06 16:54:19 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:26 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix cli/sti instruction emulation\n\nIf IOPL check fail, the cli/sti emulate GP and then we should\nskip writeback since the default write OP is OP_REG.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b16b2b7bb5a78afceb7fe22f2a04476cd70182b7",
      "tree": "1b5352e4c8fa6336128ee1e9b979dc4d1e239614",
      "parents": [
        "e97e883f8bfbe02cfc2bfff45e68921dfe590c7e"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jul 06 16:52:53 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:25 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix \u0027mov rm,sreg\u0027 instruction decoding\n\nThe source operand of \u0027mov rm,sreg\u0027 is segment register, not\ngeneral-purpose register, so remove SrcReg from decoding.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e97e883f8bfbe02cfc2bfff45e68921dfe590c7e",
      "tree": "ca9ba2e7f5ca10b406aecaf1c9401f937dbed248",
      "parents": [
        "ce7a0ad3bdcd86e6cf907eb5992fecb1503daa26"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jul 06 16:51:09 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:24 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix \u0027and AL,imm8\u0027 instruction decoding\n\n\u0027and AL,imm8\u0027 should be mask as ByteOp, otherwise the dest operand\nlength will no correct and we may fill the full EAX when writeback.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ce7a0ad3bdcd86e6cf907eb5992fecb1503daa26",
      "tree": "7b5443b91534ec4e85c6315bb186a8f8e4c5dbd1",
      "parents": [
        "a5046e6c7d97d6574ffe6367311ea0b0de56aa58"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jul 06 16:50:21 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:23 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix the comment of out instruction\n\nFix the comment of out instruction, using the same style as the\nother instructions.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a5046e6c7d97d6574ffe6367311ea0b0de56aa58",
      "tree": "8895223602eb3fcf0ee9d692142f68a0a515d012",
      "parents": [
        "b79b93f92cb3b66b89d75525fdfd2454b1e1f446"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jul 06 16:49:05 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:22 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix \u0027mov sreg,rm16\u0027 instruction decoding\n\nMemory reads for \u0027mov sreg,rm16\u0027 should be 16 bits only.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b79b93f92cb3b66b89d75525fdfd2454b1e1f446",
      "tree": "0ca735431e67c58ff4b69578dc56bdd6e875eebb",
      "parents": [
        "a9221dd5ec125fbec1702fae016c6d2ea1a9a3da"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 06 15:46:44 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:21 2010 +0300"
      },
      "message": "KVM: MMU: Don\u0027t drop accessed bit while updating an spte\n\n__set_spte() will happily replace an spte with the accessed bit set with\none that has the accessed bit clear.  Add a helper update_spte() which checks\nfor this condition and updates the page flag if needed.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a9221dd5ec125fbec1702fae016c6d2ea1a9a3da",
      "tree": "148607c0424c4ec993b55dd85eec69332a775b22",
      "parents": [
        "ce061867aa2877605cda96fa8ec7dff15f70a983"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 06 14:48:06 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:20 2010 +0300"
      },
      "message": "KVM: MMU: Atomically check for accessed bit when dropping an spte\n\nCurrently, in the window between the check for the accessed bit, and actually\ndropping the spte, a vcpu can access the page through the spte and set the bit,\nwhich will be ignored by the mmu.\n\nFix by using an exchange operation to atmoically fetch the spte and drop it.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ce061867aa2877605cda96fa8ec7dff15f70a983",
      "tree": "690b9723b06c2f62586f5a74121fe16f3e2e1caa",
      "parents": [
        "be38d276b0189fa86231fc311428622a1981ad62"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 06 14:38:12 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:18 2010 +0300"
      },
      "message": "KVM: MMU: Move accessed/dirty bit checks from rmap_remove() to drop_spte()\n\nSince we need to make the check atomic, move it to the place that will\nset the new spte.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "be38d276b0189fa86231fc311428622a1981ad62",
      "tree": "4706819e23ade99c43bb676830071da9bd2d0abd",
      "parents": [
        "dd180b3e90253cb4ca95d603a8c17413f8daec69"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 06 14:31:27 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:17 2010 +0300"
      },
      "message": "KVM: MMU: Introduce drop_spte()\n\nWhen we call rmap_remove(), we (almost) always immediately follow it by\nan __set_spte() to a nonpresent pte.  Since we need to perform the two\noperations atomically, to avoid losing the dirty and accessed bits, introduce\na helper drop_spte() and convert all call sites.\n\nThe operation is still nonatomic at this point.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "dd180b3e90253cb4ca95d603a8c17413f8daec69",
      "tree": "9c0cc39f4088a9b54a96ab6545739e423deb3d2e",
      "parents": [
        "5689cc53fa9d09b5bf41b1b1a7c90bd6c112ab40"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Sat Jul 03 16:02:42 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:40:16 2010 +0300"
      },
      "message": "KVM: VMX: fix tlb flush with invalid root\n\nCommit 341d9b535b6c simplify reload logic while entry guest mode, it\ncan avoid unnecessary sync-root if KVM_REQ_MMU_RELOAD and\nKVM_REQ_MMU_SYNC both set.\n\nBut, it cause a issue that when we handle \u0027KVM_REQ_TLB_FLUSH\u0027, the\nroot is invalid, it is triggered during my test:\n\nKernel BUG at ffffffffa00212b8 [verbose debug info unavailable]\n......\n\nFixed by directly return if the root is not ready.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "5689cc53fa9d09b5bf41b1b1a7c90bd6c112ab40",
      "tree": "1bfe4bdf8cbad3938e2cd8b76eac10c8023ba04d",
      "parents": [
        "828554136bbacae6e39fc31b9cd7e7c660ad7530"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jul 01 16:00:12 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 02 06:39:44 2010 +0300"
      },
      "message": "KVM: Use u64 for frame data types\n\nFor 32bit machines where the physical address width is\nlarger than the virtual address width the frame number types\nin KVM may overflow. Fix this by changing them to u64.\n\n[sfr: fix build on 32-bit ppc]\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "828554136bbacae6e39fc31b9cd7e7c660ad7530",
      "tree": "4e2ec85ff33c9c1e7245e83ed8e4fa3791007ef7",
      "parents": [
        "95c87e2b4460a488ec7ce42f273893e410ab385a"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jul 01 16:00:11 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:30 2010 +0300"
      },
      "message": "KVM: Remove unnecessary divide operations\n\nThis patch converts unnecessary divide and modulo operations\nin the KVM large page related code into logical operations.\nThis allows to convert gfn_t to u64 while not breaking 32\nbit builds.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "95c87e2b4460a488ec7ce42f273893e410ab385a",
      "tree": "4b9375cfcdd0cbfafe15a094d39057848ac748c3",
      "parents": [
        "fef093bec0364ff5e6fd488cd81637f6bb3a2d0d"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu Jul 01 15:00:50 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:29 2010 +0300"
      },
      "message": "KVM: Fix IOMMU memslot reference warning\n\nThis patch fixes the following warning.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: suspicious rcu_dereference_check() usage. ]\n---------------------------------------------------\ninclude/linux/kvm_host.h:259 invoked rcu_dereference_check() without\nprotection!\n\nother info that might help us debug this:\n\nrcu_scheduler_active \u003d 1, debug_locks \u003d 0\nno locks held by qemu-system-x86/29679.\n\nstack backtrace:\nPid: 29679, comm: qemu-system-x86 Not tainted 2.6.35-rc3+ #200\nCall Trace:\n [\u003cffffffff810a224e\u003e] lockdep_rcu_dereference+0xa8/0xb1\n [\u003cffffffffa018a06f\u003e] kvm_iommu_unmap_memslots+0xc9/0xde [kvm]\n [\u003cffffffffa018a0c4\u003e] kvm_iommu_unmap_guest+0x40/0x4e [kvm]\n [\u003cffffffffa018f772\u003e] kvm_arch_destroy_vm+0x1a/0x186 [kvm]\n [\u003cffffffffa01800d0\u003e] kvm_put_kvm+0x110/0x167 [kvm]\n [\u003cffffffffa0180ecc\u003e] kvm_vcpu_release+0x18/0x1c [kvm]\n [\u003cffffffff81156f5d\u003e] fput+0x22a/0x3a0\n [\u003cffffffff81152288\u003e] filp_close+0xb4/0xcd\n [\u003cffffffff8106599f\u003e] put_files_struct+0x1b7/0x36b\n [\u003cffffffff81065830\u003e] ? put_files_struct+0x48/0x36b\n [\u003cffffffff8131ee59\u003e] ? do_raw_spin_unlock+0x118/0x160\n [\u003cffffffff81065bc0\u003e] exit_files+0x6d/0x75\n [\u003cffffffff81068348\u003e] do_exit+0x47d/0xc60\n [\u003cffffffff8177e7b5\u003e] ? _raw_spin_unlock_irq+0x30/0x36\n [\u003cffffffff81068bfa\u003e] do_group_exit+0xcf/0x134\n [\u003cffffffff81080790\u003e] get_signal_to_deliver+0x732/0x81d\n [\u003cffffffff81095996\u003e] ? cpu_clock+0x4e/0x60\n [\u003cffffffff81002082\u003e] do_notify_resume+0x117/0xc43\n [\u003cffffffff810a2fa3\u003e] ? trace_hardirqs_on+0xd/0xf\n [\u003cffffffff81080d79\u003e] ? sys_rt_sigtimedwait+0x2b5/0x3bf\n [\u003cffffffff8177d9f2\u003e] ? trace_hardirqs_off_thunk+0x3a/0x3c\n [\u003cffffffff81003221\u003e] ? sysret_signal+0x5/0x3d\n [\u003cffffffff8100343b\u003e] int_signal+0x12/0x17\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "fef093bec0364ff5e6fd488cd81637f6bb3a2d0d",
      "tree": "e61c2f462a5b68d440d3960af41e3f17ea7f765f",
      "parents": [
        "7741909bf19d9437a6aa3559c0470a640f637dce"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Jun 30 15:18:46 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:28 2010 +0300"
      },
      "message": "KVM: PPC: Make use of hash based Shadow MMU\n\nWe just introduced generic functions to handle shadow pages on PPC.\nThis patch makes the respective backends make use of them, getting\nrid of a lot of duplicate code along the way.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7741909bf19d9437a6aa3559c0470a640f637dce",
      "tree": "023e6930fb85730c3f39b6186e19e88412ed037e",
      "parents": [
        "84754cd8fca66ed476585eabad68cacf42834199"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Jun 30 15:18:45 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:27 2010 +0300"
      },
      "message": "KVM: PPC: Add generic hpte management functions\n\nCurrently the shadow paging code keeps an array of entries it knows about.\nWhenever the guest invalidates an entry, we loop through that entry,\ntrying to invalidate matching parts.\n\nWhile this is a really simple implementation, it is probably the most\nineffective one possible. So instead, let\u0027s keep an array of lists around\nthat are indexed by a hash. This way each PTE can be added by 4 list_add,\nremoved by 4 list_del invocations and the search only needs to loop through\nentries that share the same hash.\n\nThis patch implements said lookup and exports generic functions that both\nthe 32-bit and 64-bit backend can use.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "84754cd8fca66ed476585eabad68cacf42834199",
      "tree": "9338f484e308bc50b2cbe8916dffc10f4ef66387",
      "parents": [
        "9e7b0e7fba45ca3c6357aeb7091ebc281f1de365"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jun 30 16:05:00 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:26 2010 +0300"
      },
      "message": "KVM: MMU: cleanup FNAME(fetch)() functions\n\nCleanup this function that we are already get the direct sp\u0027s access\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "9e7b0e7fba45ca3c6357aeb7091ebc281f1de365",
      "tree": "e92144ed8d954cab432c6ccccacdc3aa2d4c645f",
      "parents": [
        "5fd5387c89ec99ff6cb82d2477ffeb7211b781c2"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jun 30 16:03:28 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:25 2010 +0300"
      },
      "message": "KVM: MMU: fix direct sp\u0027s access corrupted\n\nIf the mapping is writable but the dirty flag is not set, we will find\nthe read-only direct sp and setup the mapping, then if the write #PF\noccur, we will mark this mapping writable in the read-only direct sp,\nnow, other real read-only mapping will happily write it without #PF.\n\nIt may hurt guest\u0027s COW\n\nFixed by re-install the mapping when write #PF occur.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "5fd5387c89ec99ff6cb82d2477ffeb7211b781c2",
      "tree": "a3896c883dca431512110870f31d32c431814f12",
      "parents": [
        "36a2e6774bfb5f32a0f23bb155f1f960321f291b"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jun 30 16:02:45 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:23 2010 +0300"
      },
      "message": "KVM: MMU: fix conflict access permissions in direct sp\n\nIn no-direct mapping, we mark sp is \u0027direct\u0027 when we mapping the\nguest\u0027s larger page, but its access is encoded form upper page-struct\nentire not include the last mapping, it will cause access conflict.\n\nFor example, have this mapping:\n        [W]\n      / PDE1 -\u003e |---|\n  P[W]          |   | LPA\n      \\ PDE2 -\u003e |---|\n        [R]\n\nP have two children, PDE1 and PDE2, both PDE1 and PDE2 mapping the\nsame lage page(LPA). The P\u0027s access is WR, PDE1\u0027s access is WR,\nPDE2\u0027s access is RO(just consider read-write permissions here)\n\nWhen guest access PDE1, we will create a direct sp for LPA, the sp\u0027s\naccess is from P, is W, then we will mark the ptes is W in this sp.\n\nThen, guest access PDE2, we will find LPA\u0027s shadow page, is the same as\nPDE\u0027s, and mark the ptes is RO.\n\nSo, if guest access PDE1, the incorrect #PF is occured.\n\nFixed by encode the last mapping access into direct shadow page\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "36a2e6774bfb5f32a0f23bb155f1f960321f291b",
      "tree": "c367ac796b1e33694bcb3bd0e95cbd723667791b",
      "parents": [
        "f5f48ee15c2ee3e44cf429e34b16c6fa9b900246"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jun 30 16:02:02 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:22 2010 +0300"
      },
      "message": "KVM: MMU: fix writable sync sp mapping\n\nWhile we sync many unsync sp at one time(in mmu_sync_children()),\nwe may mapping the spte writable, it\u0027s dangerous, if one unsync\nsp\u0027s mapping gfn is another unsync page\u0027s gfn.\n\nFor example:\n\nSP1.pte[0] \u003d P\nSP2.gfn\u0027s pfn \u003d P\n[SP1.pte[0] \u003d SP2.gfn\u0027s pfn]\n\nFirst, we write protected SP1 and SP2, but SP1 and SP2 are still the\nunsync sp.\n\nThen, sync SP1 first, it will detect SP1.pte[0].gfn only has one unsync-sp,\nthat is SP2, so it will mapping it writable, but we plan to sync SP2 soon,\nat this point, the SP2-\u003eunsync is not reliable since later we sync SP2 but\nSP2-\u003egfn is already writable.\n\nSo the final result is: SP2 is the sync page but SP2.gfn is writable.\n\nThis bug will corrupt guest\u0027s page table, fixed by mark read-only mapping\nif the mapped gfn has shadow pages.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "f5f48ee15c2ee3e44cf429e34b16c6fa9b900246",
      "tree": "75496197219d9aeedd3317fa007cc3b2e414c5da",
      "parents": [
        "cf3e3d3e19868ca01da163200bbfc687523df0fc"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Jun 30 12:25:15 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:21 2010 +0300"
      },
      "message": "KVM: VMX: Execute WBINVD to keep data consistency with assigned devices\n\nSome guest device driver may leverage the \"Non-Snoop\" I/O, and explicitly\nWBINVD or CLFLUSH to a RAM space. Since migration may occur before WBINVD or\nCLFLUSH, we need to maintain data consistency either by:\n1: flushing cache (wbinvd) when the guest is scheduled out if there is no\nwbinvd exit, or\n2: execute wbinvd on all dirty physical CPUs when guest wbinvd exits.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "cf3e3d3e19868ca01da163200bbfc687523df0fc",
      "tree": "d527fd15aa753f592398e8208d2713b9f8ffa6dd",
      "parents": [
        "3e0075094734de122e4cb09f930fa853a3c59f09"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 24 14:10:09 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:20 2010 +0300"
      },
      "message": "KVM: Document KVM specific review items\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "3e0075094734de122e4cb09f930fa853a3c59f09",
      "tree": "85ba16913603edba8913f31825dff9f13ea0cb4b",
      "parents": [
        "529df65e394e30a78f2633b575fd81fa5b973e30"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 23 14:26:18 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:19 2010 +0300"
      },
      "message": "KVM: Simplify vcpu_enter_guest() mmu reload logic slightly\n\nNo need to reload the mmu in between two different vcpu-\u003erequests checks.\n\nkvm_mmu_reload() may trigger KVM_REQ_TRIPLE_FAULT, but that will be caught\nduring atomic guest entry later.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "529df65e394e30a78f2633b575fd81fa5b973e30",
      "tree": "03aeb13c1ae73a6ef20c704e1f2cdc0858eade5a",
      "parents": [
        "979586e0b5809c46ebe5d784794a9f6d859b665e"
      ],
      "author": {
        "name": "Chris Lalancette",
        "email": "clalance@redhat.com",
        "time": "Mon Jun 21 11:29:40 2010 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:17 2010 +0300"
      },
      "message": "KVM: Search the LAPIC\u0027s for one that will accept a PIC interrupt\n\nOlder versions of 32-bit linux have a \"Checking \u0027hlt\u0027 instruction\"\ntest where they repeatedly call the \u0027hlt\u0027 instruction, and then\nexpect a timer interrupt to kick the CPU out of halt.  This happens\nbefore any LAPIC or IOAPIC setup happens, which means that all of\nthe APIC\u0027s are in virtual wire mode at this point.  Unfortunately,\nthe current implementation of virtual wire mode is hardcoded to\nonly kick the BSP, so if a crash+kexec occurs on a different\nvcpu, it will never get kicked.\n\nThis patch makes pic_unlock() do the equivalent of\nkvm_irq_delivery_to_apic() for the IOAPIC code.  That is, it runs\nthrough all of the vcpus looking for one that is in virtual wire\nmode.  In the normal case where LAPICs and IOAPICs are configured,\nthis won\u0027t be used at all.  In the bootstrap phase of a modern\nOS, before the LAPICs and IOAPICs are configured, this will have\nexactly the same behavior as today; VCPU0 is always looked at\nfirst, so it will always get out of the loop after the first\niteration.  This will only go through the loop more than once\nduring a kexec/kdump, in which case it will only do it a few times\nuntil the kexec\u0027ed kernel programs the LAPIC and IOAPIC.\n\nSigned-off-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "979586e0b5809c46ebe5d784794a9f6d859b665e",
      "tree": "92988306f9aa606b777b219ade16a6f244e4cdef",
      "parents": [
        "4482b06c0459469c101a1da3f4b24594da557f99"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Jun 23 15:00:29 2010 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:16 2010 +0300"
      },
      "message": "KVM: ia64: cleanup kvm_ia64_sync_dirty_log()\n\nkvm_ia64_sync_dirty_log() is a helper function for kvm_vm_ioctl_get_dirty_log()\nwhich copies ia64\u0027s arch specific dirty bitmap to general one in memslot.\nSo doing sanity checks in this function is unnatural. We move these checks\noutside of this and change the prototype appropriately.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4482b06c0459469c101a1da3f4b24594da557f99",
      "tree": "55da76c52f91676943219722d3f09f61aa8d7012",
      "parents": [
        "4d29bdbf12f35f7e7816d67e99c150630684604f"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Jun 23 14:59:29 2010 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:15 2010 +0300"
      },
      "message": "KVM: ia64: fix dirty_log_lock spin_lock section not to include get_dirty_log()\n\nkvm_get_dirty_log() calls copy_to_user(). So we need to narrow the\ndirty_log_lock spin_lock section not to include this.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4d29bdbf12f35f7e7816d67e99c150630684604f",
      "tree": "2eb8955ba34b720004e959642fca355dd9b67fa3",
      "parents": [
        "3b249157c03154109d31ec95a3c80203adcf8b70"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Jun 21 15:24:55 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:14 2010 +0300"
      },
      "message": "KVM: PPC: Make BAT only guest segments work\n\nWhen a guest sets its SR entry to invalid, we may still find a\ncorresponding entry in a BAT. So we need to make sure we\u0027re not\nfaulting on invalid SR entries, but instead just claim them to be\nBAT resolved.\n\nThis resolves breakage experienced when using libogc based guests.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3b249157c03154109d31ec95a3c80203adcf8b70",
      "tree": "d6a6f4cbf701136cca9f507dcc4a1b55ba07b1de",
      "parents": [
        "a576f7a29481438db0fa6f3d9ed6939019c441d3"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Jun 21 15:25:19 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:13 2010 +0300"
      },
      "message": "KVM: PPC: Use kernel hash function\n\nThe linux kernel already provides a hash function. Let\u0027s reuse that\ninstead of reinventing the wheel!\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a576f7a29481438db0fa6f3d9ed6939019c441d3",
      "tree": "22134adb19a1f5ba4f3a06e934384e4a0c1c0f21",
      "parents": [
        "bbeb34062fbad287c949a945a516a0c15b179993"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Jun 21 15:25:40 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:12 2010 +0300"
      },
      "message": "KVM: PPC: Remove obsolete kvmppc_mmu_find_pte\n\nInitially we had to search for pte entries to invalidate them. Since\nthe logic has improved since then, we can just get rid of the search\nfunction.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bbeb34062fbad287c949a945a516a0c15b179993",
      "tree": "cf29b50e076ba1ddc07d5b1292f243653a2f67a9",
      "parents": [
        "6c3f6041172b78d5532c6bf3680d304e92ec2e66"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue Jun 22 14:23:11 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:11 2010 +0300"
      },
      "message": "KVM: Fix a race condition for usage of is_hwpoison_address()\n\nis_hwpoison_address accesses the page table, so the caller must hold\ncurrent-\u003emm-\u003emmap_sem in read mode. So fix its usage in hva_to_pfn of\nkvm accordingly.\n\nComment is_hwpoison_address to remind other users.\n\nReported-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6c3f6041172b78d5532c6bf3680d304e92ec2e66",
      "tree": "3a1f358ea1cc29df958a6b3d535114987650e101",
      "parents": [
        "7ac77099ce88a0c31b75acd0ec5ef3da4415a6d8"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Jun 22 13:49:21 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:10 2010 +0300"
      },
      "message": "KVM: x86: Enable AVX for guest\n\nEnable Intel(R) Advanced Vector Extension(AVX) for guest.\n\nThe detection of AVX feature includes OSXSAVE bit testing. When OSXSAVE bit is\nnot set, even if AVX is supported, the AVX instruction would result in UD as\nwell. So we\u0027re safe to expose AVX bits to guest directly.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7ac77099ce88a0c31b75acd0ec5ef3da4415a6d8",
      "tree": "20fcf29491d762cb0d378c6bbda0aadb81748418",
      "parents": [
        "e36d96f7cfaa71870c407131eb4fbd38ea285c01"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 21 10:57:45 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:08 2010 +0300"
      },
      "message": "KVM: Prevent internal slots from being COWed\n\nIf a process with a memory slot is COWed, the page will change its address\n(despite having an elevated reference count).  This breaks internal memory\nslots which have their physical addresses loaded into vmcs registers (see\nthe APIC access memory slot).\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e36d96f7cfaa71870c407131eb4fbd38ea285c01",
      "tree": "a557bb41250b555f6181552246742d3a46fadcfd",
      "parents": [
        "0719837c0832a7b305e42327caa7d330462360ea"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 21 10:56:36 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:07 2010 +0300"
      },
      "message": "KVM: Keep slot ID in memory slot structure\n\nMay be used for distinguishing between internal and user slots, or for sorting\nslots in size order.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "0719837c0832a7b305e42327caa7d330462360ea",
      "tree": "73f574529aa588d5270da0a9cf048a65e863ba93",
      "parents": [
        "a8eeb04a44dd6dc4c8158953d9bae48849c9a188"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 10 13:08:26 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:06 2010 +0300"
      },
      "message": "KVM: Reduce atomic operations on vcpu-\u003erequests\n\nUsually the vcpu-\u003erequests bitmap is sparse, so a test_and_clear_bit() for\neach request generates a large number of unneeded atomics if a bit is set.\n\nReplace with a separate test/clear sequence.  This is safe since there is\nno clear_bit() outside the vcpu thread.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a8eeb04a44dd6dc4c8158953d9bae48849c9a188",
      "tree": "70274957d251afb17c8aaf660363795b44bf993f",
      "parents": [
        "36633f32ba4c238403d19584754b30fe469d6dcb"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 10 12:34:53 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:05 2010 +0300"
      },
      "message": "KVM: Add mini-API for vcpu-\u003erequests\n\nMakes it a little more readable and hackable.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "36633f32ba4c238403d19584754b30fe469d6dcb",
      "tree": "ddd476081d21eb2810885236c02aca541dce6be3",
      "parents": [
        "073d46133ab0b42154f6b8429f4f66dbe2760bda"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 03 17:38:06 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:04 2010 +0300"
      },
      "message": "KVM: i8259: simplify pic_irq_request() calling sequence\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "073d46133ab0b42154f6b8429f4f66dbe2760bda",
      "tree": "5b092dba4f6d1f65e3b91a28ebc45a17397150ee",
      "parents": [
        "b74a07beed0e64bfba413dcb70dd6749c57f43dc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 03 17:34:34 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:03 2010 +0300"
      },
      "message": "KVM: i8259: reduce excessive abstraction for pic_irq_request()\n\nPart of the i8259 code pretends it isn\u0027t part of kvm, but we know better.\nReduce excessive abstraction, eliminating callbacks and void pointers.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b74a07beed0e64bfba413dcb70dd6749c57f43dc",
      "tree": "7a04532866b919718d41bbb75a21966aa4e48904",
      "parents": [
        "a1f4d39500ad8ed61825eff061debff42386ab5b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 21 11:48:05 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:01 2010 +0300"
      },
      "message": "KVM: Remove kernel-allocated memory regions\n\nEquivalent (and better) functionality is provided by user-allocated memory\nregions.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a1f4d39500ad8ed61825eff061debff42386ab5b",
      "tree": "58b72188b1356329e78951773f4be41e66b11d21",
      "parents": [
        "fc34531db3cf8c422f2ff7cf4ef507a3ca672cd2"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 21 11:44:20 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:00 2010 +0300"
      },
      "message": "KVM: Remove memory alias support\n\nAs advertised in feature-removal-schedule.txt.  Equivalent support is provided\nby overlapping memory regions.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "fc34531db3cf8c422f2ff7cf4ef507a3ca672cd2",
      "tree": "2a352c26d5fd09dc26dc07e1bd6f5dcdadc33efc",
      "parents": [
        "971eb77f87bfd352a56a24651922d0383db76219"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Jun 17 23:16:20 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:59 2010 +0300"
      },
      "message": "KVM: s390: Don\u0027t exit SIE on SIGP sense running\n\nNewer (guest) kernels use sigp sense running in their spinlock\nimplementation to check if the other cpu is running before yielding\nthe processor. This revealed some wrong guest settings, causing\nunnecessary exits for every sigp sense running.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "971eb77f87bfd352a56a24651922d0383db76219",
      "tree": "fd1fb3ac017f5365536cfc64ef04101a0bb052aa",
      "parents": [
        "d1ac91d8a2f00dc6a3954f7e8971339b0893edc4"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Sat Jun 12 08:54:13 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:58 2010 +0300"
      },
      "message": "KVM: s390: Fix build failure due to centralized vcpu locking patches\n\nThis patch fixes\nERROR: \"__kvm_s390_vcpu_store_status\" [arch/s390/kvm/kvm.ko] undefined!\n\ntriggered by\ncommit 3268c56840dcee78c3e928336550f4e1861504c4 (kvm.git)\nAuthor: Avi Kivity \u003cavi@redhat.com\u003e\nDate:   Thu May 13 12:21:46 2010 +0300\n    KVM: s390: Centrally lock arch specific vcpu ioctls\n\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d1ac91d8a2f00dc6a3954f7e8971339b0893edc4",
      "tree": "4748e076b42e4aacdd4ad6cc9d5741d384bf826b",
      "parents": [
        "a1a005f36e0defea7c5490772c318c6af2261d31"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 20 15:54:43 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:57 2010 +0300"
      },
      "message": "KVM: Consolidate load/save temporary buffer allocation and freeing\n\nInstead of three temporary variables and three free calls, have one temporary\nvariable (with four names) and one free call.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a1a005f36e0defea7c5490772c318c6af2261d31",
      "tree": "1baf6a17e173b26948d03008249c0b1ce001c7d4",
      "parents": [
        "7d5993d63f2bac75b89e171a7098044ec4bc701f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Jun 20 15:47:34 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:56 2010 +0300"
      },
      "message": "KVM: Fix xsave and xcr save/restore memory leak\n\nWe allocate temporary kernel buffers for these structures, but never free them.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7d5993d63f2bac75b89e171a7098044ec4bc701f",
      "tree": "88d4b4d97662b147d01094983a31071e9e0ea33e",
      "parents": [
        "6045be5dea7f7905433585e524f884b711e3796a"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Jun 17 17:33:55 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:55 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix group3 instruction decoding\n\nGroup 3 instruction with ModRM reg field as 001 is\ndefined as test instruction under AMD arch, and\nemulate_grp3() is ready for emulate it, so fix the\ndecoding.\n\nstatic inline int emulate_grp3(...)\n{\n\t...\n\tswitch (c-\u003emodrm_reg) {\n\tcase 0 ... 1:   /* test */\n\t\temulate_2op_SrcV(\"test\", c-\u003esrc, c-\u003edst, ctxt-\u003eeflags);\n\t...\n}\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6045be5dea7f7905433585e524f884b711e3796a",
      "tree": "687fab4ea8a57c5f1248f57e740c2f8e29c4574e",
      "parents": [
        "21bbe18b2d53e0941cbd1621400ba7b4028972cb"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias.hejun@gmail.com",
        "time": "Sat Jun 19 16:52:12 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:53 2010 +0300"
      },
      "message": "KVM: PPC: fix uninitialized variable warning in kvm_ppc_core_deliver_interrupts\n\nFixes:\narch/powerpc/kvm/booke.c: In function \u0027kvmppc_core_deliver_interrupts\u0027:\narch/powerpc/kvm/booke.c:147: warning: \u0027msr_mask\u0027 may be used uninitialized in this function\n\nSigned-off-by: Asias He \u003casias.hejun@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "21bbe18b2d53e0941cbd1621400ba7b4028972cb",
      "tree": "67db3d57317aa5f250a3c0054f1752302f990e24",
      "parents": [
        "aefd18f01ee848448d834c80e601ccff61515811"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Thu Jun 17 16:49:22 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:52 2010 +0300"
      },
      "message": "KVM: Fix typos in Documentation/kvm/mmu.txt\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "aefd18f01ee848448d834c80e601ccff61515811",
      "tree": "bc1a44ea185d4b712e3e8cd570e515923dd80a38",
      "parents": [
        "e7dca5c0eba63e4ba8e3586c4b37863fd7fadb5a"
      ],
      "author": {
        "name": "Chris Lalancette",
        "email": "clalance@redhat.com",
        "time": "Wed Jun 16 17:11:13 2010 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:51 2010 +0300"
      },
      "message": "KVM: x86: In DM_LOWEST, only deliver interrupts to vcpus with enabled LAPIC\u0027s\n\nOtherwise we might try to deliver a timer interrupt to a cpu that\ncan\u0027t possibly handle it.\n\nSigned-off-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "e7dca5c0eba63e4ba8e3586c4b37863fd7fadb5a",
      "tree": "be3129575b9a1f8d9a53ceca62452f6b203b8c28",
      "parents": [
        "33572ac0ad5ba5016da72e6654e607726568f9c0"
      ],
      "author": {
        "name": "Chris Lalancette",
        "email": "clalance@redhat.com",
        "time": "Wed Jun 16 17:11:12 2010 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:50 2010 +0300"
      },
      "message": "KVM: x86: Allow any LAPIC to accept PIC interrupts\n\nIf the guest wants to accept timer interrupts on a CPU other\nthan the BSP, we need to remove this gate.\n\nSigned-off-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "33572ac0ad5ba5016da72e6654e607726568f9c0",
      "tree": "fe622a883803896c98de49226fb1899807005ba9",
      "parents": [
        "c37eda138473f8c843f2b4aa8da252fdfdaaafa3"
      ],
      "author": {
        "name": "Chris Lalancette",
        "email": "clalance@redhat.com",
        "time": "Wed Jun 16 17:11:11 2010 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:49 2010 +0300"
      },
      "message": "KVM: x86: Introduce a workqueue to deliver PIT timer interrupts\n\nWe really want to \"kvm_set_irq\" during the hrtimer callback,\nbut that is risky because that is during interrupt context.\nInstead, offload the work to a workqueue, which is a bit safer\nand should provide most of the same functionality.\n\nSigned-off-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "c37eda138473f8c843f2b4aa8da252fdfdaaafa3",
      "tree": "88ec34bb82c03613dd1c933f1c9f26e9b4d45901",
      "parents": [
        "bd371396b38ffc4bd6444b0203f33b99d18cedd0"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Jun 15 09:03:33 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:48 2010 +0300"
      },
      "message": "KVM: x86 emulator: fix pusha instruction emulation\n\nemulate pusha instruction only writeback the last\nEDI register, but the other registers which need\nto be writeback is ignored. This patch fixed it.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "bd371396b38ffc4bd6444b0203f33b99d18cedd0",
      "tree": "6187dd8a99636d1116534e7c9a4f5123d8b5803e",
      "parents": [
        "1047df1fb682a41eb9885d6b3f2d04d6c8fd3756"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@redhat.com",
        "time": "Mon Jun 14 11:42:15 2010 -1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:46 2010 +0300"
      },
      "message": "KVM: x86: fix -DDEBUG oops\n\nFix a slight error with assertion in local APIC code.\n\nSigned-off-by: Zachary Amsden \u003czamsden@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "1047df1fb682a41eb9885d6b3f2d04d6c8fd3756",
      "tree": "0bb56adeae33459616149940d3c65246a78e61c9",
      "parents": [
        "7a8f1a74e4193d21e55b35928197486f2c047efb"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:35:15 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:45 2010 +0300"
      },
      "message": "KVM: MMU: don\u0027t walk every parent pages while mark unsync\n\nWhile we mark the parent\u0027s unsync_child_bitmap, if the parent is already\nunsynced, it no need walk it\u0027s parent, it can reduce some unnecessary\nworkload\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7a8f1a74e4193d21e55b35928197486f2c047efb",
      "tree": "53895b4e086b1acba775ad1f36cbd73b0c7e1901",
      "parents": [
        "ebdea638df04ae6293a9a5414d98ad843c69e82f"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:34:04 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:44 2010 +0300"
      },
      "message": "KVM: MMU: clear unsync_child_bitmap completely\n\nIn current code, some page\u0027s unsync_child_bitmap is not cleared completely\nin mmu_sync_children(), for example, if two PDPEs shard one PDT, one of\nPDPE\u0027s unsync_child_bitmap is not cleared.\n\nCurrently, it not harm anything just little overload, but it\u0027s the prepare\nwork for the later patch\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "ebdea638df04ae6293a9a5414d98ad843c69e82f",
      "tree": "dc656eba6f0a0e0c9baa63c1b1116a19b913b349",
      "parents": [
        "be71e061d15c0aad4f8c2606f76c57b8a19792fd"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:32:34 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:43 2010 +0300"
      },
      "message": "KVM: MMU: cleanup for __mmu_unsync_walk()\n\nDecrease sp-\u003eunsync_children after clear unsync_child_bitmap bit\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "be71e061d15c0aad4f8c2606f76c57b8a19792fd",
      "tree": "d103cf12b162d2e4f8855b9bad5f92e640987d76",
      "parents": [
        "f918b443527e98476c8cc45683152106b9e4bedc"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:31:38 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:42 2010 +0300"
      },
      "message": "KVM: MMU: don\u0027t mark pte notrap if it\u0027s just sync transient\n\nIf the sync-sp just sync transient, don\u0027t mark its pte notrap\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "f918b443527e98476c8cc45683152106b9e4bedc",
      "tree": "ae0e259b0cdea62ac0096351efccbd0da4c42be4",
      "parents": [
        "cb83cad2e7e1cdedb2abb9cef2ac076defa679d4"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:30:36 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:41 2010 +0300"
      },
      "message": "KVM: MMU: avoid double write protected in sync page path\n\nThe sync page is already write protected in mmu_sync_children(), don\u0027t\nwrite protected it again\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "cb83cad2e7e1cdedb2abb9cef2ac076defa679d4",
      "tree": "afe15ea99043092d91cf83e750ad88fda522fb14",
      "parents": [
        "ac3cd03cca91d481b41e8236aaa41a7f9fafa62f"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:29:42 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:39 2010 +0300"
      },
      "message": "KVM: MMU: cleanup for dirty page judgment\n\nUsing wrap function to cleanup page dirty judgment\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "ac3cd03cca91d481b41e8236aaa41a7f9fafa62f",
      "tree": "1210ceb168ec1710113557d49661ca3586bd4ecb",
      "parents": [
        "2d5b5a665508c60577c1088e0405850a965b6795"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 11 21:28:14 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:38 2010 +0300"
      },
      "message": "KVM: MMU: rename \u0027page\u0027 and \u0027shadow_page\u0027 to \u0027sp\u0027\n\nRename \u0027page\u0027 and \u0027shadow_page\u0027 to \u0027sp\u0027 to better fit the context\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "2d5b5a665508c60577c1088e0405850a965b6795",
      "tree": "3549325770a39b0c7fd2b7f81aa6fa42295803e2",
      "parents": [
        "69b61833f7ce6e61e196c8a724e4d1278b24ac02"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Sun Jun 13 17:29:39 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:37 2010 +0300"
      },
      "message": "KVM: x86: XSAVE/XRSTOR live migration support\n\nThis patch enable save/restore of xsave state.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "69b61833f7ce6e61e196c8a724e4d1278b24ac02",
      "tree": "338419e24b23d96b83bf2890cb525be4be26371b",
      "parents": [
        "2390218b6aa2eb3784b0a82fa811c19097dc793a"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@hera.kernel.org",
        "time": "Fri Jun 11 11:23:26 2010 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:36 2010 +0300"
      },
      "message": "KVM: PPC: fix build warning in kvm_arch_vcpu_ioctl_run\n\nFix compile warning:\n  CC [M]  arch/powerpc/kvm/powerpc.o\n  arch/powerpc/kvm/powerpc.c: In function \u0027kvm_arch_vcpu_ioctl_run\u0027:\n  arch/powerpc/kvm/powerpc.c:290: warning: \u0027gpr\u0027 may be used uninitialized in this function\n  arch/powerpc/kvm/powerpc.c:290: note: \u0027gpr\u0027 was declared here\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "2390218b6aa2eb3784b0a82fa811c19097dc793a",
      "tree": "facf41c6ed5c3d2eafa939e7ab9209cc1594cddb",
      "parents": [
        "a83b29c6ad6d6497e569edbc29e556a384cebddd"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 10 17:02:16 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:35 2010 +0300"
      },
      "message": "KVM: Fix mov cr3 #GP at wrong instruction\n\nOn Intel, we call skip_emulated_instruction() even if we injected a #GP,\nresulting in the #GP pointing at the wrong address.\n\nFix by injecting the exception and skipping the instruction at the same place,\nso we can do just one or the other.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "a83b29c6ad6d6497e569edbc29e556a384cebddd",
      "tree": "444c440ec0e1f8e0d73d89cfc66fd185b03223c9",
      "parents": [
        "49a9b07edcf4aff159c1f3d3a27e58cf38bc27cd"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 10 17:02:15 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:34 2010 +0300"
      },
      "message": "KVM: Fix mov cr4 #GP at wrong instruction\n\nOn Intel, we call skip_emulated_instruction() even if we injected a #GP,\nresulting in the #GP pointing at the wrong address.\n\nFix by injecting the exception and skipping the instruction at the same place,\nso we can do just one or the other.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "49a9b07edcf4aff159c1f3d3a27e58cf38bc27cd",
      "tree": "750ff11b09e7baa3f4c811ce7c85bf7546b051ae",
      "parents": [
        "2acf923e38fb6a4ce0c57115decbb38d334902ac"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 10 17:02:14 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:32 2010 +0300"
      },
      "message": "KVM: Fix mov cr0 #GP at wrong instruction\n\nOn Intel, we call skip_emulated_instruction() even if we injected a #GP,\nresulting in the #GP pointing at the wrong address.\n\nFix by injecting the exception and skipping the instruction at the same place,\nso we can do just one or the other.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "2acf923e38fb6a4ce0c57115decbb38d334902ac",
      "tree": "51a0fba243c857a3bc373ab152c6374c804df224",
      "parents": [
        "f495c6e5e8fdc972162241df5bdff5bcebb4dc33"
      ],
      "author": {
        "name": "Dexuan Cui",
        "email": "dexuan.cui@intel.com",
        "time": "Thu Jun 10 11:27:12 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:31 2010 +0300"
      },
      "message": "KVM: VMX: Enable XSAVE/XRSTOR for guest\n\nThis patch enable guest to use XSAVE/XRSTOR instructions.\n\nWe assume that host_xcr0 would use all possible bits that OS supported.\n\nAnd we loaded xcr0 in the same way we handled fpu - do it as late as we can.\n\nSigned-off-by: Dexuan Cui \u003cdexuan.cui@intel.com\u003e\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nReviewed-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "f495c6e5e8fdc972162241df5bdff5bcebb4dc33",
      "tree": "b17411bc419947097d92b565daf297250c2c7c40",
      "parents": [
        "a24e809902339458416900869abdcc51a44bfd48"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 10 17:21:29 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:30 2010 +0300"
      },
      "message": "KVM: VMX: Fix incorrect rcu deref in rmode_tss_base()\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a24e809902339458416900869abdcc51a44bfd48",
      "tree": "83d988a4b47c501d3775b5c07547e71b79456b82",
      "parents": [
        "376d41ff2669617a1ef828466ad07a1be99d24d3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Thu Jun 10 13:10:55 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:29 2010 +0300"
      },
      "message": "KVM: Fix unused but set warnings\n\nNo real bugs in this one.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "376d41ff2669617a1ef828466ad07a1be99d24d3",
      "tree": "1bba59c86da7fae20ac0619296a2d67797abfb87",
      "parents": [
        "3b5d13218667b3ca52efa52cec1d322163bf5465"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Thu Jun 10 13:10:47 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:28 2010 +0300"
      },
      "message": "KVM: Fix KVM_SET_SIGNAL_MASK with arg \u003d\u003d NULL\n\nWhen the user passed in a NULL mask pass this on from the ioctl\nhandler.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3b5d13218667b3ca52efa52cec1d322163bf5465",
      "tree": "86b2d982c2291d5204425abc45f3b4f61deb3e4c",
      "parents": [
        "5304efde6ae27deeeae79b97af709d4ceecc336e"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 08 20:07:01 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:26 2010 +0300"
      },
      "message": "KVM: MMU: delay local tlb flush\n\ndelay local tlb flush until enter guest moden, it can reduce vpid flush\nfrequency and reduce remote tlb flush IPI(if KVM_REQ_TLB_FLUSH bit is\nalready set, IPI is not sent)\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "5304efde6ae27deeeae79b97af709d4ceecc336e",
      "tree": "139f023edce5da3276ae4f53e4be09e5377d3338",
      "parents": [
        "4f78fd08e91c52f097d64a42d903b76fe52a3a0f"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 08 20:05:57 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:25 2010 +0300"
      },
      "message": "KVM: MMU: use wrapper function to flush local tlb\n\nUse kvm_mmu_flush_tlb() function instead of calling\nkvm_x86_ops-\u003etlb_flush(vcpu) directly.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4f78fd08e91c52f097d64a42d903b76fe52a3a0f",
      "tree": "5652e290d83143340c8318f57dea42b692afadda",
      "parents": [
        "4b9d3a04519fb508ad3b7ce8a7962929b2614185"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 08 20:05:05 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:24 2010 +0300"
      },
      "message": "KVM: MMU: remove unnecessary remote tlb flush\n\nThis remote tlb flush is no necessary since we have synced while\nsp is zapped\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4b9d3a04519fb508ad3b7ce8a7962929b2614185",
      "tree": "b906c2b106286c30e95becca0a5259383b7d32ff",
      "parents": [
        "1760dd4939a62591e492971858fac8cce1e4539e"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 08 10:15:51 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:23 2010 +0300"
      },
      "message": "KVM: VMX: fix rcu usage warning in init_rmode()\n\nfix:\n\n[ INFO: suspicious rcu_dereference_check() usage. ]\n---------------------------------------------------\ninclude/linux/kvm_host.h:258 invoked rcu_dereference_check() without protection!\n\nother info that might help us debug this:\n\nrcu_scheduler_active \u003d 1, debug_locks \u003d 1\n1 lock held by qemu-system-x86/3796:\n #0:  (\u0026vcpu-\u003emutex){+.+.+.}, at: [\u003cffffffffa0217fd8\u003e] vcpu_load+0x1a/0x66 [kvm]\n\nstack backtrace:\nPid: 3796, comm: qemu-system-x86 Not tainted 2.6.34 #25\nCall Trace:\n [\u003cffffffff81070ed1\u003e] lockdep_rcu_dereference+0x9d/0xa5\n [\u003cffffffffa0214fdf\u003e] gfn_to_memslot_unaliased+0x65/0xa0 [kvm]\n [\u003cffffffffa0216139\u003e] gfn_to_hva+0x22/0x4c [kvm]\n [\u003cffffffffa0216217\u003e] kvm_write_guest_page+0x2a/0x7f [kvm]\n [\u003cffffffffa0216286\u003e] kvm_clear_guest_page+0x1a/0x1c [kvm]\n [\u003cffffffffa0278239\u003e] init_rmode+0x3b/0x180 [kvm_intel]\n [\u003cffffffffa02786ce\u003e] vmx_set_cr0+0x350/0x4d3 [kvm_intel]\n [\u003cffffffffa02274ff\u003e] kvm_arch_vcpu_ioctl_set_sregs+0x122/0x31a [kvm]\n [\u003cffffffffa021859c\u003e] kvm_vcpu_ioctl+0x578/0xa3d [kvm]\n [\u003cffffffff8106624c\u003e] ? cpu_clock+0x2d/0x40\n [\u003cffffffff810f7d86\u003e] ? fget_light+0x244/0x28e\n [\u003cffffffff810709b9\u003e] ? trace_hardirqs_off_caller+0x1f/0x10e\n [\u003cffffffff8110501b\u003e] vfs_ioctl+0x32/0xa6\n [\u003cffffffff81105597\u003e] do_vfs_ioctl+0x47f/0x4b8\n [\u003cffffffff813ae654\u003e] ? sub_preempt_count+0xa3/0xb7\n [\u003cffffffff810f7da8\u003e] ? fget_light+0x266/0x28e\n [\u003cffffffff810f7c53\u003e] ? fget_light+0x111/0x28e\n [\u003cffffffff81105617\u003e] sys_ioctl+0x47/0x6a\n [\u003cffffffff81002c1b\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "1760dd4939a62591e492971858fac8cce1e4539e",
      "tree": "edd00356dd27c060e5ff794d57fbf58504f3e22c",
      "parents": [
        "b9d762fa79f541ab480cdb733b46fdb0b4471c2d"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Mon Jun 07 10:33:27 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:16 2010 +0300"
      },
      "message": "KVM: VMX: rename vpid_sync_vcpu_all() to vpid_sync_vcpu_single()\n\nThe name \"pid_sync_vcpu_all\" isn\u0027t appropriate since it just affect\na single vpid, so rename it to vpid_sync_vcpu_single().\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b9d762fa79f541ab480cdb733b46fdb0b4471c2d",
      "tree": "58b1a1934b6759b6c279b2c8b8cee3f09cff8abd",
      "parents": [
        "0671a8e75d8aeb33e15c5152147abb0d2fa0c1e6"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Mon Jun 07 10:32:29 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:04 2010 +0300"
      },
      "message": "KVM: VMX: Add all-context INVVPID type support\n\nAdd all-context INVVPID type support.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "0671a8e75d8aeb33e15c5152147abb0d2fa0c1e6",
      "tree": "9ee71a7abb58c3d34c70ae77ac7c1b09351e2787",
      "parents": [
        "f41d335a02d5132c14ec0459d3b2790eeb16fb11"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:56:59 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:28 2010 +0300"
      },
      "message": "KVM: MMU: reduce remote tlb flush in kvm_mmu_pte_write()\n\ncollect remote tlb flush in kvm_mmu_pte_write() path\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "f41d335a02d5132c14ec0459d3b2790eeb16fb11",
      "tree": "cd513bfecaf1eafa38cedbe1729e60c6c44c008b",
      "parents": [
        "d98ba053656c033180781007241f2c9d54606d56"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:56:11 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:28 2010 +0300"
      },
      "message": "KVM: MMU: traverse sp hlish safely\n\nNow, we can safely to traverse sp hlish\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d98ba053656c033180781007241f2c9d54606d56",
      "tree": "e62b4c3be2762640c6a3753f0d9fa6ef0fd76f9f",
      "parents": [
        "103ad25a86a6ec5418b3dca6a0d2bf2ba01a8318"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:55:29 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:27 2010 +0300"
      },
      "message": "KVM: MMU: gather remote tlb flush which occurs during page zapped\n\nUsing kvm_mmu_prepare_zap_page() and kvm_mmu_zap_page() instead of\nkvm_mmu_zap_page() that can reduce remote tlb flush IPI\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "103ad25a86a6ec5418b3dca6a0d2bf2ba01a8318",
      "tree": "36ec9c5bad8446d57a974c80d5147e1db3e18d65",
      "parents": [
        "7775834a233478ec855b97e30727248f12eafe76"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:54:38 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:27 2010 +0300"
      },
      "message": "KVM: MMU: don\u0027t get free page number in the loop\n\nIn the later patch, we will modify sp\u0027s zapping way like below:\n\n\tkvm_mmu_prepare_zap_page A\n\tkvm_mmu_prepare_zap_page B\n\tkvm_mmu_prepare_zap_page C\n\t....\n\tkvm_mmu_commit_zap_page\n\n[ zaped multiple sps only need to call kvm_mmu_commit_zap_page once ]\n\nIn __kvm_mmu_free_some_pages() function, the free page number is\ngetted form \u0027vcpu-\u003ekvm-\u003earch.n_free_mmu_pages\u0027 in loop, it will\nhinders us to apply kvm_mmu_prepare_zap_page() and kvm_mmu_commit_zap_page()\nsince kvm_mmu_prepare_zap_page() not free sp.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7775834a233478ec855b97e30727248f12eafe76",
      "tree": "06902a6515f0c65b46d1aae37c3d362ca07258d5",
      "parents": [
        "7ae680eb2d5f0cb10ca0e6d1ff5ecb145befe8e4"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:53:54 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:27 2010 +0300"
      },
      "message": "KVM: MMU: split the operations of kvm_mmu_zap_page()\n\nUsing kvm_mmu_prepare_zap_page() and kvm_mmu_commit_zap_page() to\nsplit kvm_mmu_zap_page() function, then we can:\n\n- traverse hlist safely\n- easily to gather remote tlb flush which occurs during page zapped\n\nThose feature can be used in the later patches\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7ae680eb2d5f0cb10ca0e6d1ff5ecb145befe8e4",
      "tree": "ace3e87b6bccc4e61b32b2b38bb300fb34f9bd2e",
      "parents": [
        "03116aa57e75b1bbe8b5e04f3cd21cdb6588c4ba"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:53:07 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:27 2010 +0300"
      },
      "message": "KVM: MMU: introduce some macros to cleanup hlist traverseing\n\nIntroduce for_each_gfn_sp() and for_each_gfn_indirect_valid_sp() to\ncleanup hlist traverseing\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "03116aa57e75b1bbe8b5e04f3cd21cdb6588c4ba",
      "tree": "9b373610d23da5ff66d8cb7212213770e493bf73",
      "parents": [
        "518c8aee5ca74fc03273fc6b4893cf456d65d545"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Jun 04 21:52:17 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:26 2010 +0300"
      },
      "message": "KVM: MMU: skip invalid sp when unprotect page\n\nIn kvm_mmu_unprotect_page(), the invalid sp can be skipped\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "518c8aee5ca74fc03273fc6b4893cf456d65d545",
      "tree": "db11301916f1477651568ca16b268d4467e7bebd",
      "parents": [
        "7bee342a9e994cce7122cb187b4f3ded9d871165"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Fri Jun 04 08:51:39 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:26 2010 +0300"
      },
      "message": "KVM: VMX: Make sure single type invvpid is supported before issuing invvpid instruction\n\nAccording to SDM, we need check whether single-context INVVPID type is supported\nbefore issuing invvpid instruction.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nReviewed-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7bee342a9e994cce7122cb187b4f3ded9d871165",
      "tree": "16e5b5a01706304258dfdc23afcddde0dcdbc2d6",
      "parents": [
        "3bd89007ab4243b36bc30f5fc4aa8b4f75ff8fc2"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jun 02 17:06:03 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:25 2010 +0300"
      },
      "message": "KVM: x86: use linux/uaccess.h instead of asm/uaccess.h\n\nShould use linux/uaccess.h instead of asm/uaccess.h\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "3bd89007ab4243b36bc30f5fc4aa8b4f75ff8fc2",
      "tree": "767e81b4cbb763a4477e26ef331ffe4e3ffaeaba",
      "parents": [
        "4bc9b9828150747386130ab172f7e868e1a0fc2a"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jun 02 17:01:23 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:25 2010 +0300"
      },
      "message": "KVM: cleanup \"*new.rmap\" type\n\nThe type of \u0027*new.rmap\u0027 is not \u0027struct page *\u0027, fix it\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "4bc9b9828150747386130ab172f7e868e1a0fc2a",
      "tree": "1d0bdff256c67255fa4e80c29e8c001e434f3ad9",
      "parents": [
        "d2d7a61127ced8ce9ec7666991aad1d846932212"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Jun 02 14:05:24 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:25 2010 +0300"
      },
      "message": "KVM: VMX: Enforce EPT pagetable level checking\n\nWe only support 4 levels EPT pagetable now.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "d2d7a61127ced8ce9ec7666991aad1d846932212",
      "tree": "80d51b62b12798e5e98d9ba9f67d7f592ddbd655",
      "parents": [
        "49f6be8ea1bd74713c1a48e42db06a3808dfa2cd"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Tue Jun 01 08:22:48 2010 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:24 2010 +0300"
      },
      "message": "KVM: Add Documentation/kvm/msr.txt\n\nThis patch adds a file that documents the usage of KVM-specific\nMSRs.\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nReviewed-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "49f6be8ea1bd74713c1a48e42db06a3808dfa2cd",
      "tree": "5be35ebab7a049e9358a60b308df981b02f70f21",
      "parents": [
        "5120702e732ed72c7055f511f8dd01de36424569"
      ],
      "author": {
        "name": "Andreas Schwab",
        "email": "schwab@linux-m68k.org",
        "time": "Mon May 31 21:59:13 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:24 2010 +0300"
      },
      "message": "KVM: PPC: elide struct thread_struct instances from stack\n\nInstead of instantiating a whole thread_struct on the stack use only the\nrequired parts of it.\n\nSigned-off-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nTested-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "5120702e732ed72c7055f511f8dd01de36424569",
      "tree": "0294b9e9c71a504d30e50e539e9bb1661e7ac762",
      "parents": [
        "b66d80006e415ee083e59c9429911eab78047f8f"
      ],
      "author": {
        "name": "Mohammed Gamal",
        "email": "m.gamal005@gmail.com",
        "time": "Mon May 31 22:40:54 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:24 2010 +0300"
      },
      "message": "KVM: VMX: Properly return error to userspace on vmentry failure\n\nThe vmexit handler returns KVM_EXIT_UNKNOWN since there is no handler\nfor vmentry failures. This intercepts vmentry failures and returns\nKVM_FAIL_ENTRY to userspace instead.\n\nSigned-off-by: Mohammed Gamal \u003cm.gamal005@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "b66d80006e415ee083e59c9429911eab78047f8f",
      "tree": "0b8ab6cd2f728ab21e05361ce7ff5f1a3c0d3056",
      "parents": [
        "316b95216e277cdb22bd65346f9b9d9e10d0f53d"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Mon May 31 17:11:39 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:24 2010 +0300"
      },
      "message": "KVM: MMU: Don\u0027t calculate quadrant if tdp_enabled\n\nThere\u0027s no need to calculate quadrant if tdp is enabled.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "316b95216e277cdb22bd65346f9b9d9e10d0f53d",
      "tree": "5bd4d6bdd07aa8520c2a6998f0bc1764f97d0d57",
      "parents": [
        "ec87fe2afcbcc4f430554980ec3e408bae34229d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu May 27 16:44:12 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:23 2010 +0300"
      },
      "message": "KVM: MMU: Document large pages\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "ec87fe2afcbcc4f430554980ec3e408bae34229d",
      "tree": "17f5574d13dbd24b75d515d77bd0bf26373e0dab",
      "parents": [
        "8184dd38e22fcaec664c2b98c382b85c26780e26"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu May 27 14:46:04 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:23 2010 +0300"
      },
      "message": "KVM: MMU: Document cr0.wp emulation\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "8184dd38e22fcaec664c2b98c382b85c26780e26",
      "tree": "cf8c6dd4e1e2a2d04cb4d0dfee3b46b9c258937d",
      "parents": [
        "10ab25cd6bf7ee4e5a55d81f203f7dc1a855c27e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu May 27 14:22:51 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:39:23 2010 +0300"
      },
      "message": "KVM: MMU: Allow spte.w\u003d1 for gpte.w\u003d0 and cr0.wp\u003d0 only in shadow mode\n\nWhen tdp is enabled, the guest\u0027s cr0.wp shouldn\u0027t have any effect on spte\npermissions.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    }
  ],
  "next": "10ab25cd6bf7ee4e5a55d81f203f7dc1a855c27e"
}
