)]}'
{
  "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": "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": "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": "1747fb71fd7c9389696e91f354d2f841b5c85790",
      "tree": "8c0658884e62693a94c2ebd35f83331ffa083a7d",
      "parents": [
        "81f50e3bfdf864103ef890ca156e7a9c922c7089"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 06 01:21:32 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:27 2007 +0200"
      },
      "message": "KVM: Hoist SVM\u0027s get_cs_db_l_bits into core code.\n\nSVM gets the DB and L bits for the cs by decoding the segment.  This\nis in fact the completely generic code, so hoist it for kvm-lite to use.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b85b9ee9259917f248ee1507d7d1f575f4fc27dd",
      "tree": "7455f36a04f4e87665a1b44dcfc1b5595eeb9289",
      "parents": [
        "c9a1185c945c8db3185ad40092963cbb39192e31"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Sep 09 14:12:54 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:27 2007 +0200"
      },
      "message": "KVM: Clean up unloved invlpg emulation\n\ninvlpg shouldn\u0027t fetch the \"src\" address, since it may not be valid,\nhowever SVM\u0027s \"solution\" which neuters emulation of all group 7\ninstruction is horrible and breaks kvm-lite.  The simplest fix is to\nput a special check in for invlpg.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c9a1185c945c8db3185ad40092963cbb39192e31",
      "tree": "f3125cea5f345710a0074a1f7c9c54e0d2cbe71e",
      "parents": [
        "380102c8e431ba8b25a5b3a29e4529ca02ede4c8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Sep 09 14:10:57 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:27 2007 +0200"
      },
      "message": "KVM: Remove the unused invlpg member of struct kvm_arch_ops.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "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": "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": "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": "bfc733a7a32612fe213a7492c385f2b03f592d7f",
      "tree": "74b14d353f1bf2a5420a07dc8a9f7ce1e7b74a7d",
      "parents": [
        "7e9d619d2aa28b71d547edfa15c66d6ab9a3a39c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 31 20:42:42 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:22 2007 +0200"
      },
      "message": "KVM: SVM: Make set_msr_interception more reliable\n\nset_msr_interception() is used by svm to set up which MSRs should be\nintercepted.  It can only fail if someone has changed the code to try\nto intercept an MSR without updating the array of ranges.\n\nThe return value is ignored anyway: it should just BUG() if it doesn\u0027t\nwork.  (A build-time failure would be better, but that\u0027s tricky).\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": "b114b0804df7131cb6764b948c1c530c834fa3c0",
      "tree": "4e5ced9ed1cdb673d27b26b166cd0bd7c845d5b9",
      "parents": [
        "c16f862d0257349607b7a9be7b4a4b7ed419a3ab"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 21:13:43 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: Use alignment properties of vcpu to simplify FPU ops\n\nNow we use a kmem cache for allocating vcpus, we can get the 16-byte\nalignment required by fxsave \u0026 fxrstor instructions, and avoid\nmanually aligning the buffer.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "0e5017d4ae981b0311a3ec1ca04806a4ae7d7446",
      "tree": "1181fb12dbfed7456ff007c77cdcc69ba948d2ce",
      "parents": [
        "e756fc626d7d8a220864dd6bc6634d9d933650b0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 20:08:05 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: SVM: internal function name cleanup\n\nChanges some svm.c internal function names:\n1) io_adress -\u003e io_address  (de-germanify the spelling)\n2) kvm_reput_irq -\u003e reput_irq  (it\u0027s not a generic kvm function)\n3) kvm_do_inject_irq -\u003e (it\u0027s not a generic kvm function)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e756fc626d7d8a220864dd6bc6634d9d933650b0",
      "tree": "03ec44448f28c9cf42f0c0e6c514c876102275a6",
      "parents": [
        "3077c4513c46f66537c1205acc464e49c9847dc0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 20:07:08 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: SVM: de-containization\n\ncontainer_of is wonderful, but not casting at all is better.  This\npatch changes svm.c\u0027s internal functions to pass \"struct vcpu_svm\"\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": "3077c4513c46f66537c1205acc464e49c9847dc0",
      "tree": "c259f223d6815528d357b338c4915783ebc8c8ac",
      "parents": [
        "8b9cf98cc7ea7354d6d4cbc4ffdb18a26a1129d3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 16:41:57 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:21 2007 +0200"
      },
      "message": "KVM: Remove three magic numbers\n\nThere are several places where hardcoded numbers are used in place of\nthe easily-available constant, which is poor form.\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": "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": "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": "6031a61c2ef4cf22b69ef5494aefa54b84a27d2f",
      "tree": "2e0ccd861da726e76785a0a68a46da06951f1eb0",
      "parents": [
        "796fd1b23e463e98b3e2fc86ed571db06dc945bb"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jun 22 12:29:50 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "KVM: SVM: Reliably detect if SVM was disabled by BIOS\n\nThis patch adds an implementation to the svm is_disabled function to\ndetect reliably if the BIOS disabled the SVM feature in the CPU. This\nfixes the issues with kernel panics when loading the kvm-amd module on\nmachines where SVM is available but disabled.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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": "129ee910df90738da950021a9b9784ea43d5f228",
      "tree": "daaf5b018383c517cfb78990395f5b7d754a0342",
      "parents": [
        "d9e368d61263055eceac2966bb7ea31b89da3425"
      ],
      "author": {
        "name": "Shani Moideen",
        "email": "shani.moideen@wipro.com",
        "time": "Mon Jun 11 09:28:26 2007 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: SVM: Replace memset(\u003caddr\u003e, 0, PAGESIZE) with clear_page(\u003caddr\u003e)\n\nSigned-off-by: Shani Moideen \u003cshani.moideen@wipro.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d9e368d61263055eceac2966bb7ea31b89da3425",
      "tree": "9d507b851ea7bd667cdd50dde640e47e0d4773e9",
      "parents": [
        "39c3b86e5c193e09f69f0e99c93600a4999ffc60"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jun 07 19:18:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:46 2007 +0300"
      },
      "message": "KVM: Flush remote tlbs when reducing shadow pte permissions\n\nWhen a vcpu causes a shadow tlb entry to have reduced permissions, it\nmust also clear the tlb on remote vcpus.  We do that by:\n\n- setting a bit on the vcpu that requests a tlb flush before the next entry\n- if the vcpu is currently executing, we send an ipi to make sure it\n  exits before we continue\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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": "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": "c86813393f8b8f9f738ab57d9837858ed850df4b",
      "tree": "baaf7859daffb2d4c87749c09bed7dfcfe671468",
      "parents": [
        "fdef3ad1b38660d74a29abc990940b5dbaaf3fc9"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Apr 30 09:48:11 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:37 2007 +0300"
      },
      "message": "KVM: SVM: Allow direct guest access to PC debug port\n\nThe PC debug port is used for IO delay and does not require emulation.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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": "94dfbdb3894eda2f673b70e20da2743c4a8d3968",
      "tree": "74e7a4a31a72ed0e3753e9390189d2e8132ecf0e",
      "parents": [
        "2807696c3791d6dd1dcf20f022eaa2dc7615bc5d"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Sun Apr 29 11:56:06 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: SVM: Only save/restore MSRs when needed\n\nWe only have to save/restore MSR_GS_BASE on every VMEXIT.  The rest can be\nsaved/restored when we leave the VCPU.  Since we don\u0027t emulate the DEBUGCTL\nMSRs and the guest cannot write to them, we don\u0027t have to worry about\nsaving/restoring them at all.\n\nThis shaves a whopping 40% off raw vmexit costs on AMD.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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": "7807fa6ca5af2e5660a0eb3cd90276ca0c5bdfc8",
      "tree": "8f97af3538acc40a6a72af29f31351d8f0f69296",
      "parents": [
        "4c690a1e8667a84b61a6114a4ad293681f32cb11"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Apr 23 09:17:21 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:31 2007 +0300"
      },
      "message": "KVM: Lazy FPU support for SVM\n\nAvoid saving and restoring the guest fpu state on every exit.  This\nshaves ~100 cycles off the guest/host switch.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "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": "364b625b561b1dd74e6fa696949ae3de28999a66",
      "tree": "189b93ac4ff80c528311d3f6c1e49fadcd2a7468",
      "parents": [
        "8c4385024d31cb909ad84a2cafa5c83a4c5fab61"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 16 14:28:40 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:29 2007 +0300"
      },
      "message": "KVM: SVM: Report hardware exit reason to userspace instead of dmesg\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5008fdf5b6a31240da060c0867d8f16f08ce2384",
      "tree": "400c6c63bc7e463a6e6af5743d58015eef5bfbbe",
      "parents": [
        "80b7706e4cbaa51d65bd6fea83bd0e59856f50e9"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Apr 02 13:05:50 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Use kernel-standard types\n\nNoted by Joerg Roedel.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "80b7706e4cbaa51d65bd6fea83bd0e59856f50e9",
      "tree": "c688c8b9cd07c2555facd657e8e8e3ed508b93be",
      "parents": [
        "b8836737d92c139be770eae3d6574e33d1224caf"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Mar 30 17:02:14 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: SVM: enable LBRV virtualization if available\n\nThis patch enables the virtualization of the last branch record MSRs on\nSVM if this feature is available in hardware. It also introduces a small\nand simple check feature for specific SVM extensions.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "55bf4028342d96b21fe5dc0721b481b0bc1e81f6",
      "tree": "f2da612009ae1e8a4d5919c5a8749a75a5ca275c",
      "parents": [
        "0cc5064d335543a72c5ef904a3f528966fa3f2d2"
      ],
      "author": {
        "name": "Michal Piotrowski",
        "email": "michal.k.k.piotrowski@gmail.com",
        "time": "Sun Mar 25 17:59:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:27 2007 +0300"
      },
      "message": "KVM: Remove unused function\n\nRemove unused function\n\nCC      drivers/kvm/svm.o\ndrivers/kvm/svm.c:207: warning: ‘inject_db’ defined but not used\n\nSigned-off-by: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0cc5064d335543a72c5ef904a3f528966fa3f2d2",
      "tree": "4e6f8b4e013fc24821cb0f1af26d33d906e4d870",
      "parents": [
        "d28c6cfbbc5e2d4fccfe6d733995ed5971ca87f6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 25 12:07:27 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:27 2007 +0300"
      },
      "message": "KVM: SVM: Ensure timestamp counter monotonicity\n\nWhen a vcpu is migrated from one cpu to another, its timestamp counter\nmay lose its monotonic property if the host has unsynced timestamp counters.\nThis can confuse the guest, sometimes to the point of refusing to boot.\n\nAs the rdtsc instruction is rather fast on AMD processors (7-10 cycles),\nwe can simply record the last host tsc when we drop the cpu, and adjust\nthe vcpu tsc offset when we detect that we\u0027ve migrated to a different cpu.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "916ce2360fadc71d924e02403b31280112a31280",
      "tree": "6cdb3c1e122cb25e18f1848c151aacc356c06fde",
      "parents": [
        "0e5bf0d0e449f6597870570e8dd17e78ba4d75ff"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Mar 21 19:47:00 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:26 2007 +0300"
      },
      "message": "KVM: SVM: forbid guest to execute monitor/mwait\n\nThis patch forbids the guest to execute monitor/mwait instructions on\nSVM. This is necessary because the guest can execute these instructions\nif they are available even if the kvm cpuid doesn\u0027t report its\nexistence.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fcd3410870049cb74bb1a3a2458cb3ec21185cd1",
      "tree": "fbb7abe5dfa4c01b6802cd65cd77e3b519816887",
      "parents": [
        "6da63cf95f6a19fe0a302232048452c96b178e45"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 21 18:14:42 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:26 2007 +0300"
      },
      "message": "KVM: Remove unused and write-only variables\n\nTrivial cleanup.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6da63cf95f6a19fe0a302232048452c96b178e45",
      "tree": "ee415a52fe660721ea6307cfcb207f6b4f285ff9",
      "parents": [
        "038881c8bec0e9a796d1782c56e29e7c2456626d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 21 18:11:36 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:26 2007 +0300"
      },
      "message": "KVM: Don\u0027t allow the guest to turn off the cpu cache\n\nThe cpu cache is a host resource; the guest should not be able to turn\nit off (even for itself).\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": "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": "6722c51c51518af9581ab6cd9b6aec93774334a6",
      "tree": "41b2b77cfc486aeb25a154b4b476cc91054749ad",
      "parents": [
        "1b19f3e61d7e1edb395dd64bf7d63621a37af8ca"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 05 17:45:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Initialize the apic_base msr on svm too\n\nOlder userspace didn\u0027t care, but newer userspace (with the cpuid changes)\ndoes.\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": "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": "0152527b76b72333121d5a1243f9e091b58d4580",
      "tree": "d622f4f95998cca751507c21e1515798f2bd7fda",
      "parents": [
        "cd205625e9bf2090d9bd95848ef4b34ad3f1a8b3"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.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: SVM: intercept SMI to handle it at host level\n\nThis patch changes the SVM code to intercept SMIs and handle it\noutside the guest.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cd205625e9bf2090d9bd95848ef4b34ad3f1a8b3",
      "tree": "f558928ccdb1a78ac5d509e1dff8756de8836718",
      "parents": [
        "270fd9b96f5fcb7df15d3ca6166545d4aa0f3ee9"
      ],
      "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: svm: init cr0 with the wp bit set\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": "02e235bc8eebf8a6fef10d46479b3c18f3e9c4f2",
      "tree": "7adc652e23ef451c059f8dfb736b59b27d108747",
      "parents": [
        "c21415e84334af679630f6450ceb8929a5234fad"
      ],
      "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: Add hypercall host support for svm\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": "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": "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": "d92899a0014aa795c21d3cf726ef5ff7684399f4",
      "tree": "6e1208d717502e8f9772227758e9fb387d398f83",
      "parents": [
        "ac6c2bc592b90c7f140fc87c49e21bc82376e2aa"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: SVM: Hack initial cpu csbase to be consistent with intel\n\nThis allows us to run the mmu testsuite on amd.\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": "ac6c2bc592b90c7f140fc87c49e21bc82376e2aa",
      "tree": "eaba4f4f97f9bf17cc0a1abf07637abecca54195",
      "parents": [
        "988ad74ff6107d9a490ee193e41251e27d37c95f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:37 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: Fix mmu going crazy of guest sets cr0.wp \u003d\u003d 0\n\nThe kvm mmu relies on cr0.wp being set even if the guest does not set it.  The\nvmx code correctly forces cr0.wp at all times, the svm code does not, so it\ncan\u0027t boot solaris without this patch.\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": "49b14f24cc5aa962446515c9df501192eda99bd4",
      "tree": "aca739bbcac072eb901510a419dc908a26e1543c",
      "parents": [
        "04611f98ce34f8911740ccd7e2bf0c22f818f622"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Mon Jan 29 13:19:50 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 08:26:45 2007 -0800"
      },
      "message": "[PATCH] Fix \"CONFIG_X86_64_\" typo in drivers/kvm/svm.c\n\nFix what looks like an obvious typo in the file drivers/kvm/svm.c.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nAcked-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": "46fe4ddd9dbb15305ab9b458e6cfa4dd47ac3e47",
      "tree": "d7a7d0443d519f7de0b6c5157cf610726b4ab0bf",
      "parents": [
        "73b1087e6176a34c01eea3db269848f72fad72c1"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 26 00:56:42 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:50:57 2007 -0800"
      },
      "message": "[PATCH] KVM: SVM: Propagate cpu shutdown events to userspace\n\nThis patch implements forwarding of SHUTDOWN intercepts from the guest on to\nuserspace on AMD SVM.  A SHUTDOWN event occurs when the guest produces a\ntriple fault (e.g.  on reboot).  This also fixes the bug that a guest reboot\nactually causes a host reboot under some circumstances.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.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@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bce66ca4a2f695509e1b021311eb4de1e4fdf3e4",
      "tree": "65812b48148006c619289b34f85d131441ff881b",
      "parents": [
        "4b89eed93e0fa40a63e3d7b1796ec1337ea7a3aa"
      ],
      "author": {
        "name": "Leonard Norrgard",
        "email": "leonard.norrgard@refactor.fi",
        "time": "Fri Jan 26 00:56:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:50:57 2007 -0800"
      },
      "message": "[PATCH] KVM: SVM: Fix SVM idt confusion\n\nThere\u0027s an obvious typo in svm_{get,set}_idt, causing it to access the ldt\ninstead.\n\nBecause these functions are only called for save/load on AMD, the bug does not\nimpact normal operation.  With the fix, save/load works as expected on AMD\nhosts.\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@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": "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": "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": "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": "1e885461f02259d75e7480a70d291d2d8aaa938e",
      "tree": "775ae3f9cd24e5f428ffd7f225250f5c85450d00",
      "parents": [
        "2b7a52a459cb09864b736265bee1af5cef42af66"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 29 16:49:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:43 2006 -0800"
      },
      "message": "[PATCH] KVM: Use boot_cpu_data instead of current_cpu_data\n\ncurrent_cpu_data invokes smp_processor_id(), which is inadvisable when\npreemption is enabled.  Switch to boot_cpu_data instead.\n\nResolves sourceforge bug 1621401.\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": "36241b8c7cbcc83e7fd534d25e1df8339db8244e",
      "tree": "7e62afdbe018c826599b83871d33b3c1cdd5a5d9",
      "parents": [
        "0e859cacb0b01bdbe34b5200dd2457d4818248fa"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 22 01:05:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:46 2006 -0800"
      },
      "message": "[PATCH] KVM: AMD SVM: Save and restore the floating point unit state\n\nFixes sf bug 1614113 (segfaults in nbench).\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": "0e859cacb0b01bdbe34b5200dd2457d4818248fa",
      "tree": "70fbfaef03305aef593362043044e13c10c69145",
      "parents": [
        "5aacf0ca4128fdeadf91c0ac50271841b643d1fd"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 22 01:05:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:46 2006 -0800"
      },
      "message": "[PATCH] KVM: AMD SVM: handle MSR_STAR in 32-bit mode\n\nThis is necessary for linux guests.\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": "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": "5aff458e9c90df55d6badabd89a1a063a80d9768",
      "tree": "278b56e2f14128c4c73553d0037b385614421e9b",
      "parents": [
        "fd24dc4af6387d820159e3affdfb1e9d3bdce1f8"
      ],
      "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: Clean up AMD SVM debug registers load and unload\n\nBy letting gcc choose the temporary register for us, we lose arch dependency\nand some ugliness.  Conceivably gcc will also generate marginally better 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": "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"
    }
  ]
}
