)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "4d56c8a787aefb2e3fc4ac4be966db96c14d1ad8",
      "tree": "99db1bc065832b2685bd5edb75cd7c1019011ead",
      "parents": [
        "35cc7f971188366f5a5c0d5da1456bb38cef5da9"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Apr 19 14:28:44 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: VMX: Only save/restore MSR_K6_STAR if necessary\n\nIntel hosts only support syscall/sysret in long more (and only if efer.sce\nis enabled), so only reload the related MSR_K6_STAR if the guest will\nactually be able to use it.\n\nThis reduces vmexit cost by about 500 cycles (6400 -\u003e 5870) on my setup.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "35cc7f971188366f5a5c0d5da1456bb38cef5da9",
      "tree": "e5e097b3d59199306b72895677bbf9bf213d2550",
      "parents": [
        "e38aea3e9330624d19a233c05f3e69c57519edd5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Apr 19 13:26:39 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: Fold drivers/kvm/kvm_vmx.h into drivers/kvm/vmx.c\n\nNo meat in that file.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e38aea3e9330624d19a233c05f3e69c57519edd5",
      "tree": "68daabdafa535043ab68d01b80642fbf6a4c0977",
      "parents": [
        "2345df8c555ecb92c0c36172c07d5ac321a92dc7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Apr 19 13:22:48 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:30 2007 +0300"
      },
      "message": "KVM: VMX: Don\u0027t switch 64-bit msrs for 32-bit guests\n\nSome msrs are only used by x86_64 instructions, and are therefore\nnot needed when the guest is legacy mode.  By not bothering to switch\nthem, we reduce vmexit latency by 2400 cycles (from about 8800) when\nrunning a 32-bt guest on a 64-bit host.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2345df8c555ecb92c0c36172c07d5ac321a92dc7",
      "tree": "e61e3a6714d4fd06dbddb3d381494e505fd91ff0",
      "parents": [
        "c9047f533373e934b96d19d6a3d313ca2132fbe5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Apr 17 15:30:24 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:29 2007 +0300"
      },
      "message": "KVM: VMX: Reduce unnecessary saving of host msrs\n\nTHe automatically switched msrs are never changed on the host (with\nthe exception of MSR_KERNEL_GS_BASE) and thus there is no need to save\nthem on every vm entry.\n\nThis reduces vmexit latency by ~400 cycles on i386 and by ~900 cycles (10%)\non x86_64.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3964994bb5ba85a3d8b54ae618f7be1cecce916d",
      "tree": "d093a2be86855e37abe7783e257eac4d9eb0ae73",
      "parents": [
        "5008fdf5b6a31240da060c0867d8f16f08ce2384"
      ],
      "author": {
        "name": "Eric Sesterhenn / Snakebyte",
        "email": "snakebyte@gmx.de",
        "time": "Mon Apr 09 16:15:05 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:29 2007 +0300"
      },
      "message": "KVM: Fix overflow bug in overflow detection code\n\nThe expression\n\n   sp - 6 \u003c sp\n\nwhere sp is a u16 is undefined in C since \u0027sp - 6\u0027 is promoted to int,\nand signed overflow is undefined in C.  gcc 4.2 actually warns about it.\nReplace with a simpler test.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "954bbbc236afe23b368abdf4942f313a5f6e1d50",
      "tree": "4c990bff08f7a9a13980deb68a85e091065bb1ec",
      "parents": [
        "e0fa826f969c262c23908953bf85add487cc2e6c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Mar 30 14:02:32 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Simply gfn_to_page()\n\nMapping a guest page to a host page is a common operation.  Currently,\none has first to find the memory slot where the page belongs (gfn_to_memslot),\nthen locate the page itself (gfn_to_page()).\n\nThis is clumsy, and also won\u0027t work well with memory aliases.  So simplify\ngfn_to_page() not to require memory slot translation first, and instead do it\ninternally.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "afeb1f14c5478560262b37431726eb0eb1a42e9e",
      "tree": "ff5613b598ab4e0dcf13426e453c6bcf6075e03e",
      "parents": [
        "36868f7b0efd0b6a1d45fe3b40a6c4bc63222659"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 27 17:50:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:27 2007 +0300"
      },
      "message": "KVM: Remove debug message\n\nNo longer interesting.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "038881c8bec0e9a796d1782c56e29e7c2456626d",
      "tree": "8ca64ffb2f06cb29fa3fda3b9987defc2ece18a4",
      "parents": [
        "024aa1c02f0a9f938af83f55c727bcb18187eba4"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 21 17:58:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:26 2007 +0300"
      },
      "message": "KVM: Hack real-mode segments on vmx from KVM_SET_SREGS\n\nAs usual, we need to mangle segment registers when emulating real mode\nas vm86 has specific constraints.  We special case the reset segment base,\nand set the \"access rights\" (or descriptor flags) to vm86 comaptible values.\n\nThis fixes reboot on vmx.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f6528b03f167785301908bf124db7be591e983ca",
      "tree": "ca52c2a5553d8f0c4bcd7b3a9587fcf00e374731",
      "parents": [
        "8cb5b0333250beb382624f626851a31f601b4830"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 20 18:44:51 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:25 2007 +0300"
      },
      "message": "KVM: Remove set_cr0_no_modeswitch() arch op\n\nset_cr0_no_modeswitch() was a hack to avoid corrupting segment registers.\nAs we now cache the protected mode values on entry to real mode, this\nisn\u0027t an issue anymore, and it interferes with reboot (which usually _is_\na modeswitch).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8cb5b0333250beb382624f626851a31f601b4830",
      "tree": "f2406e4eb5c668f22eb4f53995c1928d9eebf42b",
      "parents": [
        "aac012245a59d78372dc66d292ba567367d86b60"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 20 18:40:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:25 2007 +0300"
      },
      "message": "KVM: Workaround vmx inability to virtualize the reset state\n\nThe reset state has cs.selector \u003d\u003d 0xf000 and cs.base \u003d\u003d 0xffff0000,\nwhich aren\u0027t compatible with vm86 mode, which is used for real mode\nvirtualization.\n\nWhen we create a vcpu, we set cs.base to 0xf0000, but if we get there by\nway of a reset, the values are inconsistent and vmx refuses to enter\nguest mode.\n\nWorkaround by detecting the state and munging it appropriately.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "039576c03c35e2f990ad9bb9c39e1bad3cd60d34",
      "tree": "fa6c81a40a36d2c0da1cf20c5deb45cb9bd7ba95",
      "parents": [
        "f0fe510864a4520a85dfa35ae14f5f376c56efc7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 20 12:46:50 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:25 2007 +0300"
      },
      "message": "KVM: Avoid guest virtual addresses in string pio userspace interface\n\nThe current string pio interface communicates using guest virtual addresses,\nrelying on userspace to translate addresses and to check permissions.  This\ninterface cannot fully support guest smp, as the check needs to take into\naccount two pages at one in case an unaligned string transfer straddles a\npage boundary.\n\nChange the interface not to communicate guest addresses at all; instead use\na buffer page (mmaped by userspace) and do transfers there.  The kernel\nmanages the virtual to physical translation and can perform the checks\natomically by taking the appropriate locks.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1b19f3e61d7e1edb395dd64bf7d63621a37af8ca",
      "tree": "52d90cc6e505f84ec741770950f4f07be45b7fba",
      "parents": [
        "8eb7d334bd8e693340ee198280f7d45035cdab8c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 14:24:03 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add a special exit reason when exiting due to an interrupt\n\nThis is redundant, as we also return -EINTR from the ioctl, but it\nallows us to examine the exit_reason field on resume without seeing\nold data.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8eb7d334bd8e693340ee198280f7d45035cdab8c",
      "tree": "438ec0b6b6c7714e436884576a3fdce84507813f",
      "parents": [
        "b4e63f560beb187cffdaf706e534a1e2f9effb66"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 14:17:08 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Fold kvm_run::exit_type into kvm_run::exit_reason\n\nCurrently, userspace is told about the nature of the last exit from the\nguest using two fields, exit_type and exit_reason, where exit_type has\njust two enumerations (and no need for more).  So fold exit_type into\nexit_reason, reducing the complexity of determining what really happened.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "06465c5a3aa9948a7b00af49cd22ed8f235cdb0f",
      "tree": "2a21941ae6f28445abbb3cc80dd3416cf2241b8d",
      "parents": [
        "46fc1477887c41c8e900f2c95485e222b9a54822"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 28 20:46:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Handle cpuid in the kernel instead of punting to userspace\n\nKVM used to handle cpuid by letting userspace decide what values to\nreturn to the guest.  We now handle cpuid completely in the kernel.  We\nstill let userspace decide which values the guest will see by having\nuserspace set up the value table beforehand (this is necessary to allow\nmanagement software to set the cpu features to the least common denominator,\nso that live migration can work).\n\nThe motivation for the change is that kvm kernel code can be impacted by\ncpuid features, for example the x86 emulator.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "46fc1477887c41c8e900f2c95485e222b9a54822",
      "tree": "ef9d4d4b6fc32f3d6b4e77a87d1b47b6da455574",
      "parents": [
        "9a2bb7f486dc639a1cf2ad803bf2227f0dc0809d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Feb 22 19:39:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Do not communicate to userspace through cpu registers during PIO\n\nCurrently when passing the a PIO emulation request to userspace, we\nrely on userspace updating %rax (on \u0027in\u0027 instructions) and %rsi/%rdi/%rcx\n(on string instructions).  This (a) requires two extra ioctls for getting\nand setting the registers and (b) is unfriendly to non-x86 archs, when\nthey get kvm ports.\n\nSo fix by doing the register fixups in the kernel and passing to userspace\nonly an abstract description of the PIO to be done.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "510043da8582ad49d22a1e9a6b211e6ede10cd2e",
      "tree": "0ded38e3d2fb77d02c59a6afce464d15d75e1cca",
      "parents": [
        "9b22bf578332d3e326c349bc8a8789af3d952435"
      ],
      "author": {
        "name": "Dor Laor",
        "email": "dor.laor@qumranet.com",
        "time": "Mon Feb 19 18:25:43 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:22 2007 +0300"
      },
      "message": "KVM: Use the generic skip_emulated_instruction() in hypercall code\n\nInstead of twiddling the rip registers directly, use the\nskip_emulated_instruction() function to do that for us.\n\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6d9658df07789a124e5c1f8677afcd7773439f3e",
      "tree": "ad7b6c562c1d52f9794508c0e29ff18e73bc795e",
      "parents": [
        "6af11b9e827aac1d664ccd31e94f122c7698416b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 11 13:52:33 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 27 17:55:48 2007 +0200"
      },
      "message": "KVM: always reload segment selectors\n\nfailed VM entry on VMX might still change %fs or %gs, thus make sure\nthat KVM always reloads the segment selectors. This is crutial on both\nx86 and x86_64: x86 has __KERNEL_PDA in %fs on which things like\n\u0027current\u0027 depends and x86_64 has 0 there and needs MSR_GS_BASE to work.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6af11b9e827aac1d664ccd31e94f122c7698416b",
      "tree": "469d01dce403c23a068d7f9e266d45b8ced80776",
      "parents": [
        "703071b5b93d88d5acb0edd5b9dd86c69ad970f2"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 19 13:18:10 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 27 17:54:38 2007 +0200"
      },
      "message": "KVM: Prevent system selectors leaking into guest on real-\u003eprotected mode transition on vmx\n\nIntel virtualization extensions do not support virtualizing real mode.  So\nkvm uses virtualized vm86 mode to run real mode code.  Unfortunately, this\nvirtualized vm86 mode does not support the so called \"big real\" mode, where\nthe segment selector and base do not agree with each other according to the\nreal mode rules (base \u003d\u003d selector \u003c\u003c 4).\n\nTo work around this, kvm checks whether a selector/base pair violates the\nvirtualized vm86 rules, and if so, forces it into conformance.  On a\ntransition back to protected mode, if we see that the guest did not touch\na forced segment, we restore it back to the original protected mode value.\n\nThis pile of hacks breaks down if the gdt has changed in real mode, as it\ncan cause a segment selector to point to a system descriptor instead of a\nnormal data segment.  In fact, this happens with the Windows bootloader\nand the qemu acpi bios, where a protected mode memcpy routine issues an\ninnocent \u0027pop %es\u0027 and traps on an attempt to load a system descriptor.\n\n\"Fix\" by checking if the to-be-restored selector points at a system segment,\nand if so, coercing it into a normal data segment.  The long term solution,\nof course, is to abandon vm86 mode and use emulation for big real mode.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f5b42c3324494ea3f9bf795e2a7e4d3cbb06c607",
      "tree": "98019c1e0f8d6ac45386dea3f4d5eab356ea864c",
      "parents": [
        "ca45aaae1ef98890ac4e3ee48d65aa22401fd1dc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 06 12:05:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 18 10:49:06 2007 +0200"
      },
      "message": "KVM: Fix guest sysenter on vmx\n\nThe vmx code currently treats the guest\u0027s sysenter support msrs as 32-bit\nvalues, which breaks 32-bit compat mode userspace on 64-bit guests.  Fix by\nusing the native word width of the machine.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bccf2150fe62dda5fb09efa2f64d2a234694eb48",
      "tree": "b5e6fc6440b864ddd1c32c4cee1916a0c5484c63",
      "parents": [
        "c5ea76600653b1a242321734435cb1c54778941a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 18:04:26 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Per-vcpu inodes\n\nAllocate a distinct inode for every vcpu in a VM.  This has the following\nbenefits:\n\n - the filp cachelines are no longer bounced when f_count is incremented on\n   every ioctl()\n - the API and internal code are distinctly clearer; for example, on the\n   KVM_GET_REGS ioctl, there is no need to copy the vcpu number from\n   userspace and then copy the registers back; the vcpu identity is derived\n   from the fd used to make the call\n\nRight now the performance benefits are completely theoretical since (a) we\ndon\u0027t support more than one vcpu per VM and (b) virtualization hardware\ninefficiencies completely everwhelm any cacheline bouncing effects.  But\nboth of these will change, and we need to prepare the API today.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "270fd9b96f5fcb7df15d3ca6166545d4aa0f3ee9",
      "tree": "06dcbab8d87b120ddf80ed4e184743fe542b4da8",
      "parents": [
        "02e235bc8eebf8a6fef10d46479b3c18f3e9c4f2"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 19 14:37:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:41 2007 +0200"
      },
      "message": "KVM: Wire up hypercall handlers to a central arch-independent location\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c21415e84334af679630f6450ceb8929a5234fad",
      "tree": "6f9ce30c9fd97a3fc94e79e1450fda86f612b56e",
      "parents": [
        "102d8325a1d2f266d3d0a03fdde948544e72c12d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 19 14:37:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:40 2007 +0200"
      },
      "message": "KVM: Add host hypercall support for vmx\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "102d8325a1d2f266d3d0a03fdde948544e72c12d",
      "tree": "21024c8b9b2b702c79200343e26f14f075da0479",
      "parents": [
        "5972e9535e94bf875eb8eab8a667ba04c7583874"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 19 14:37:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:40 2007 +0200"
      },
      "message": "KVM: add MSR based hypercall API\n\nThis adds a special MSR based hypercall API to KVM. This is to be\nused by paravirtual kernels and virtual drivers.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9d8f549dc69b1fc65d0b03916c02f12ca49b3ea0",
      "tree": "938b47ff9c507b266ea57713cc2233b59b6850df",
      "parents": [
        "de979caacca51c929d2cc2f0f79611ee4a1bc8a5"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Mon Feb 19 14:37:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:39 2007 +0200"
      },
      "message": "KVM: Use ARRAY_SIZE macro instead of manual calculation.\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "de979caacca51c929d2cc2f0f79611ee4a1bc8a5",
      "tree": "d0a89aee5efdf8e65010dfcf718d600cd78ce0d9",
      "parents": [
        "d27d4aca184ac0ca6b7e32caf79e1c2b91959be9"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Feb 19 14:37:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:39 2007 +0200"
      },
      "message": "KVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch\n\nThe whole thing is rotten, but this allows vmx to boot with the guest reboot\nfix.\n\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d27d4aca184ac0ca6b7e32caf79e1c2b91959be9",
      "tree": "048e9ea24b55ac63783cc6cc3495d0feb5de57d0",
      "parents": [
        "43934a38d7cb39ff33baedc7f2c40a2a891116fa"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 19 14:37:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:39 2007 +0200"
      },
      "message": "KVM: Cosmetics\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "464d1a78fbf8cf6c7fd970e7b3e2db50a320ce28",
      "tree": "536d8a92976e675b484b35dec88d40c97fab8ac8",
      "parents": [
        "54413927f022292aeccadd268fbf1c0b42129945"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue Feb 13 13:26:20 2007 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Feb 13 13:26:20 2007 +0100"
      },
      "message": "[PATCH] i386: Convert i386 PDA code to use %fs\n\nConvert the PDA code to use %fs rather than %gs as the segment for\nper-processor data.  This is because some processors show a small but\nmeasurable performance gain for reloading a NULL segment selector (as %fs\ngenerally is in user-space) versus a non-NULL one (as %gs generally is).\n\nOn modern processors the difference is very small, perhaps undetectable.\nSome old AMD \"K6 3D+\" processors are noticably slower when %fs is used\nrather than %gs; I have no idea why this might be, but I think they\u0027re\nsufficiently rare that it doesn\u0027t matter much.\n\nThis patch also fixes the math emulator, which had not been adjusted to\nmatch the changed struct pt_regs.\n\n[frederik.deweerdt@gmail.com: fixit with gdb]\n[mingo@elte.hu: Fix KVM too]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Ian Campbell \u003cIan.Campbell@XenSource.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "774c47f1d78e373a6bd2964f4e278d1ce26c21cb",
      "tree": "665fe9939425d7b4a16b97241e784f4183bd9558",
      "parents": [
        "8d0be2b3bf4a55606967d7d84e56c52521e94333"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:47 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:41 2007 -0800"
      },
      "message": "[PATCH] KVM: cpu hotplug support\n\nOn hotplug, we execute the hardware extension enable sequence.  On unplug, we\ndecache any vcpus that last ran on the exiting cpu, and execute the hardware\nextension disable sequence.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d0be2b3bf4a55606967d7d84e56c52521e94333",
      "tree": "25708d831300f807a29ed90fae7a6e692ff392be",
      "parents": [
        "133de9021d2988f3fbdad84c2d26484c7a757526"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:46 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:41 2007 -0800"
      },
      "message": "[PATCH] KVM: VMX: add vcpu_clear()\n\nLike the inline code it replaces, this function decaches the vmcs from the cpu\nit last executed on.  in addition:\n\n - vcpu_clear() works if the last cpu is also the cpu we\u0027re running on\n - it is faster on larger smps by virtue of using smp_call_function_single()\n\nIncludes fix from Ingo Molnar.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26bb83a755593a53bd248e20d699b0c813f1e238",
      "tree": "8ab2636e03593fe7dd6149aaaae4997fc71a44cd",
      "parents": [
        "54810342f1372afdaf6cb9a6aea0c35df187db12"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: VMX: Reload ds and es even in 64-bit mode\n\nOr 32-bit userspace will get confused.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "988ad74ff6107d9a490ee193e41251e27d37c95f",
      "tree": "e9c84f547405951a13b53f9d08e343a46147e070",
      "parents": [
        "e119d117a1d16e71876144188c0e0b3ecb8aeede"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: vmx: handle triple faults by returning EXIT_REASON_SHUTDOWN to userspace\n\nJust like svm.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96958231cea5985e32db2ae1125ec20483e3556b",
      "tree": "f8a6a89db6ecd5af726e3e65c55cb122cf29841d",
      "parents": [
        "54fb996ac15c4014fa4d6b0ec8e42da134204897"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 12 00:54:33 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: optimize inline assembly\n\nForms like \"0(%rsp)\" generate an instruction with an unnecessary one byte\ndisplacement under certain circumstances.  replace with the equivalent\n\"(%rsp)\".\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b6d44c7bde7f927b7b70e9f56c22c66c0066277",
      "tree": "7246847130b1768908c7c87fef2dc99028e29300",
      "parents": [
        "5b71bddb78df5e292ae90f7603a996e51b3ecb88"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Feb 09 16:38:40 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 09 09:14:07 2007 -0800"
      },
      "message": "[PATCH] kvm: NULL noise removal\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "432bd6cbf9f016f5480153b1cdfbd046f8d4fb1e",
      "tree": "0398665da71dc09ec7d9f97f627d20e9ba06d658",
      "parents": [
        "6a4c24ec52128c1f57b7d2d24cf4dd13fc23f474"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 31 23:48:13 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 01 16:22:41 2007 -0800"
      },
      "message": "[PATCH] KVM: fix lockup on 32-bit intel hosts with nx disabled in the bios\n\nIntel hosts, without long mode, and with nx support disabled in the bios\nhave an efer that is readable but not writable.  This causes a lockup on\nswitch to guest mode (even though it should exit with reason 34 according\nto the documentation).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cccf748b810832cfab4dbb3ed4c7cf1a1ee35ad2",
      "tree": "619dc213603cebf690b0022c819210175aa0ae52",
      "parents": [
        "084384754ebe6636f9e5554ad30b3143b4a26c84"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jan 22 20:40:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 07:52:06 2007 -0800"
      },
      "message": "[PATCH] KVM: fix race between mmio reads and injected interrupts\n\nThe kvm mmio read path looks like:\n\n 1. guest read faults\n 2. kvm emulates read, calls emulator_read_emulated()\n 3. fails as a read requires userspace help\n 4. exit to userspace\n 5. userspace emulates read, kvm sets vcpu-\u003emmio_read_completed\n 6. re-enter guest, fault again\n 7. kvm emulates read, calls emulator_read_emulated()\n 8. succeeds as vcpu-\u003emmio_read_emulated is set\n 9. instruction completes and guest is resumed\n\nA problem surfaces if the userspace exit (step 5) also requests an interrupt\ninjection.  In that case, the guest does not re-execute the original\ninstruction, but the interrupt handler.  The next time an mmio read is\nexectued (likely for a different address), step 3 will find\nvcpu-\u003emmio_read_completed set and return the value read for the original\ninstruction.\n\nThe problem manifested itself in a few annoying ways:\n- little squares appear randomly on console when switching virtual terminals\n- ne2000 fails under nfs read load\n- rtl8139 complains about \"pci errors\" even though the device model is\n  incapable of issuing them.\n\nFix by skipping interrupt injection if an mmio read is pending.\n\nA better fix is to avoid re-entry into the guest, and re-emulating immediately\ninstead.  However that\u0027s a bit more complex.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e00154891137e3b0659556b877d45a16cabd700c",
      "tree": "431b72f6cbdcca102eb619f4a00f8b9d0849a843",
      "parents": [
        "46fd906131bfae831b56a1e64dd94956626fc07c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jan 23 14:10:00 2007 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 22 19:27:02 2007 -0800"
      },
      "message": "[PATCH] vmx: Fix register constraint in launch code\n\nBoth \"\u003dr\" and \"\u003dg\" breaks my build on i386:\n\n  $ make\n    CC [M]  drivers/kvm/vmx.o\n  {standard input}: Assembler messages:\n  {standard input}:3318: Error: bad register name `%sil\u0027\n  make[1]: *** [drivers/kvm/vmx.o] Error 1\n  make: *** [_module_drivers/kvm] Error 2\n\nThe reason is that setbe requires an 8-bit register but \"\u003dr\" does not\nconstrain the target register to be one that has an 8-bit version on\ni386.\n\nAccording to\n\n\thttp://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d10153\n\nthe correct constraint is \"\u003dq\".\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07031e14c1127fc7e1a5b98dfcc59f434e025104",
      "tree": "be4f545e674c529abb0f51c8b87e1f7137c9acb6",
      "parents": [
        "e3881a6816b45668df60a426e5c3431ece1539a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 10 23:15:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] KVM: add VM-exit profiling\n\nThis adds the profile\u003dkvm boot option, which enables KVM to profile VM\nexits.\n\nUse: \"readprofile -m ./System.map | sort -n\" to see the resulting\noutput:\n\n   [...]\n   18246 serial_out                               148.3415\n   18945 native_flush_tlb                         378.9000\n   23618 serial_in                                212.7748\n   29279 __spin_unlock_irq                        622.9574\n   43447 native_apic_write                        2068.9048\n   52702 enable_8259A_irq                         742.2817\n   54250 vgacon_scroll                             89.3740\n   67394 ide_inb                                  6126.7273\n   79514 copy_page_range                           98.1654\n   84868 do_wp_page                                86.6000\n  140266 pit_read                                 783.6089\n  151436 ide_outb                                 25239.3333\n  152668 native_io_delay                          21809.7143\n  174783 mask_and_ack_8259A                       783.7803\n  362404 native_set_pte_at                        36240.4000\n 1688747 total                                      0.5009\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "022a93080c269e913793bea3a9a7fed06ca7d29b",
      "tree": "2d7306a5206bb4c9cc147b0b1ed06e211695be10",
      "parents": [
        "68a99f6d37aa65e848e09ec6ea52848e93bd5de2"
      ],
      "author": {
        "name": "Dor Laor",
        "email": "dor.laor@qumranet.com",
        "time": "Fri Jan 05 16:37:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:28 2007 -0800"
      },
      "message": "[PATCH] KVM: Simplify test for interrupt window\n\nNo need to test for rflags.if as both VT and SVM specs assure us that on exit\ncaused from interrupt window opening, \u0027if\u0027 is set.\n\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4db9c47c052b89d89f43d12879690c1b3283b887",
      "tree": "da245a1c1a118828f341bc3a23009e4bfd9b847f",
      "parents": [
        "cc1d8955cbfb9f32f432cc5033f6ef291e6f7f1e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:58 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:28 2007 -0800"
      },
      "message": "[PATCH] KVM: Don\u0027t set guest cr3 from vmx_vcpu_setup()\n\nIt overwrites the right cr3 set from mmu setup.  Happens only with the test\nharness.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e52de1b8cf85aa2ccaaa253b4397c6d6cc0d4897",
      "tree": "70699f72b67d0d62a614248a935925c497847241",
      "parents": [
        "37a7d8b046da6254718be1409140cd7bf3126f8f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:56 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:27 2007 -0800"
      },
      "message": "[PATCH] KVM: Improve reporting of vmwrite errors\n\nThis will allow us to see the root cause when a vmwrite error happens.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e2dec939db126989808853d218e426daaeebc9e2",
      "tree": "5c742e609e43090df396fc1c7a6b4c526099dbea",
      "parents": [
        "714b93da1a6d97307dfafb9915517879d8a66c0d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:54 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:27 2007 -0800"
      },
      "message": "[PATCH] KVM: MMU: Detect oom conditions and propagate error to userspace\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5f015a5b28c75bb6cc5158640db58689b1ee1b51",
      "tree": "7b103d11d256bfc83c8cd61841cdb893d2b09617",
      "parents": [
        "ebeace8609205bf5e1b96fe325b7dea148042232"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:47 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:25 2007 -0800"
      },
      "message": "[PATCH] KVM: MMU: Remove invlpg interception\n\nSince we write protect shadowed guest page tables, there is no need to trap\npage invalidations (the guest will always change the mapping before issuing\nthe invlpg instruction).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebeace8609205bf5e1b96fe325b7dea148042232",
      "tree": "863991639d7df2a4aa5fd8b20b6b3a28c2cc2cda",
      "parents": [
        "cc4529efc7b730b596d9c7d5a917c00a357e92aa"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:47 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:25 2007 -0800"
      },
      "message": "[PATCH] KVM: MMU: oom handling\n\nWhen beginning to process a page fault, make sure we have enough shadow pages\navailable to service the fault.  If not, free some pages.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "399badf315bd4dd571b4b3b7cf666d9a2af40229",
      "tree": "5c84e0392454df650cb4ce25d6bfcb3bac843bc3",
      "parents": [
        "cb26b572dc39467ba0969d1a76c2f723d2d6a2a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 05 16:36:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:23 2007 -0800"
      },
      "message": "[PATCH] KVM: Prevent stale bits in cr0 and cr4\n\nHardware virtualization implementations allow the guests to freely change some\nof the bits in cr0 and cr4, but trap when changing the other bits.  This is\nuseful to avoid excessive exits due to changing, for example, the ts flag.\n\nIt also means the kvm\u0027s copy of cr0 and cr4 may be stale with respect to these\nbits.  most of the time this doesn\u0027t matter as these bits are not very\ninteresting.  Other times, however (for example when returning cr0 to\nuserspace), they are, so get the fresh contents of these bits from the guest\nby means of a new arch operation.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c1150d8cf9e9d2b356fab52d79f2366985e5511b",
      "tree": "dbd50c3e064c22dcab7ce4acc7236370c6750923",
      "parents": [
        "e097f35ce58eb8d687f3a300247cf1a978fcea39"
      ],
      "author": {
        "name": "Dor Laor",
        "email": "dor.laor@qumranet.com",
        "time": "Fri Jan 05 16:36:24 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:22 2007 -0800"
      },
      "message": "[PATCH] KVM: Improve interrupt response\n\nThe current interrupt injection mechanism might delay an interrupt under\nthe following circumstances:\n\n - if injection fails because the guest is not interruptible (rflags.IF clear,\n   or after a \u0027mov ss\u0027 or \u0027sti\u0027 instruction).  Userspace can check rflags,\n   but the other cases or not testable under the current API.\n - if injection fails because of a fault during delivery.  This probably\n   never happens under normal guests.\n - if injection fails due to a physical interrupt causing a vmexit so that\n   it can be handled by the host.\n\nIn all cases the guest proceeds without processing the interrupt, reducing\nthe interactive feel and interrupt throughput of the guest.\n\nThis patch fixes the situation by allowing userspace to request an exit\nwhen the \u0027interrupt window\u0027 opens, so that it can re-inject the interrupt\nat the right time.  Guest interactivity is very visibly improved.\n\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3b2c33860d4acdfe3ac29b40b03e655eb8d1e2c",
      "tree": "390bb24d9d614473a3c0d06582f29ca94b28a5a3",
      "parents": [
        "965b58a550b6f84815cb555e6abb953e863f1610"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 05 16:36:23 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:22 2007 -0800"
      },
      "message": "[PATCH] KVM: Use raw_smp_processor_id() instead of smp_processor_id() where applicable\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "965b58a550b6f84815cb555e6abb953e863f1610",
      "tree": "bb21eb8c919f78662d422528126cffdbe1352983",
      "parents": [
        "cd36beec0b83d28dceb85696a23542bf1b97cc8c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 05 16:36:23 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:21 2007 -0800"
      },
      "message": "[PATCH] KVM: Fix GFP_KERNEL alloc in atomic section bug\n\nKVM does kmalloc() in an atomic section while having preemption disabled via\nvcpu_load().  Fix this by moving the -\u003e*_msr setup from the vcpu_setup method\nto the vcpu_create method.\n\n(This is also a small speedup for setting up a vcpu, which can in theory be\nmore frequent than the vcpu_create method).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c68876fd2846d2aaf9770276db244b46f2bf52c7",
      "tree": "482214c7936ae8d3ec74352a689815f01dcdbe49",
      "parents": [
        "a8d13ea28bcb63baf69aba84b61cad4c3ff7adb9"
      ],
      "author": {
        "name": "Nguyen Anh Quynh",
        "email": "aquynh@gmail.com",
        "time": "Fri Dec 29 16:49:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:44 2006 -0800"
      },
      "message": "[PATCH] KVM: Rename some msrs\n\nNo need to append _MSR to msr names, a prefix should suffice.\n\nSigned-off-by: Nguyen Anh Quynh \u003caquynh@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3bab1f5dda3443043cc8fe68c5ae75530339f28f",
      "tree": "d1b675e8f5328094c1a3d651da5e7563ad692252",
      "parents": [
        "671d6564796e0c90398aab30f89b5e48fc5a3fbe"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 29 16:49:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:44 2006 -0800"
      },
      "message": "[PATCH] KVM: Move common msr handling to arch independent code\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "671d6564796e0c90398aab30f89b5e48fc5a3fbe",
      "tree": "9e8b0712f44f8b86e48a876b9a6b8db3836e67c4",
      "parents": [
        "09db28b8a3765a7ec35eba80420c71a7973f5a88"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 29 16:49:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:44 2006 -0800"
      },
      "message": "[PATCH] KVM: Implement a few system configuration msrs\n\nResolves sourceforge bug 1622229 (guest crashes running benchmark software).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9058ecd3cd72634cf548588ce79b3f225c9ca32",
      "tree": "11d1edd2dfdcec03ba6b54b3b06d41cae826b940",
      "parents": [
        "1e885461f02259d75e7480a70d291d2d8aaa938e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 29 16:49:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:44 2006 -0800"
      },
      "message": "[PATCH] KVM: Simplify is_long_mode()\n\nInstead of doing tricky stuff with the arch dependent virtualization\nregisters, take a peek at the guest\u0027s efer.\n\nThis simlifies some code, and fixes some confusion in the mmu branch.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f8e3d365a30a8788d4c348e2885bac9640bf4d0",
      "tree": "2ad622927aecff10190154c19cbc841d33231123",
      "parents": [
        "abacf8dff911ecc11513dff162d7990aa8ed2da0"
      ],
      "author": {
        "name": "Michael Riepe",
        "email": "michael@mr511.de",
        "time": "Fri Dec 22 01:05:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:46 2006 -0800"
      },
      "message": "[PATCH] KVM: Handle p5 mce msrs\n\nThis allows plan9 to get a little further booting.\n\nSigned-off-by: Michael Riepe \u003cmichael@mr511.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abacf8dff911ecc11513dff162d7990aa8ed2da0",
      "tree": "07b94b22dbdb94b1864f0a13c761a1d29bac9589",
      "parents": [
        "bf591b24d07126143356058966d79423661f491f"
      ],
      "author": {
        "name": "Michael Riepe",
        "email": "michael@mr511.de",
        "time": "Fri Dec 22 01:05:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:46 2006 -0800"
      },
      "message": "[PATCH] KVM: Force real-mode cs limit to 64K\n\nThis allows opensolaris to boot on kvm/intel.\n\nSigned-off-by: Michael Riepe \u003cmichael@mr511.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bfdc0c280a497575670e87efa89e78a88438483b",
      "tree": "6c7a3ee533f9f163393e61efa3e57e3e72bddf82",
      "parents": [
        "3b99ab242145c99ec8781dc267ec100e7f23ef9d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Dec 13 00:34:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:48 2006 -0800"
      },
      "message": "[PATCH] KVM: Fix vmx hardware_enable() on macbooks\n\nIt seems macbooks set bit 2 but not bit 0, which is an \"enabled but vmxon will\nfault\" setting.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nTested-by: Alex Larsson (sometimes testing helps)\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b99ab242145c99ec8781dc267ec100e7f23ef9d",
      "tree": "b382de90fcd739843807a22c933f1efd798f4ac8",
      "parents": [
        "873a7c423bf8f12bff48a4b8963b32be568b4fcf"
      ],
      "author": {
        "name": "Michael Riepe",
        "email": "michael@mr511.de",
        "time": "Wed Dec 13 00:34:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:48 2006 -0800"
      },
      "message": "[PATCH] KVM: Don\u0027t touch the virtual apic vt registers on 32-bit\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "873a7c423bf8f12bff48a4b8963b32be568b4fcf",
      "tree": "947beeefe93c4b90807d188ec15271218673a3f5",
      "parents": [
        "802ba064c49f655d20fed563f2a4924c8256ea10"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Dec 13 00:34:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:48 2006 -0800"
      },
      "message": "[PATCH] KVM: Disallow the kvm-amd module on intel hardware, and vice versa\n\nThey\u0027re not on speaking terms.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7725f0badd6682e5bcc06f38eedf0123712a3f60",
      "tree": "bee0e576e61c4551658f3ae463964815baf41691",
      "parents": [
        "f7fbf1fdf0d79241f5cc95310b96f0c52452ab39"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Dec 13 00:34:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:47 2006 -0800"
      },
      "message": "[PATCH] KVM: Move find_vmx_entry() to vmx.c\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7fbf1fdf0d79241f5cc95310b96f0c52452ab39",
      "tree": "e56bcb3ccb56517279a8727603087813722eb7f4",
      "parents": [
        "acd19499e9724615d720b29c74be6b218ce765c6"
      ],
      "author": {
        "name": "Uri Lublin",
        "email": "uril@qumranet.com",
        "time": "Wed Dec 13 00:34:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:47 2006 -0800"
      },
      "message": "[PATCH] KVM: Make the GET_SREGS and SET_SREGS ioctls symmetric\n\nThis makes the SET_SREGS ioctl behave symmetrically to the GET_SREGS ioctl wrt\nthe segment access rights flag.\n\nSigned-off-by: Uri Lublin \u003curil@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05b3e0c2c791a70bf0735aaec53cdf6d340eef85",
      "tree": "cfdc46f216e5a7996972ff88681dd03bed9b0022",
      "parents": [
        "5aff458e9c90df55d6badabd89a1a063a80d9768"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Dec 13 00:33:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:46 2006 -0800"
      },
      "message": "[PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64\n\nAs per akpm\u0027s request.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b3be0d1cc8a56468e0cb35ab3895f265d8e5cc6",
      "tree": "76c78268f485f1aa31cf431a81399630c1fd6eab",
      "parents": [
        "a311f74329ee15cfae9576a45feefc1e935ca0c5"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "anthony@codemonkey.ws",
        "time": "Wed Dec 13 00:33:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:46 2006 -0800"
      },
      "message": "[PATCH] KVM: Add missing include\n\nload_TR_desc() lives in asm/desc.h, so #include that file.\n\nSigned-off-by: Anthony Liguori \u003canthony@codemonkey.ws\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6aa8b732ca01c3d7a54e93f4d701b8aabbe60fb7",
      "tree": "23fcbe6f4918cacdae26d513a2bd13e91d8b4c38",
      "parents": [
        "f5f1a24a2caa299bb7d294aee92d7dd3410d9ed7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Dec 10 02:21:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] kvm: userspace interface\n\nweb site: http://kvm.sourceforge.net\n\nmailing list: kvm-devel@lists.sourceforge.net\n  (http://lists.sourceforge.net/lists/listinfo/kvm-devel)\n\nThe following patchset adds a driver for Intel\u0027s hardware virtualization\nextensions to the x86 architecture.  The driver adds a character device\n(/dev/kvm) that exposes the virtualization capabilities to userspace.  Using\nthis driver, a process can run a virtual machine (a \"guest\") in a fully\nvirtualized PC containing its own virtual hard disks, network adapters, and\ndisplay.\n\nUsing this driver, one can start multiple virtual machines on a host.\n\nEach virtual machine is a process on the host; a virtual cpu is a thread in\nthat process.  kill(1), nice(1), top(1) work as expected.  In effect, the\ndriver adds a third execution mode to the existing two: we now have kernel\nmode, user mode, and guest mode.  Guest mode has its own address space mapping\nguest physical memory (which is accessible to user mode by mmap()ing\n/dev/kvm).  Guest mode has no access to any I/O devices; any such access is\nintercepted and directed to user mode for emulation.\n\nThe driver supports i386 and x86_64 hosts and guests.  All combinations are\nallowed except x86_64 guest on i386 host.  For i386 guests and hosts, both pae\nand non-pae paging modes are supported.\n\nSMP hosts and UP guests are supported.  At the moment only Intel\nhardware is supported, but AMD virtualization support is being worked on.\n\nPerformance currently is non-stellar due to the naive implementation of the\nmmu virtualization, which throws away most of the shadow page table entries\nevery context switch.  We plan to address this in two ways:\n\n- cache shadow page tables across tlb flushes\n- wait until AMD and Intel release processors with nested page tables\n\nCurrently a virtual desktop is responsive but consumes a lot of CPU.  Under\nWindows I tried playing pinball and watching a few flash movies; with a recent\nCPU one can hardly feel the virtualization.  Linux/X is slower, probably due\nto X being in a separate process.\n\nIn addition to the driver, you need a slightly modified qemu to provide I/O\ndevice emulation and the BIOS.\n\nCaveats (akpm: might no longer be true):\n\n- The Windows install currently bluescreens due to a problem with the\n  virtual APIC.  We are working on a fix.  A temporary workaround is to\n  use an existing image or install through qemu\n- Windows 64-bit does not work.  That\u0027s also true for qemu, so it\u0027s\n  probably a problem with the device model.\n\n[bero@arklinux.org: build fix]\n[simon.kagstrom@bth.se: build fix, other fixes]\n[uril@qumranet.com: KVM: Expose interrupt bitmap]\n[akpm@osdl.org: i386 build fix]\n[mingo@elte.hu: i386 fixes]\n[rdreier@cisco.com: add log levels to all printks]\n[randy.dunlap@oracle.com: Fix sparse NULL and C99 struct init warnings]\n[anthony@codemonkey.ws: KVM: AMD SVM: 32-bit host support]\nSigned-off-by: Yaniv Kamay \u003cyaniv@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Simon Kagstrom \u003csimon.kagstrom@bth.se\u003e\nCc: Bernhard Rosenkraenzer \u003cbero@arklinux.org\u003e\nSigned-off-by: Uri Lublin \u003curil@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Anthony Liguori \u003canthony@codemonkey.ws\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
