)]}'
{
  "log": [
    {
      "commit": "77668791d96436f48fca94255934b67dab924a0f",
      "tree": "15411db379257665a2a1d59d89ac72695b41d217",
      "parents": [
        "39804b20f62532fa05c2a8c3e2d1ae551fd0327b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 22 12:40:30 2007 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:13:59 2007 -0700"
      },
      "message": "KVM: Require CONFIG_ANON_INODES\n\nFound by Sebastian Siewior and randconfig.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4d198d5183ec7bbf8b53216cfc5ded7ebb0ec0c",
      "tree": "7b86e7959f607f1f5015a498515392d8fa480f83",
      "parents": [
        "5c4c1489b93c9dc51cc6e97fd73e325ce94983c0"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Jul 21 09:06:46 2007 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 23:48:47 2007 -0700"
      },
      "message": "KVM: MMU: Fix cleaning up the shadow page allocation cache\n\n__free_page() wants a struct page, not a virtual address.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1158e63dfeb3928e94c768f0a403b3e0e799f70",
      "tree": "03a30831c27255d82d479b0242017fb2e9c342a5",
      "parents": [
        "35f3f28613bc7263949db23a4c7078e425810c8c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jul 20 08:18:27 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jul 20 20:23:59 2007 +0300"
      },
      "message": "KVM: MMU: Fix oopses with SLUB\n\nThe kvm mmu uses page-\u003eprivate on shadow page tables; so does slub, and\nan oops result.  Fix by allocating regular pages for shadows instead of\nusing slub.\n\nTested-by: S.Çağlar Onur \u003ccaglar@pardus.org.tr\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "35f3f28613bc7263949db23a4c7078e425810c8c",
      "tree": "134729d56cf503029e1e667df9bfe30b7410ad3b",
      "parents": [
        "90cb0529dd230548a7f0d6b315997be854caea1b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 17 14:20:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jul 20 20:16:29 2007 +0300"
      },
      "message": "KVM: x86 emulator: implement rdmsr and wrmsr\n\nAllow real-mode emulation of rdmsr and wrmsr.  This allows smp Windows to\nboot, presumably for its sipi trampoline.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "90cb0529dd230548a7f0d6b315997be854caea1b",
      "tree": "31aad8e119781b7df846a8f8d8522a82ff3e4b25",
      "parents": [
        "d55e2cb20123cdb5020ec4a2b2f1eace5038c292"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 17 13:04:56 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jul 20 20:16:29 2007 +0300"
      },
      "message": "KVM: Fix memory slot management functions for guest smp\n\nThe memory slot management functions were oriented against vcpu 0, where\nthey should be kvm-wide.  This causes hangs starting X on guest smp.\n\nFix by making the functions (and resultant tail in the mmu) non-vcpu-specific.\nUnfortunately this reduces the efficiency of the mmu object cache a bit.  We\nmay have to revisit this later.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d55e2cb20123cdb5020ec4a2b2f1eace5038c292",
      "tree": "6a02bb893638ded6448ee78687ee25072ea82360",
      "parents": [
        "2cb7e714229681408e323852bed939989faf6991"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 10 17:50:55 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jul 20 20:16:29 2007 +0300"
      },
      "message": "KVM: MMU: Store nx bit for large page shadows\n\nWe need to distinguish between large page shadows which have the nx bit set\nand those which don\u0027t.  The problem shows up when booting a newer smp Linux\nkernel, where the trampoline page (which is in real mode, which uses the\nsame shadow pages as large pages) is using the same mapping as a kernel data\npage, which is mapped using nx, causing kvm to spin on that page.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "2d9ce177e68645945e3366cfe2d66ee3c28cd4f2",
      "tree": "a98a3a8b0f1e92f0b8f9ecb44b67bb46c3b4451a",
      "parents": [
        "3e1f900bff40460d7bbab0ccd1a9efc3c70aee49"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jul 19 14:30:14 2007 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 14:37:05 2007 -0700"
      },
      "message": "i386: Allow KVM on i386 nonpae\n\nCurrently, CONFIG_X86_CMPXCHG64 both enables boot-time checking of\nthe cmpxchg64b feature and enables compilation of the set_64bit() family.\nSince the option is dependent on PAE, and since KVM depends on set_64bit(),\nthis effectively disables KVM on i386 nopae.\n\nSimplify by removing the config option altogether: the boot check is made\ndependent on CONFIG_X86_PAE directly, and the set_64bit() family is exposed\nwithout constraints.  It is up to users to check for the feature flag (KVM\ndoes not as virtualiation extensions imply its existence).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cec9ad279b66793bee0b5009b7ca311060061efd",
      "tree": "13608d474b725e3c155f2c4387b524743f60d4b8",
      "parents": [
        "4267c41a458cd7d287dc8031468fc385c2f5b2c3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 24 13:11:41 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:51 2007 +0300"
      },
      "message": "KVM: Use CPU_DYING for disabling virtualization\n\nOnly at the CPU_DYING stage can we be sure that no user process will\nbe scheduled onto the cpu and oops when trying to use virtualization\nextensions.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4267c41a458cd7d287dc8031468fc385c2f5b2c3",
      "tree": "00ed5fcc4887e9eae5bb5a59144bf403b61e7e7d",
      "parents": [
        "1b6c016818a562aaea22b1a1b05b15c796b0c2f0"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 24 13:09:41 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:51 2007 +0300"
      },
      "message": "KVM: Tune hotplug/suspend IPIs\n\nThe hotplug IPIs can be called from the cpu on which we are currently\nrunning on, so use on_cpu().  Similarly, drop on_each_cpu() for the\nsuspend/resume callbacks, as we\u0027re in atomic context here and only one\ncpu is up anyway.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1b6c016818a562aaea22b1a1b05b15c796b0c2f0",
      "tree": "e8b96f2992164705b17e5ad3dcf0fa35a9f852da",
      "parents": [
        "a52b1752c077cb919b71167c54968a0b91673281"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 24 13:03:52 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:51 2007 +0300"
      },
      "message": "KVM: Keep track of which cpus have virtualization enabled\n\nBy keeping track of which cpus have virtualization enabled, we\nprevent double-enable or double-disable during hotplug, which is a\nvery fatal oops.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e495606dd09d79f9fa496334ac3958f6ff179d82",
      "tree": "0ee6495edb52286e7f7a67841c461fea36e782da",
      "parents": [
        "d6d281684913dabb878e2f53219eed5df2cd867b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 28 14:15:57 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: Clean up #includes\n\nRemove unnecessary ones, and rearange the remaining in the standard order.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d6d281684913dabb878e2f53219eed5df2cd867b",
      "tree": "73cccb3d6cf1a915fc04f829b27ce4c63324c66d",
      "parents": [
        "6031a61c2ef4cf22b69ef5494aefa54b84a27d2f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 28 08:38:16 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: Remove kvmfs in favor of the anonymous inodes source\n\nkvm uses a pseudo filesystem, kvmfs, to generate inodes, a job that the\nnew anonymous inodes source does much better.\n\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6031a61c2ef4cf22b69ef5494aefa54b84a27d2f",
      "tree": "2e0ccd861da726e76785a0a68a46da06951f1eb0",
      "parents": [
        "796fd1b23e463e98b3e2fc86ed571db06dc945bb"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jun 22 12:29:50 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: SVM: Reliably detect if SVM was disabled by BIOS\n\nThis patch adds an implementation to the svm is_disabled function to\ndetect reliably if the BIOS disabled the SVM feature in the CPU. This\nfixes the issues with kernel panics when loading the kvm-amd module on\nmachines where SVM is available but disabled.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "796fd1b23e463e98b3e2fc86ed571db06dc945bb",
      "tree": "758ae75fddd38aa2a302448dd51539cd97e5fa08",
      "parents": [
        "88a97f0b2fe1cd08d06390dc2669b709ea96e11a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 21 11:54:45 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: VMX: Remove unnecessary code in vmx_tlb_flush()\n\nA vmexit implicitly flushes the tlb; the code is bogus.\n\nNoted by Shaohua Li.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "88a97f0b2fe1cd08d06390dc2669b709ea96e11a",
      "tree": "f6b3db226a0253ae3e2689b09c5f084bba24c967",
      "parents": [
        "75880a01124c6aa5d428bdc14163039a87618be1"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Wed Jun 20 17:13:26 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: MMU: Fix Wrong tlb flush order\n\nNeed to flush the tlb after updating a pte, not before.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "75880a01124c6aa5d428bdc14163039a87618be1",
      "tree": "3ab4e4fd920380aeec0cfc378eaa434f24f8bbde",
      "parents": [
        "a3c870bdce4d34332ebdba7eb9969592c4c6b243"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jun 20 11:20:04 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: VMX: Reinitialize the real-mode tss when entering real mode\n\nProtected mode code may have corrupted the real-mode tss, so re-initialize\nit when switching to real mode.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a3c870bdce4d34332ebdba7eb9969592c4c6b243",
      "tree": "ea0d54e333f133a6e96a56356c5e516fc79e5580",
      "parents": [
        "02c03a326a5df825cc01de426f72e160db2b9538"
      ],
      "author": {
        "name": "Luca Tettamanti",
        "email": "kronos.it@gmail.com",
        "time": "Tue Jun 19 22:41:38 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: Avoid useless memory write when possible\n\nWhen writing to normal memory and the memory area is unchanged the write\ncan be safely skipped, avoiding the costly kvm_mmu_pte_write.\n\nSigned-Off-By: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "02c03a326a5df825cc01de426f72e160db2b9538",
      "tree": "6b6e765fbe03832a7fd68c4c28e7f105875d40ed",
      "parents": [
        "74906345ff9f84f2b3b772d368c7e49f4ba27456"
      ],
      "author": {
        "name": "Luca Tettamanti",
        "email": "kronos.it@gmail.com",
        "time": "Tue Jun 19 22:41:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: Fix x86 emulator writeback\n\nWhen the old value and new one are the same the emulator skips the\nwrite; this is undesirable when the destination is a MMIO area and the\nwrite shall be performed regardless of the previous value. This\noptimization breaks e.g. a Linux guest APIC compiled without\nX86_GOOD_APIC.\n\nRemove the check and perform the writeback stage in the emulation unless\nit\u0027s explicitly disabled (currently push and some 2 bytes instructions\nmay disable the writeback).\n\nSigned-Off-By: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "74906345ff9f84f2b3b772d368c7e49f4ba27456",
      "tree": "c7da7fb64d076e8350233f6d0c3fb8e53a53566f",
      "parents": [
        "ff1dc7942ba8fa4a86619bcb37ed68afae1f69ca"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Tue Jun 19 18:05:03 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: Add support for in-kernel pio handlers\n\nUseful for the PIC and PIT.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ff1dc7942ba8fa4a86619bcb37ed68afae1f69ca",
      "tree": "ea503177a4c6776741c09274a186b518ac9fe9c6",
      "parents": [
        "2eeb2e94eb6232f0895da696c10e6636093ff72b"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Thu May 31 14:08:58 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:48 2007 +0300"
      },
      "message": "KVM: VMX: Fix interrupt checking on lightweight exit\n\nWith kernel-injected interrupts, we need to check for interrupts on\nlightweight exits too.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2eeb2e94eb6232f0895da696c10e6636093ff72b",
      "tree": "2b60e438899054f50ce0e93c33a7dcfee4dc5edc",
      "parents": [
        "d9413cd757a7c96d97ddb46ab4e3e04760ae4c55"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Thu May 31 14:08:53 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: Adds support for in-kernel mmio handlers\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d9413cd757a7c96d97ddb46ab4e3e04760ae4c55",
      "tree": "ed7a2e0c4b2122e78c343ce7c27560992da95bd4",
      "parents": [
        "7f0aaee07b6afcf5a4ee8a1132447621d768076b"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Tue Jun 19 11:21:15 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: Implement emulation of instruction \"ret\" (opcode 0xc3)\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7f0aaee07b6afcf5a4ee8a1132447621d768076b",
      "tree": "3eb2b7e51898db9ee355b2b4e07294ebf5bc44c0",
      "parents": [
        "7700270ee3c1324c18f5b7c36ee5ba1a4165919a"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Tue Jun 19 11:16:04 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: Implement emulation of \"pop reg\" instruction (opcode 0x58-0x5f)\n\nFor use in real mode.\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7700270ee3c1324c18f5b7c36ee5ba1a4165919a",
      "tree": "b5b1f47ca6ab565bcfb7974ea614da6ddebce0a4",
      "parents": [
        "94cea1bb9d050c3200b36420cc03ba744dfd4338"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jun 13 19:55:28 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: VMX: Ensure vcpu time stamp counter is monotonous\n\nIf the time stamp counter goes backwards, a guest delay loop can become\ninfinite.  This can happen if a vcpu is migrated to another cpu, where\nthe counter has a lower value than the first cpu.\n\nSince we\u0027re doing an IPI to the first cpu anyway, we can use that to pick\nup the old tsc, and use that to calculate the adjustment we need to make\nto the tsc offset.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "94cea1bb9d050c3200b36420cc03ba744dfd4338",
      "tree": "7709ef3d5bd40be22ff27bb99dbbe374ef88c86c",
      "parents": [
        "a3870c47891629dae1765358fbaba3c49460f47a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jun 13 19:43:19 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: Initialize the BSP bit in the APIC_BASE msr correctly\n\nNeeds to be set on vcpu 0 only.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a3870c47891629dae1765358fbaba3c49460f47a",
      "tree": "d79c6803f729938dfcf98feb77854444b704abde",
      "parents": [
        "129ee910df90738da950021a9b9784ea43d5f228"
      ],
      "author": {
        "name": "Shani Moideen",
        "email": "shani.moideen@wipro.com",
        "time": "Mon Jun 11 09:31:33 2007 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:47 2007 +0300"
      },
      "message": "KVM: VMX: Replace memset(\u003caddr\u003e, 0, PAGESIZE) with clear_page(\u003caddr\u003e)\n\nSigned-off-by: Shani Moideen \u003cshani.moideen@wipro.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "129ee910df90738da950021a9b9784ea43d5f228",
      "tree": "daaf5b018383c517cfb78990395f5b7d754a0342",
      "parents": [
        "d9e368d61263055eceac2966bb7ea31b89da3425"
      ],
      "author": {
        "name": "Shani Moideen",
        "email": "shani.moideen@wipro.com",
        "time": "Mon Jun 11 09:28:26 2007 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: SVM: Replace memset(\u003caddr\u003e, 0, PAGESIZE) with clear_page(\u003caddr\u003e)\n\nSigned-off-by: Shani Moideen \u003cshani.moideen@wipro.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d9e368d61263055eceac2966bb7ea31b89da3425",
      "tree": "9d507b851ea7bd667cdd50dde640e47e0d4773e9",
      "parents": [
        "39c3b86e5c193e09f69f0e99c93600a4999ffc60"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 07 19:18:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Flush remote tlbs when reducing shadow pte permissions\n\nWhen a vcpu causes a shadow tlb entry to have reduced permissions, it\nmust also clear the tlb on remote vcpus.  We do that by:\n\n- setting a bit on the vcpu that requests a tlb flush before the next entry\n- if the vcpu is currently executing, we send an ipi to make sure it\n  exits before we continue\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "39c3b86e5c193e09f69f0e99c93600a4999ffc60",
      "tree": "94272c98789224f53d4f4f19587a08d95103f837",
      "parents": [
        "72d6e5a08a8ba2105b3f36e32285e8fbfbed1f71"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 07 19:11:53 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Keep an upper bound of initialized vcpus\n\nThat way, we don\u0027t need to loop for KVM_MAX_VCPUS for a single vcpu\nvm.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "72d6e5a08a8ba2105b3f36e32285e8fbfbed1f71",
      "tree": "6d20932e350683760d79f2c6cca6ef3bfafbce96",
      "parents": [
        "d3bef15f84f91c73a5515ad4c6a1749f8f63afcf"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jun 05 16:15:51 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Emulate hlt on real mode for Intel\n\nThis has two use cases: the bios can\u0027t boot from disk, and guest smp\nbootstrap.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d3bef15f84f91c73a5515ad4c6a1749f8f63afcf",
      "tree": "3349c121f16a5fe0e1c30d4370573c2a9ed88bb9",
      "parents": [
        "ef9254df0b3aeba729e26a062803ee7d90437b5e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jun 05 15:53:05 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Move duplicate halt handling code into kvm_main.c\n\nWill soon have a thid user.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ef9254df0b3aeba729e26a062803ee7d90437b5e",
      "tree": "b176b72cbe12a18541aa0b7fa059601bad33aad3",
      "parents": [
        "120e9a453b5e7d9a708caff7d97b71fc4ccd59e8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jun 05 14:37:09 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Enable guest smp\n\nAs we don\u0027t support guest tlb shootdown yet, this is only reliable\nfor real-mode guests.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "120e9a453b5e7d9a708caff7d97b71fc4ccd59e8",
      "tree": "ed86703fbc2f50183f07dbc0fd7ce5dc7560a222",
      "parents": [
        "7b53aa56508479507c6e5667bb252ca7c2cd19cf"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jun 05 14:36:10 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: Fix adding an smp virtual machine to the vm list\n\nIf we add the vm once per vcpu, we corrupt the list if the guest has\nmultiple vcpus.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7b53aa56508479507c6e5667bb252ca7c2cd19cf",
      "tree": "d2020d70e6578f0d6405cba3f3b5a1ccdc62a581",
      "parents": [
        "313899477f7578d37e82ead1af10f794a6da3c90"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jun 05 12:17:03 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: Fix vcpu freeing for guest smp\n\nA vcpu can pin up to four mmu shadow pages, which means the freeing\nloop will never terminate.  Fix by first unpinning shadow pages on\nall vcpus, then freeing shadow pages.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "313899477f7578d37e82ead1af10f794a6da3c90",
      "tree": "cde0a770c58b74e5e62986f5d225e98b78242e82",
      "parents": [
        "50a3485c594d0d52196cde4d208b37cda779fbf3"
      ],
      "author": {
        "name": "Nguyen Anh Quynh",
        "email": "aquynh@gmail.com",
        "time": "Tue Jun 05 10:35:19 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: Remove unnecessary initialization and checks in mark_page_dirty()\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "50a3485c594d0d52196cde4d208b37cda779fbf3",
      "tree": "44e359d6418496354fa815749ed4c4126fa23cb8",
      "parents": [
        "17c3ba9d37dbda490792a2b52953f09d0dee30d6"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sun Jun 03 13:35:29 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: Replace C code with call to ARRAY_SIZE() macro.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "17c3ba9d37dbda490792a2b52953f09d0dee30d6",
      "tree": "44749b8658b61c7aa6cdb38d7823fa061d24b12c",
      "parents": [
        "bd2b2baa5c5fbb08b4b0df7508ff419407f7ece6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jun 04 15:58:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: Lazy guest cr3 switching\n\nSwitch guest paging context may require us to allocate memory, which\nmight fail.  Instead of wiring up error paths everywhere, make context\nswitching lazy and actually do the switch before the next guest entry,\nwhere we can return an error if allocation fails.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bd2b2baa5c5fbb08b4b0df7508ff419407f7ece6",
      "tree": "48cfc0023069b65203741f17586720e48c3f54f9",
      "parents": [
        "b64b3763a5b3868e85330c891e1a30189dcde9b1"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 18:28:51 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:45 2007 +0300"
      },
      "message": "KVM: MMU: Remove unused large page marker\n\nThis has not been used for some time, as the same information is available\nin the page header.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b64b3763a5b3868e85330c891e1a30189dcde9b1",
      "tree": "906df8e5b7b43b0b2ef19a4ab57eeaee40f9d21a",
      "parents": [
        "fd97dc516c372982f9c3637e20b131e1f55ac2f6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 18:24:09 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: MMU: Don\u0027t cache guest access bits in the shadow page table\n\nThis was once used to avoid accessing the guest pte when upgrading\nthe shadow pte from read-only to read-write.  But usually we need\nto set the guest pte dirty or accessed bits anyway, so this wasn\u0027t\nreally exploited.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fd97dc516c372982f9c3637e20b131e1f55ac2f6",
      "tree": "40c86e7691de599286daeebaa942d0392e54e1dd",
      "parents": [
        "4436d466219a6a7874ebc19eb6523c3a9a280dcc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 18:20:14 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: MMU: Simpify accessed/dirty/present/nx bit handling\n\nAlways set the accessed and dirty bit (since having them cleared causes\na read-modify-write cycle), always set the present bit, and copy the\nnx bit from the guest.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4436d466219a6a7874ebc19eb6523c3a9a280dcc",
      "tree": "5e1fb884432621d73ac140816bb848db5903e650",
      "parents": [
        "e663ee64aefc57f7eff7325142206c4ea0200be8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 17:17:06 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: MMU: Remove cr0.wp tricks\n\nNo longer needed as we do everything in one place.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e663ee64aefc57f7eff7325142206c4ea0200be8",
      "tree": "a95c5a1015914ee4101c1770039ad1457e8767c3",
      "parents": [
        "0d551bb698e1328f685ae3611c4a4a96f41bef97"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 15:46:04 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: MMU: Make setting shadow ptes atomic on i386\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0d551bb698e1328f685ae3611c4a4a96f41bef97",
      "tree": "4668ee0dc19571e4f05443555ec0e807692572e6",
      "parents": [
        "a18de5a403f9b5010527b2e7b05049b539b4facd"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 15:23:35 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: Make shadow pte updates atomic\n\nWith guest smp, a second vcpu might see partial updates when the first\nvcpu services a page fault.  So delay all updates until we have figured\nout what the pte should look like.\n\nNote that on i386, this is still not completely atomic as a 64-bit write\nwill be split into two on a 32-bit machine.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a18de5a403f9b5010527b2e7b05049b539b4facd",
      "tree": "7b183d7a4191cebd089702d8512f697c23f23a05",
      "parents": [
        "97a0a01ea9229e4f3f0f06e0584227e9687159a5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 15:14:09 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:44 2007 +0300"
      },
      "message": "KVM: Move shadow pte modifications from set_pte/set_pde to set_pde_common()\n\nWe want all shadow pte modifications in one place.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97a0a01ea9229e4f3f0f06e0584227e9687159a5",
      "tree": "94ca92cafa05c7156757557466fa7887dd47a14f",
      "parents": [
        "63b1ad24d2695db3ec1cc8b10760e130e1a1f04b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 15:08:29 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Fold fix_write_pf() into set_pte_common()\n\nThis prevents some work from being performed twice, and, more importantly,\nreduces the number of places where we modify shadow ptes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "63b1ad24d2695db3ec1cc8b10760e130e1a1f04b",
      "tree": "b1a74434132f0c3398a21d00337bdbef9661eaa8",
      "parents": [
        "6598c8b2420c30b48fc0d1d40d9ef6a1f7312107"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 11:56:54 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Fold fix_read_pf() into set_pte_common()\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6598c8b2420c30b48fc0d1d40d9ef6a1f7312107",
      "tree": "737442b8f7b19da8eff72c738a384e030b1c6a4a",
      "parents": [
        "e60d75ea292071e7ab33c10ca73fdd33fcbbe501"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 31 11:45:18 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Pass the guest pde to set_pte_common\n\nWe will need the accessed bit (in addition to the dirty bit) and\nalso write access (for setting the dirty bit) in a future patch.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e60d75ea292071e7ab33c10ca73fdd33fcbbe501",
      "tree": "85ca6a1b9f0dca02ec166acca4627127312ecf8e",
      "parents": [
        "ef0197e8d9273ad8fbfb1bbd30e46e42a32c79e8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 30 19:31:17 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Move set_pte_common() to pte width dependent code\n\nIn preparation of some modifications.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ef0197e8d9273ad8fbfb1bbd30e46e42a32c79e8",
      "tree": "a3fd2b5306b41cd18b47550e5269940b3321eb75",
      "parents": [
        "d3d25b048b9c7e5c1c20918157a71df734f71766"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 30 14:21:51 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Simplify fetch() a little bit\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d3d25b048b9c7e5c1c20918157a71df734f71766",
      "tree": "3e1f2cf029a1c23497067dfdfeffe69838fe6f0f",
      "parents": [
        "8d7282036f82244c5a1146a1a7edf03c50d278d9"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 30 12:34:53 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:43 2007 +0300"
      },
      "message": "KVM: MMU: Use slab caches for shadow pages and their headers\n\nUse slab caches instead of a simple custom list.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8d7282036f82244c5a1146a1a7edf03c50d278d9",
      "tree": "4d820e730b13862247f7a960b6842b6db24bc4d8",
      "parents": [
        "06ff0d37285094cf9cc25370e6a78ce9bc70ddb0"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Tue May 29 15:07:21 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "KVM: Use symbolic constants instead of magic numbers\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "06ff0d37285094cf9cc25370e6a78ce9bc70ddb0",
      "tree": "acf491e521d39818303bf630ba36cf2a4df5fd59",
      "parents": [
        "687fdbfe64086020e60547bd14773da3762056c1"
      ],
      "author": {
        "name": "Markus Rechberger",
        "email": "markus.rechberger@amd.com",
        "time": "Sun May 27 10:46:52 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "KVM: Fix includes\n\nKVM compilation fails for some .configs.  This fixes it.\n\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "687fdbfe64086020e60547bd14773da3762056c1",
      "tree": "261103dadf733873a64ff2c8af78899454b1a147",
      "parents": [
        "de062065a5293d8f434acb2d6ba5df87ad76bbd9"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 24 11:17:33 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "KVM: x86 emulator: implement wbinvd\n\nVista seems to trigger it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "de062065a5293d8f434acb2d6ba5df87ad76bbd9",
      "tree": "c77066cc365730523373457c259306b593ac207f",
      "parents": [
        "2cc51560aed0edb291341089d3475e1fbe8bfd04"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Wed May 23 14:22:11 2007 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "Use menuconfig objects II - KVM/Virt\n\nMake a \"menuconfig\" out of the Kconfig objects \"menu, ..., endmenu\",\nso that the user can disable all the options in that menu at once\ninstead of having to disable each option separately.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2cc51560aed0edb291341089d3475e1fbe8bfd04",
      "tree": "e4fd63e0e79613fbb7e475dcdd0ea01c370e02a8",
      "parents": [
        "f2be4dd65437c60a4eb222bc40bc8caded62631a"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Mon May 21 07:28:09 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "KVM: VMX: Avoid saving and restoring msr_efer on lightweight vmexit\n\nMSR_EFER.LME/LMA bits are automatically save/restored by VMX\nhardware, KVM only needs to save NX/SCE bits at time of heavy\nweight VM Exit. But clearing NX bits in host envirnment may\ncause system hang if the host page table is using EXB bits,\nthus we leave NX bits as it is. If Host NX\u003d1 and guest NX\u003d0, we\ncan do guest page table EXB bits check before inserting a shadow\npte (though no guest is expecting to see this kind of gp fault).\nIf host NX\u003d0, we present guest no Execute-Disable feature to guest,\nthus no host NX\u003d0, guest NX\u003d1 combination.\n\nThis patch reduces raw vmexit time by ~27%.\n\nMe: fix compile warnings on i386.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f2be4dd65437c60a4eb222bc40bc8caded62631a",
      "tree": "9ed90fbca35e4d9316fc42bc2ab5e02f1b74d155",
      "parents": [
        "a75beee6e4f5d2f0ae6e28cd626b2f157e93afd2"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Sun May 20 10:50:08 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:42 2007 +0300"
      },
      "message": "KVM: VMX: Cleanup redundant code in MSR set\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a75beee6e4f5d2f0ae6e28cd626b2f157e93afd2",
      "tree": "ef5fcd31527f5e211526f65180be2a6f73a1783e",
      "parents": [
        "b3f37707b05e9ce82d5bec660e9d0b15452ee9a0"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Thu May 17 18:55:15 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: VMX: Avoid saving and restoring msrs on lightweight vmexit\n\nIn a lightweight exit (where we exit and reenter the guest without\nscheduling or exiting to userspace in between), we don\u0027t need various\nmsrs on the host, and avoiding shuffling them around reduces raw exit\ntime by 8%.\n\ni386 compile fix by Daniel Hecken \u003cdh@bahntechnik.de\u003e.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b3f37707b05e9ce82d5bec660e9d0b15452ee9a0",
      "tree": "a4d210f6449be292cfd9171c3e3e972ff2773234",
      "parents": [
        "cd2276a795b013d1416c96b38eec90a66cdd10c4"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Thu May 17 15:50:34 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: VMX: Handle #SS faults from real mode\n\nInstructions with address size override prefix opcode 0x67\nCause the #SS fault with 0 error code in VM86 mode.  Forward\nthem to the emulator.\n\nSigned-Off-By: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cd2276a795b013d1416c96b38eec90a66cdd10c4",
      "tree": "bfd0e9c1e151c636e7f74b82c9c34b62ddba0301",
      "parents": [
        "cd0536d7cb4d5d5c5aa37ccd3edd71c4b0524add"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon May 14 20:41:13 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: VMX: Use local labels in inline assembly\n\nThis makes oprofile dumps and disassebly easier to read.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cd0536d7cb4d5d5c5aa37ccd3edd71c4b0524add",
      "tree": "b68b65aa2abdd5a7b7b7085105e4edb51a2255e3",
      "parents": [
        "653e3108b7d6097d25089d25ab4e99bc58b28962"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 08 11:34:07 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: Fix vmx I/O bitmap initialization on highmem systems\n\nkunmap() expects a struct page, not a virtual address.  Fixes an oops loading\nkvm-intel.ko on i386 with CONFIG_HIGHMEM.\n\nThanks to Michael Ivanov \u003cderuhu@peterstar.ru\u003e for reporting.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "653e3108b7d6097d25089d25ab4e99bc58b28962",
      "tree": "ff92977a15ddf12807d3a9f32eb6f5446fb59a79",
      "parents": [
        "eff708bc2bacd4f22cf844871341bef341bd096a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon May 07 10:55:37 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: Avoid corrupting tr in real mode\n\nThe real mode tr needs to be set to a specific tss so that I/O\ninstructions can function.  Divert the new tr values to the real\nmode save area from where they will be restored on transition to\nprotected mode.\n\nThis fixes some crashes on reboot when the bios accesses an I/O\ninstruction.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "eff708bc2bacd4f22cf844871341bef341bd096a",
      "tree": "70fbedf883207909d0c66f3d185e45fe2b949845",
      "parents": [
        "47ad8e689b4f94f9fc3b2588a7aaa65e4eca667c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun May 06 16:10:01 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:41 2007 +0300"
      },
      "message": "KVM: VMX: Only reload guest msrs if they are already loaded\n\nIf we set an msr via an ioctl() instead of by handling a guest exit, we\nhave the host state loaded, so reloading the msrs would clobber host\nstate instead of guest state.\n\nThis fixes a host oops (and loss of a cpu) on a guest reboot.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "47ad8e689b4f94f9fc3b2588a7aaa65e4eca667c",
      "tree": "ee050d3f0a86f937f10bbc2f6e1893201de323af",
      "parents": [
        "4b02d6daa12465b209ec4f50c363f9553a51f45b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun May 06 15:50:58 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:40 2007 +0300"
      },
      "message": "KVM: MMU: Store shadow page tables as kernel virtual addresses, not physical\n\nSimpifies things a bit.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4b02d6daa12465b209ec4f50c363f9553a51f45b",
      "tree": "bf88d7f3bfea2851ba5d7f4b67bef1eee9c2ea48",
      "parents": [
        "2dc7094b5662c4446aa647b257d47a9412fbacc9"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun May 06 15:36:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:40 2007 +0300"
      },
      "message": "KVM: MMU: Simplify kvm_mmu_free_page() a tiny bit\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2dc7094b5662c4446aa647b257d47a9412fbacc9",
      "tree": "485a6492c644235dcc80956d74000cf2e1b63195",
      "parents": [
        "a3a0636725ff172031072434d722b69bf49b7823"
      ],
      "author": {
        "name": "Matthew Gregan",
        "email": "kinetik@flim.org",
        "time": "Sun May 06 10:59:46 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:40 2007 +0300"
      },
      "message": "KVM: Implement IA32_EBL_CR_POWERON msr\n\nAttempting to boot the default \u0027bsd\u0027 kernel of OpenBSD 4.1 i386 in a guest\nfails early in the kernel init inside p3_get_bus_clock while trying to read\nthe IA32_EBL_CR_POWERON MSR.  KVM logs an \u0027unhandled MSR\u0027 message and the\nguest kernel faults.\n\nThis patch is sufficient to allow OpenBSD to boot, after which it seems to\nrun fine.  I\u0027m not sure if this is the correct solution for dealing with\nthis particular MSR, but it works for me.\n\nSigned-off-by: Matthew Gregan \u003ckinetik@flim.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a3a0636725ff172031072434d722b69bf49b7823",
      "tree": "d57029a6f19a671e764ca842f91883d9bff24a4d",
      "parents": [
        "5fd86fcfc0dbdd42296b1182945f7a0a05578211"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 23:06:22 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:40 2007 +0300"
      },
      "message": "KVM: Set cr0.mp for guests\n\nThis allows fwait instructions to be trapped when the guest fpu is not\nloaded.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5fd86fcfc0dbdd42296b1182945f7a0a05578211",
      "tree": "0fffa1f468d9b44f00ee16a5b82bb1c65713d4a6",
      "parents": [
        "abd3f2d622a810b7f6687f7ddb405e90e4cfb7ab"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 20:40:00 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Consolidate guest fpu activation and deactivation\n\nEasier to keep track of where the fpu is this way.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "abd3f2d622a810b7f6687f7ddb405e90e4cfb7ab",
      "tree": "12ae80f61aee8e6ca709db2bf08ed0ab54c431e6",
      "parents": [
        "707c08743060b6721b08df68f4fd546b106e7510"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 17:57:40 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Rationalize exception bitmap usage\n\nEveryone owns a piece of the exception bitmap, but they happily write to\nthe entire thing like there\u0027s no tomorrow.  Centralize handling in\nupdate_exception_bitmap() and have everyone call that.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "707c08743060b6721b08df68f4fd546b106e7510",
      "tree": "f36504b4e1696a36bb63b3bb78edfdf152a59c23",
      "parents": [
        "33ed6329210f3ad0638306bfa46cd3aaf5a5f929"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 17:33:43 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Move some more msr mangling into vmx_save_host_state()\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "33ed6329210f3ad0638306bfa46cd3aaf5a5f929",
      "tree": "6b5b4570641fe071b3544ded46a223a11e9f338f",
      "parents": [
        "7494c0ccbb8fa0903bcb1ced89cc2b79c3624974"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 16:54:03 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Fix potential guest state leak into host\n\nThe lightweight vmexit path avoids saving and reloading certain host\nstate.  However in certain cases lightweight vmexit handling can schedule()\nwhich requires reloading the host state.\n\nSo we store the host state in the vcpu structure, and reloaded it if we\nrelinquish the vcpu.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7494c0ccbb8fa0903bcb1ced89cc2b79c3624974",
      "tree": "356972d612a5dfba6422555b655f41db69d527a8",
      "parents": [
        "0028425f647b6b78a0de8810d6b782fc3ce6c272"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 01 18:24:38 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Increase mmu shadow cache to 1024 pages\n\nThis improves kbuild times by about 10%, bringing it within a respectable\n25% of native.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0028425f647b6b78a0de8810d6b782fc3ce6c272",
      "tree": "8afece215ec531f993c28cc3dee17b0c2c1dd3b1",
      "parents": [
        "fce0657ff9f14f6b1f147b5fcd6db2f54c06424e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 01 16:53:31 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: Update shadow pte on write to guest pte\n\nA typical demand page/copy on write pattern is:\n\n- page fault on vaddr\n- kvm propagates fault to guest\n- guest handles fault, updates pte\n- kvm traps write, clears shadow pte, resumes guest\n- guest returns to userspace, re-faults on same vaddr\n- kvm installs shadow pte, resumes guest\n- guest continues\n\nSo, three vmexits for a single guest page fault.  But if instead of clearing\nthe page table entry, we update to correspond to the value that the guest\nhas just written, we eliminate the third vmexit.\n\nThis patch does exactly that, reducing kbuild time by about 10%.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fce0657ff9f14f6b1f147b5fcd6db2f54c06424e",
      "tree": "e2a1a101f5f77894674738476cb5808327c03f0c",
      "parents": [
        "09072daf37abbfe8e2d5018dd913f229c76190f7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 01 16:44:05 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:39 2007 +0300"
      },
      "message": "KVM: MMU: Respect nonpae pagetable quadrant when zapping ptes\n\nWhen a guest writes to a page that has an mmu shadow, we have to clear\nthe shadow pte corresponding to the memory location touched by the guest.\n\nNow, in nonpae mode, a single guest page may have two or four shadow\npages (because a nonpae page maps 4MB or 4GB, whereas the pae shadow maps\n2MB or 1GB), so we when we look up the page we find up to three additional\naliases for the page.  Since we _clear_ the shadow pte, it doesn\u0027t matter\nexcept for a slight performance penalty, but if we want to _update_ the\nshadow pte instead of clearing it, it is vital that we don\u0027t modify the\naliases.\n\nFortunately, exactly which page is needed (the \"quadrant\") is easily\ncomputed, and is accessible in the shadow page header.  All we need is\nto ignore shadow pages from the wrong quadrants.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "09072daf37abbfe8e2d5018dd913f229c76190f7",
      "tree": "dbccbe493a9412cb89bd48b7c0c8ec21f70cf091",
      "parents": [
        "621358455ae043ab39bc3481f13b101bd6016c8d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 01 14:16:52 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Unify kvm_mmu_pre_write() and kvm_mmu_post_write()\n\nInstead of calling two functions and repeating expensive checks, call one\nfunction and provide it with before/after information.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "621358455ae043ab39bc3481f13b101bd6016c8d",
      "tree": "6266ec89f457c039d94add676f1d798381efae2a",
      "parents": [
        "a25f7e1f8c1ff68213a63dada9d5e32dc1a0f587"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 01 11:32:28 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Be more careful restoring fs on lightweight vmexit\n\ni386 wants fs for accessing the pda even on a lightweight exit, so ensure\nwe can always restore it.  This fixes a regression on i386 introduced by\nthe lightweight vmexit patch.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a25f7e1f8c1ff68213a63dada9d5e32dc1a0f587",
      "tree": "f1c08d4c6f6736561a42dd4d9462fb97db9c75c3",
      "parents": [
        "05e0c8c344dd356b42e81bdf0d47d2b884bf49b5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 30 17:05:38 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Reduce misfirings of the fork detector\n\nThe kvm mmu tries to detects forks by looking for repeated writes to a\npage table.  If it sees a fork, it unshadows the page table so the page\ntable copying can proceed at native speed instead of being emulated.\n\nHowever, the detector also triggered on simple demand paging access patterns:\na linear walk of memory would of course cause repeated writes to the same\npagetable page, causing it to unshadow prematurely.\n\nFix by resetting the fork detector if we detect a demand fault.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "05e0c8c344dd356b42e81bdf0d47d2b884bf49b5",
      "tree": "a5428c93ba4db12244641240a7f6231f396d0333",
      "parents": [
        "e6adf28365b2fca0b5235cabff00c9f3d1e7bdf4"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 30 16:15:58 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Unindent some code\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e6adf28365b2fca0b5235cabff00c9f3d1e7bdf4",
      "tree": "75cdf0f0635a32e9337a4c2e3e5f332cf932f902",
      "parents": [
        "e925c5ba9380dad5fdf1d0a9d9199ac43be74c6a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 30 16:07:54 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Avoid saving and restoring some host CPU state on lightweight vmexit\n\nMany msrs and the like will only be used by the host if we schedule() or\nreturn to userspace.  Therefore, we avoid saving them if we handle the\nexit within the kernel, and if a reschedule is not requested.\n\nBased on a patch from Eddie Dong \u003ceddie.dong@intel.com\u003e with a couple of\nfixes by me.\n\nSigned-off-by: Yaozu(Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e925c5ba9380dad5fdf1d0a9d9199ac43be74c6a",
      "tree": "9de2c9a4530170d77609af5236d8eaf546fd1ec9",
      "parents": [
        "c86813393f8b8f9f738ab57d9837858ed850df4b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 30 14:47:02 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:38 2007 +0300"
      },
      "message": "KVM: Assume that writes smaller than 4 bytes are to non-pagetable pages\n\nThis allows us to remove write protection earlier than otherwise.  Should\nsome mad OS choose to use byte writes to update pagetables, it will suffer\na performance hit, but still work correctly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c86813393f8b8f9f738ab57d9837858ed850df4b",
      "tree": "baaf7859daffb2d4c87749c09bed7dfcfe671468",
      "parents": [
        "fdef3ad1b38660d74a29abc990940b5dbaaf3fc9"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Apr 30 09:48:11 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:37 2007 +0300"
      },
      "message": "KVM: SVM: Allow direct guest access to PC debug port\n\nThe PC debug port is used for IO delay and does not require emulation.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fdef3ad1b38660d74a29abc990940b5dbaaf3fc9",
      "tree": "374039f92105e432f68ec233bce7b92a049c5a7c",
      "parents": [
        "8f41958bdd577731f7411c9605cfaa9db6766809"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Mon Apr 30 09:45:24 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:37 2007 +0300"
      },
      "message": "KVM: VMX: Enable io bitmaps to avoid IO port 0x80 VMEXITs\n\nThis patch enables IO bitmaps control on vmx and unmask the 0x80 port to\navoid VMEXITs caused by accessing port 0x80. 0x80 is used as delays (see\ninclude/asm/io.h), and handling VMEXITs on its access is unnecessary but\nslows things down. This patch improves kernel build test at around\n3%~5%.\n\tBecause every VM uses the same io bitmap, it is shared between\nall VMs rather than a per-VM data structure.\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7702fd1f6fea57921f2e643d27a23a2d0394499c",
      "tree": "9a5275fb2f5eaccc491bfe5d9617c3da7f69aa5a",
      "parents": [
        "22b1a9203ea634ac0ee5240e021613da3328275f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 14 16:27:40 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 15 12:30:59 2007 +0300"
      },
      "message": "KVM: Prevent guest fpu state from leaking into the host\n\nThe lazy fpu changes did not take into account that some vmexit handlers\ncan sleep.  Move loading the guest state into the inner loop so that it\ncan be reloaded if necessary, and move loading the host state into\nvmx_vcpu_put() so it can be performed whenever we relinquish the vcpu.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "39959588f58668472bc7108942a8998acedce911",
      "tree": "16c460db4bacff9b5b0505aa3ed5b3c18f55d50e",
      "parents": [
        "b2b77b233557bde22498a519f650b1ccc91ddb4e"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Jun 01 00:47:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jun 01 08:18:30 2007 -0700"
      },
      "message": "kvm: fix section mismatch warning in kvm-intel.o\n\nFix following section mismatch warning in kvm-intel.o:\nWARNING: o-i386/drivers/kvm/kvm-intel.o(.init.text+0xbd): Section mismatch: reference to .exit.text: (between \u0027hardware_setup\u0027 and \u0027vmx_disabled_by_bios\u0027)\n\nThe function free_kvm_area is used in the function alloc_kvm_area which\nis marked __init.\nThe __exit area is discarded by some archs during link-time if a\nmodule is built-in resulting in an oops.\n\nNote: This warning is only seen by my local copy of modpost\n      but the change will soon hit upstream.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8edc6e03a5c8562dc70a6d969f732bdb355a7e7",
      "tree": "fc86c863655128a7041dfe613d14393d761fa7b9",
      "parents": [
        "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 21 01:22:52 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:18:19 2007 -0700"
      },
      "message": "Detach sched.h from mm.h\n\nFirst thing mm.h does is including sched.h solely for can_do_mlock() inline\nfunction which has \"current\" dereference inside. By dealing with can_do_mlock()\nmm.h can be detached from sched.h which is good. See below, why.\n\nThis patch\na) removes unconditional inclusion of sched.h from mm.h\nb) makes can_do_mlock() normal function in mm/mlock.c\nc) exports can_do_mlock() to not break compilation\nd) adds sched.h inclusions back to files that were getting it indirectly.\ne) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were\n   getting them indirectly\n\nNet result is:\na) mm.h users would get less code to open, read, preprocess, parse, ... if\n   they don\u0027t need sched.h\nb) sched.h stops being dependency for significant number of files:\n   on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,\n   after patch it\u0027s only 3744 (-8.3%).\n\nCross-compile tested on\n\n\tall arm defconfigs, all mips defconfigs, all powerpc defconfigs,\n\talpha alpha-up\n\tarm\n\ti386 i386-up i386-defconfig i386-allnoconfig\n\tia64 ia64-up\n\tm68k\n\tmips\n\tparisc parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-up\n\tsparc sparc-up\n\tsparc64 sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eeca7a36a86db8bfc1945dd7f6f0c22a6b66b31d",
      "tree": "7963466b0106b4daf90f6c5ce039fc2c330335ab",
      "parents": [
        "490f03d6595fade75a9b26e6ea9c9ebb1e4fd05a"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu May 10 15:45:56 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu May 10 15:46:07 2007 +0200"
      },
      "message": "[S390] Kconfig: refine depends statements.\n\nRefine some depends statements to limit their visibility to the\nenvironments that are actually supported.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ff81f70b56dc1cdd3bf2f08414608069db6ef1a",
      "tree": "e0db2209f7a3a0284240e8245b12c7e72a5760b8",
      "parents": [
        "02c83209726270ddf9597deabc45e08f6fc3942c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 16:25:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Remove unused \u0027instruction_length\u0027\n\nAs we no longer emulate in userspace, this is meaningless.  We don\u0027t\ncompute it on SVM anyway.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "02c83209726270ddf9597deabc45e08f6fc3942c",
      "tree": "570c2d96c1daba96ae2891e63b1e55b3959e9aba",
      "parents": [
        "e7df56e4a00358b6975fae3b70dc9df1282d427a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 15:02:17 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Don\u0027t require explicit indication of completion of mmio or pio\n\nIt is illegal not to return from a pio or mmio request without completing\nit, as mmio or pio is an atomic operation.  Therefore, we can simplify\nthe userspace interface by avoiding the completion indication.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e7df56e4a00358b6975fae3b70dc9df1282d427a",
      "tree": "76a19e32d603dcc0936313fbb9e5a1de759a159d",
      "parents": [
        "94dfbdb3894eda2f673b70e20da2743c4a8d3968"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 14 15:54:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Remove extraneous guest entry on mmio read\n\nWhen emulating an mmio read, we actually emulate twice: once to determine\nthe physical address of the mmio, and, after we\u0027ve exited to userspace to\nget the mmio value, we emulate again to place the value in the result\nregister and update any flags.\n\nBut we don\u0027t really need to enter the guest again for that, only to take\nan immediate vmexit.  So, if we detect that we\u0027re doing an mmio read,\nemulate a single instruction before entering the guest again.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "94dfbdb3894eda2f673b70e20da2743c4a8d3968",
      "tree": "74e7a4a31a72ed0e3753e9390189d2e8132ecf0e",
      "parents": [
        "2807696c3791d6dd1dcf20f022eaa2dc7615bc5d"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Sun Apr 29 11:56:06 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: SVM: Only save/restore MSRs when needed\n\nWe only have to save/restore MSR_GS_BASE on every VMEXIT.  The rest can be\nsaved/restored when we leave the VCPU.  Since we don\u0027t emulate the DEBUGCTL\nMSRs and the guest cannot write to them, we don\u0027t have to worry about\nsaving/restoring them at all.\n\nThis shaves a whopping 40% off raw vmexit costs on AMD.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2807696c3791d6dd1dcf20f022eaa2dc7615bc5d",
      "tree": "7a5161b93b9f15264b741aede046992594287d2b",
      "parents": [
        "2ab455ccceb07945368709ba852e49f4c3119331"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 28 21:20:48 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: fix an if() condition\n\nIt might have worked in this case since PT_PRESENT_MASK is 1, but let\u0027s\nexpress this correctly.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2ab455ccceb07945368709ba852e49f4c3119331",
      "tree": "de79805085d8dfcf5714c45e7873116c110bd182",
      "parents": [
        "25c4c2762e31a75403eca0dd59f2cab85e3a2532"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Fri Apr 27 09:29:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: VMX: Add lazy FPU support for VT\n\nOnly save/restore the FPU host state when the guest is actually using the\nFPU.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "25c4c2762e31a75403eca0dd59f2cab85e3a2532",
      "tree": "151c4a309da81608bdf729d701dcbfc3d4e1e9d7",
      "parents": [
        "e0e5127d06957e76da3906b7a58d5d2665e81f59"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Fri Apr 27 09:29:21 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: VMX: Properly shadow the CR0 register in the vcpu struct\n\nSet all of the host mask bits for CR0 so that we can maintain a proper\nshadow of CR0.  This exposes CR0.TS, paving the way for lazy fpu handling.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e0e5127d06957e76da3906b7a58d5d2665e81f59",
      "tree": "765776424d3215b8e16909caa7f7ddc810c484bb",
      "parents": [
        "7807fa6ca5af2e5660a0eb3cd90276ca0c5bdfc8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Apr 25 10:59:52 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: Don\u0027t complain about cpu erratum AA15\n\nIt slows down Windows x64 horribly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7807fa6ca5af2e5660a0eb3cd90276ca0c5bdfc8",
      "tree": "8f97af3538acc40a6a72af29f31351d8f0f69296",
      "parents": [
        "4c690a1e8667a84b61a6114a4ad293681f32cb11"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Apr 23 09:17:21 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: Lazy FPU support for SVM\n\nAvoid saving and restoring the guest fpu state on every exit.  This\nshaves ~100 cycles off the guest/host switch.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4c690a1e8667a84b61a6114a4ad293681f32cb11",
      "tree": "ed5ffaedc83068a7cf791530a2f54483107f3d21",
      "parents": [
        "1165f5fec18c077bdba88e7125fd41f8e3617cb4"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 22 15:28:19 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: Allow passing 64-bit values to the emulated read/write API\n\nThis simplifies the API somewhat (by eliminating the special-case\ncmpxchg8b on i386).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1165f5fec18c077bdba88e7125fd41f8e3617cb4",
      "tree": "a1931bfddfabaa909f4ebd14a5c00a549d1e37ec",
      "parents": [
        "3fca03653010b8c5fa63b99fc94c78cbfb433d00"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Apr 19 17:27:43 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: Per-vcpu statistics\n\nMake the exit statistics per-vcpu instead of global.  This gives a 3.5%\nboost when running one virtual machine per core on my two socket dual core\n(4 cores total) machine.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3fca03653010b8c5fa63b99fc94c78cbfb433d00",
      "tree": "9102be63cdedd172fa1d58959218d1c698df7848",
      "parents": [
        "d6c69ee9a24b307ce94e55ebfba6208a830c9ecb"
      ],
      "author": {
        "name": "Yaozu Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Apr 25 16:49:19 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: VMX: Avoid unnecessary vcpu_load()/vcpu_put() cycles\n\nBy checking if a reschedule is needed, we avoid dropping the vcpu.\n\n[With changes by me, based on Anthony Liguori\u0027s observations]\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d6c69ee9a24b307ce94e55ebfba6208a830c9ecb",
      "tree": "6e3d10f96412932e4e8d3b7cbbc1c0c85189ad6f",
      "parents": [
        "4d56c8a787aefb2e3fc4ac4be966db96c14d1ad8"
      ],
      "author": {
        "name": "Yaozu Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Apr 25 14:17:25 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: MMU: Avoid heavy ASSERT at non debug mode.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ],
  "next": "4d56c8a787aefb2e3fc4ac4be966db96c14d1ad8"
}
