)]}'
{
  "log": [
    {
      "commit": "054b1369679fb97582fc77f25a700d4290ff3e89",
      "tree": "fc06afd41830c263f6c068d1bd743ef7fcf9637d",
      "parents": [
        "fd2a76086527cbe074b08a8820253228cd919ece"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Sep 12 13:21:09 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:28 2007 +0200"
      },
      "message": "KVM: Improve emulation failure reporting\n\nReport failed opcodes from all locations.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bfdaab090386e7dda8c442721eeb91179258dad4",
      "tree": "35c7a10421a67316c0aa87f70b11db829137e4b9",
      "parents": [
        "04d2cc7780d48a212843e38d46402d97fa1f4774"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Wed Sep 12 14:18:28 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:28 2007 +0200"
      },
      "message": "KVM: VMX: Fix exit qualification width on i386\n\nAccording to Intel Software Developer\u0027s Manual, Vol. 3B, Appendix H.4.2,\nexit qualification should be of natural width. However, current code\nuses u64 as the data type for this register, which occasionally\nintroduces invalid value to VMExit handling logics. This patch fixes\nthis bug.\n\nI have tested Windows and Linux guest on i386 host, and they can boot\nsuccessfully with this patch.\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "04d2cc7780d48a212843e38d46402d97fa1f4774",
      "tree": "a209131bad59abcf574abbaae23145db3c4005e0",
      "parents": [
        "29bd8a78082f2d7e2165a735f50b5c716ef3213b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Sep 10 18:10:54 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:28 2007 +0200"
      },
      "message": "KVM: Move main vcpu loop into subarch independent code\n\nThis simplifies adding new code as well as reducing overall code size.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "29bd8a78082f2d7e2165a735f50b5c716ef3213b",
      "tree": "df91de19568c8c882c2306466484db098f14d9d9",
      "parents": [
        "2e3e5882dca3ab409aa8c9c96f47610b576719f8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Sep 10 17:27:03 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:27 2007 +0200"
      },
      "message": "KVM: VMX: Move vm entry failure handling to the exit handler\n\nThis will help moving the main loop to subarch independent code.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cbdd1bea2a2dce4c0b45c5f0122c150d9f07f0bc",
      "tree": "c01443051868880733c2973abdd59c1d82fdd243",
      "parents": [
        "0d8d2bd4f20c8a2a254b4fe3bc114f12214a6d73"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Sun Sep 09 15:41:59 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:27 2007 +0200"
      },
      "message": "KVM: Rename kvm_arch_ops to kvm_x86_ops\n\nThis patch just renames the current (misnamed) _arch namings to _x86 to\nensure better readability when a real arch layer takes place.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c5ec153402b6d276fe20029da1059ba42a4b55e5",
      "tree": "a323fd0466f606b66fc7239e78569863d62f6300",
      "parents": [
        "932f72adbe76f098922c746737cb0bd75fc21e27"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Mon Sep 03 17:07:41 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:26 2007 +0200"
      },
      "message": "KVM: enable in-kernel APIC INIT/SIPI handling\n\nThis patch enables INIT/SIPI handling using in-kernel APIC by\nintroducing a -\u003emp_state field to emulate the SMP state transition.\n\n[avi: remove smp_processor_id() warning]\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Xin Li \u003cxin.b.li@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a3d7f85f471f889e4477863a7ca42828ae74e77d",
      "tree": "f75148a940f7e297da91f6a14ab573291ceb050f",
      "parents": [
        "1b9778dae71dc64d3678d766c0f1fbed79c80f9f"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Mon Sep 03 16:15:12 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:26 2007 +0200"
      },
      "message": "KVM: Migrate lapic hrtimer when vcpu moves to another cpu\n\nThis reduces overhead by accessing cachelines from the wrong node, as well\nas simplifying locking.\n\n[Qing: fix for inactive or expired one-shot timer]\n\nSigned-off-by: Yaozu (Eddie) Dong \u003cEddie.Dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1b9778dae71dc64d3678d766c0f1fbed79c80f9f",
      "tree": "3196bbfe474119a849f35aefddb5e0922205850f",
      "parents": [
        "6e5d865c0b9679b00b5e5f0754c9fc2b6b9894d6"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Mon Sep 03 16:56:58 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:26 2007 +0200"
      },
      "message": "KVM: Keep track of missed timer irq injections\n\nAPIC timer IRQ is set every time when a certain period\nexpires at host time, but the guest may be descheduled\nat that time and thus the irq be overwritten by later fire.\nThis patch keep track of firing irq numbers and decrease\nonly when the IRQ is injected to guest or buffered in\nAPIC.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003cEddie.Dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6e5d865c0b9679b00b5e5f0754c9fc2b6b9894d6",
      "tree": "1b8133926578a16f8849143da5a7d5a6d9e67b24",
      "parents": [
        "2a8067f17b8442ecce0b14e134823020ff33b4fa"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Wed Sep 12 18:03:11 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:26 2007 +0200"
      },
      "message": "KVM: VMX: Use shadow TPR/cr8 for 64-bits guests\n\nThis patch enables TPR shadow of VMX on CR8 access. 64bit Windows using\nCR8 access TPR frequently. The TPR shadow can improve the performance of\naccess TPR by not causing vmexit.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2a8067f17b8442ecce0b14e134823020ff33b4fa",
      "tree": "e7f65775b3ced0c42de2df8118a84e7ddb9fff7d",
      "parents": [
        "96ad2cc6132479aa0aea485d0838a13fda765bd5"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Mon Aug 06 16:29:07 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:26 2007 +0200"
      },
      "message": "KVM: pending irq save/restore\n\nAdd in kernel irqchip save/restore support for pending vectors.\n\n[avi: fix compile warning on i386]\n[avi: remove printk]\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b6958ce44a11a9e9425d2b67a653b1ca2a27796f",
      "tree": "503478ef27254df9b6ea21d2a6a279a7dfe2ef04",
      "parents": [
        "1fd4f2a5ed8f80cf6e23d2bdf78554f6a1ac7997"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Jul 18 12:15:21 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Emulate hlt in the kernel\n\nBy sleeping in the kernel when hlt is executed, we simplify the in-kernel\nguest interrupt path considerably.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97222cc8316328965851ed28d23f6b64b4c912d2",
      "tree": "469b2f72e74046a7aec5061df194c3f68812a224",
      "parents": [
        "7017fc3d1a12e30ea7df4992152978a188433457"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Sep 12 10:58:04 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Emulate local APIC in kernel\n\nBecause lightweight exits (exits which don\u0027t involve userspace) are many\ntimes faster than heavyweight exits, it makes sense to emulate high usage\ndevices in the kernel.  The local APIC is one such device, especially for\nWindows and for SMP, so we add an APIC model to kvm.\n\nIt also allows in-kernel host-side drivers to inject interrupts without\ngoing through userspace.\n\n[compile fix on i386 from Jindrich Makovicka]\n\nSigned-off-by: Yaozu (Eddie) Dong \u003cEddie.Dong@intel.com\u003e\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7017fc3d1a12e30ea7df4992152978a188433457",
      "tree": "ebbe0e5852ddd58bddfed389412c86c7692d2724",
      "parents": [
        "85f455f7ddbed403b34b4d54b1eaf0e14126a126"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Jul 18 11:34:57 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Define and use cr8 access functions\n\nThis patch is to wrap APIC base register and CR8 operation which can\nprovide a unique API for user level irqchip and kernel irqchip.\nThis is a preparation of merging lapic/ioapic patch.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "85f455f7ddbed403b34b4d54b1eaf0e14126a126",
      "tree": "1dba7aa8fee3c8f756e12049c496dee5baae752c",
      "parents": [
        "152d3f2f246ce3c2a0cf2fc6c2214663cd99aa83"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Fri Jul 06 12:20:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:24 2007 +0200"
      },
      "message": "KVM: Add support for in-kernel PIC emulation\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "152d3f2f246ce3c2a0cf2fc6c2214663cd99aa83",
      "tree": "e499626bab90fc75a9c0cc97e96c68a7fd4bbaa3",
      "parents": [
        "d39dba54ce71ab3234c387219b175dc36d37f85a"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Aug 23 16:33:11 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:24 2007 +0200"
      },
      "message": "KVM: VMX: Split segments reload in vmx_load_host_state()\n\nvmx_load_host_state() bundles fs, gs, ldt, and tss reloading into\none in the hope that it is infrequent. With smp guests, fs reloading is\nfrequent due to fs being used by threads.\n\nUnbundle the reloads so reduce expensive gs reloads.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "33f5fa1664046208b890e9231a47e377fdfc7762",
      "tree": "d1cc330dc5d1bf3ddc3df94958759f1f3b3d7583",
      "parents": [
        "7e778161fb4612d2ceac9604f10e1061f5f4cf48"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Sun Aug 19 22:24:58 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:24 2007 +0200"
      },
      "message": "KVM: VMX: allow rmode_tss_base() to work with \u003e2G of guest memory\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "253abdee5ec2edd0a7f6dc2358bef42e3fdf1f39",
      "tree": "a9823774dcf3fa7a66c1895b78528d3239eaa71b",
      "parents": [
        "7e66f350cfc853043bfa71b281581dd6f92fa347"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Thu Aug 16 13:01:00 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Communicate cr8 changes to userspace\n\nThis allows running 64-bit Windows.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7e66f350cfc853043bfa71b281581dd6f92fa347",
      "tree": "bbf821c3fd4578cfacb07deaa59f18da5eaa4411",
      "parents": [
        "3090dd7377c7eb5cbe229e2a538f9dc7e5b06814"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Aug 15 15:23:34 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Close minor race in signal handling\n\nWe need to check for signals inside the critical section, otherwise a\nsignal can be sent which we will not notice.  Also move the check\nbefore entry, so that if the signal happens before the first entry,\nwe exit immediately instead of waiting for something to happen to the\nguest.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3090dd7377c7eb5cbe229e2a538f9dc7e5b06814",
      "tree": "7f93e361f5bcea61b9b10f607fb69e4d9b124478",
      "parents": [
        "e70669abd4e60dfea3ac1639848e20e2b8dd1255"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Sun Aug 05 10:43:32 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Clean up kvm_setup_pio()\n\nSplit kvm_setup_pio() into two functions, one to setup in/out pio\n(kvm_emulate_pio()) and one to setup ins/outs pio (kvm_emulate_pio_string()).\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e70669abd4e60dfea3ac1639848e20e2b8dd1255",
      "tree": "4625f787efdf5f586514cd6306e045a97edb490e",
      "parents": [
        "9fdaaac38e8c8a63c6383b807b91fea2d51da95d"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Sun Aug 05 10:36:40 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Cleanup string I/O instruction emulation\n\nBoth vmx and svm decode the I/O instructions, and both botch the job,\nrequiring the instruction prefixes to be fetched in order to completely\ndecode the instruction.\n\nSo, if we see a string I/O instruction, use the x86 emulator to decode it,\nas it already has all the prefix decoding machinery.\n\nThis patch defines ins/outs opcodes in x86_emulate.c and calls\nemulate_instruction() from io_interception() (svm.c) and from handle_io()\n(vmx.c).  It removes all vmx/svm prefix instruction decoders\n(get_addr_size(), io_get_override(), io_address(), get_io_count())\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1e4e6e00136b82a5595de903c28912afee1178cb",
      "tree": "cdbd7155de3754fafb0a20172a8e0aaec34e6bf5",
      "parents": [
        "a477034750ce59df7fc17823f085df5a30e316f0"
      ],
      "author": {
        "name": "Li, Xin B",
        "email": "xin.b.li@intel.com",
        "time": "Wed Aug 01 21:49:10 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: VMX: Remove a duplicated ia32e mode vm entry control\n\nRemove a duplicated ia32e mode VM Entry control definition and use the\nproper one.\n\nSigned-off-by: Xin Li \u003cxin.b.li@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a477034750ce59df7fc17823f085df5a30e316f0",
      "tree": "cfca29ba12e9bcb7256ff424438020545721e305",
      "parents": [
        "f02424785ab83bab8283ad33044284f749c08db8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 01 14:46:11 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Use kmem_cache_free for kmem_cache_zalloc\u0027ed objects\n\nWe use kfree in svm.c and vmx.c, and this works, but it could break at\nany time.  kfree() is supposed to match up with kmalloc().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f02424785ab83bab8283ad33044284f749c08db8",
      "tree": "020d73469f801e33012702c58233e776381d3008",
      "parents": [
        "33830b4f5bdf2bc21d0c10d38beffdce8edcded7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 01 10:48:02 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:22 2007 +0200"
      },
      "message": "KVM: Add and use pr_unimpl for standard formatting of unimplemented features\n\nAll guest-invokable printks should be ratelimited to prevent malicious\nguests from flooding logs.  This is a start.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "54e11fa1f87771df0fc1bb42a75be0740c3babb9",
      "tree": "b46e10a86643ed8c52e340fff43342aadca8463e",
      "parents": [
        "37c00051b53861929a910309c1823b415d55cfdf"
      ],
      "author": {
        "name": "Gabriel C",
        "email": "nix.or.die@googlemail.com",
        "time": "Wed Aug 01 16:23:10 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:22 2007 +0200"
      },
      "message": "KVM: Fix defined but not used warning in drivers/kvm/vmx.c\n\nmove_msr_up() is used only on X86_64 and generates a warning on !X86_64\n\nSigned-off-by: Gabriel Craciunescu \u003cnix.or.die@googlemail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "37c00051b53861929a910309c1823b415d55cfdf",
      "tree": "f14333721339eeb3f20030e3d8a5b7a008ff2854",
      "parents": [
        "bfc733a7a32612fe213a7492c385f2b03f592d7f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 31 20:46:12 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:22 2007 +0200"
      },
      "message": "KVM: Remove redundant alloc_vmcs_cpu declaration\n\nalloc_vmcs_cpu is already declared (static) above, no need to\nredeclare.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "002c7f7c32a6123f0894d7d579ffae8e98911830",
      "tree": "91d46dd1d6f04f25e4f658eb8620fe69c1557c17",
      "parents": [
        "39214915f50f6ac2350355f2db63910d968fa790"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Tue Jul 31 14:23:01 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:22 2007 +0200"
      },
      "message": "KVM: VMX: Add cpu consistency check\n\nAll the physical CPUs on the board should support the same VMX feature\nset.  Add check_processor_compatibility to kvm_arch_ops for the consistency\ncheck.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c16f862d0257349607b7a9be7b4a4b7ed419a3ab",
      "tree": "f84e9f43f845640a0cc887fe8697ab0b3a4e788b",
      "parents": [
        "e7d5d76cae970117affe07f809faf0f18bbac675"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 21:12:19 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: Use kmem cache for allocating vcpus\n\nAvi wants the allocations of vcpus centralized again.  The easiest way\nis to add a \"size\" arg to kvm_init_arch, and expose the thus-prepared\ncache to the modules.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e7d5d76cae970117affe07f809faf0f18bbac675",
      "tree": "3410ce6d12e1095affcd4e6f7fd36716587916c6",
      "parents": [
        "cebff02b11b02a81d21b6cc8390938dc9bdf0a12"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Jul 30 13:41:19 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: Remove kvm_{read,write}_guest()\n\n... in favor of the more general emulator_{read,write}_*.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8b9cf98cc7ea7354d6d4cbc4ffdb18a26a1129d3",
      "tree": "e9bb48a799538c24c2ccd6b5023446d18076c881",
      "parents": [
        "9bd01506ee551689b90ba5822c28ef55207146af"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 16:31:43 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: VMX: pass vcpu_vmx internally\n\ncontainer_of is wonderful, but not casting at all is better.  This\npatch changes vmx.c\u0027s internal functions to pass \"struct vcpu_vmx\"\ninstead of \"struct kvm_vcpu\" and using container_of.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "11ec2804711896546ee3c945f3786c7f9fdd175a",
      "tree": "1e26102931efb8b0b48c440887577d21170ef94a",
      "parents": [
        "15ad71460d75fd7ca41bb248a2310f3f39b302ba"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jul 23 14:51:37 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: Convert vm lock to a mutex\n\nThis allows the kvm mmu to perform sleepy operations, such as memory\nallocation.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "15ad71460d75fd7ca41bb248a2310f3f39b302ba",
      "tree": "1ea549e5c5629561c121a54def146fb6b706c2d4",
      "parents": [
        "519ef35341b4f360f072ea74e398b70a5a2fc270"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jul 11 18:17:21 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: Use the scheduler preemption notifiers to make kvm preemptible\n\nCurrent kvm disables preemption while the new virtualization registers are\nin use.  This of course is not very good for latency sensitive workloads (one\nuse of virtualization is to offload user interface and other latency\ninsensitive stuff to a container, so that it is easier to analyze the\nremaining workload).  This patch re-enables preemption for kvm; preemption\nis now only disabled when switching the registers in and out, and during\nthe switch to guest mode and back.\n\nContains fixes from Shaohua Li \u003cshaohua.li@intel.com\u003e.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1c3d14fe0ab75337a3f6c06b6bc18bcbc2b3d0bc",
      "tree": "f3d2533b5250e8405af14f99c2810bb3ead1a06c",
      "parents": [
        "fb3f0f51d92d1496f9628ca6f0fb06a48dc9ed2a"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Sun Jul 29 11:07:42 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: VMX: Improve the method of writing vmcs control\n\nPut cpu feature detecting part in hardware_setup, and stored the vmcs\ncondition in global variable for further check.\n\n[glommer: fix for some i386-only machines not supporting CR8 load/store\n exiting]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fb3f0f51d92d1496f9628ca6f0fb06a48dc9ed2a",
      "tree": "38da1073dae5f30fd8f162669bb5a86959f8ace5",
      "parents": [
        "a2fa3e9f52d875f7d4ca98434603b8756be71ba8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 27 17:16:56 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: Dynamically allocate vcpus\n\nThis patch converts the vcpus array in \"struct kvm\" to a pointer\narray, and changes the \"vcpu_create\" and \"vcpu_setup\" hooks into one\n\"vcpu_create\" call which does the allocation and initialization of the\nvcpu (calling back into the kvm_vcpu_init core helper).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a2fa3e9f52d875f7d4ca98434603b8756be71ba8",
      "tree": "915c13bfedc867d4d2e4b98c4d3b10b6ef25d451",
      "parents": [
        "c820c2aa27bb5b6069aa708b0a0b44b59a16bfa7"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jul 27 08:13:10 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: Remove arch specific components from the general code\n\nstruct kvm_vcpu has vmx-specific members; remove them to a private structure.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62b3ffb8b357a791491726cff8d395027e5245b7",
      "tree": "c33b0eb391258ef5c42d16d3638ca53e58ed9fd6",
      "parents": [
        "fe5518819463d57ed032bc12458ed681bc790609"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Wed Jul 25 12:17:06 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:19 2007 +0200"
      },
      "message": "KVM: VMX: Import some constants of vmcs from IA32 SDM\n\nThis patch mainly imports some constants and rename two exist constants\nof vmcs according to IA32 SDM.\n\nIt also adds two constants to indicate Lock bit and Enable bit in\nMSR_IA32_FEATURE_CONTROL, and replace the hardcode _5_ with these two\nbits.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9ae0448f53324b3c476f68bd134d97ac4ec27e0c",
      "tree": "90b5c3c166bd9ce9c9b415c6a6246c2fdb53693c",
      "parents": [
        "310bc76c2b6829cd280def4927b7ccf8b8c795df"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jul 23 14:51:32 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:19 2007 +0200"
      },
      "message": "KVM: Hoist kvm_mmu_reload() out of the critical section\n\nvmx_cpu_run doesn\u0027t handle error correctly and kvm_mmu_reload might\nsleep with mutex changes, so I move it above.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8fc0d085f521a2a76418f8f569cf1cd27f0e43d4",
      "tree": "f4820bd9da8c2e1f7059f5709e3ac6097ff218f6",
      "parents": [
        "9eb829ced8c6f2e43a3a644ddf1279ffeee38a33"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Jul 17 12:26:59 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:19 2007 +0200"
      },
      "message": "KVM: Set exit_reason to KVM_EXIT_MMIO where run-\u003emmio is initialized.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "66aee91aaab8f998d28a61ed7733be17ad8e6d8f",
      "tree": "f3cd552c4a176cbba0929788b03867cb33d7b5b5",
      "parents": [
        "f802a307cb2cabdd0c6b48067dbe901d6fe27246"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 23:34:16 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:18 2007 +0200"
      },
      "message": "KVM: Use standard CR4 flags, tighten checking\n\nOn this machine (Intel), writing to the CR4 bits 0x00000800 and\n0x00001000 cause a GPF.  The Intel manual is a little unclear, but\nAFIACT they\u0027re reserved, too.\n\nAlso fix spelling of CR4_RESEVED_BITS.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "707d92fa72b425bc919a84670c01402e81505c58",
      "tree": "9e3a55293e867e499fd625ebac45db565ff0fc38",
      "parents": [
        "9a2b85c620b9779360c7726de4caeda78cac38d4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 23:19:08 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:18 2007 +0200"
      },
      "message": "KVM: Trivial: Use standard CR0 flags macros from asm/cpu-features.h\n\nThe kernel now has asm/cpu-features.h: use those macros instead of\ninventing our own.\n\nAlso spell out definition of CR0_RESEVED_BITS (no code change) and fix typo.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "dad3795d2baa4e02cbfd161d9089c73dea16b4ba",
      "tree": "56bedc042a5ba0a2b92eecc4e488b0328a35db54",
      "parents": [
        "cd0d91379776cb6850c7b11c0a8843ca75967558"
      ],
      "author": {
        "name": "Qing He",
        "email": "qing.he@intel.com",
        "time": "Thu Jul 12 12:33:56 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:17 2007 +0200"
      },
      "message": "KVM: SMP: Add vcpu_id field in struct vcpu\n\nThis patch adds a `vcpu_id\u0027 field in `struct vcpu\u0027, so we can\ndifferentiate BSP and APs without pointer comparison or arithmetic.\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e495606dd09d79f9fa496334ac3958f6ff179d82",
      "tree": "0ee6495edb52286e7f7a67841c461fea36e782da",
      "parents": [
        "d6d281684913dabb878e2f53219eed5df2cd867b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 28 14:15:57 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: Clean up #includes\n\nRemove unnecessary ones, and rearange the remaining in the standard order.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "de979caacca51c929d2cc2f0f79611ee4a1bc8a5"
}
