)]}'
{
  "log": [
    {
      "commit": "2381ad241d0bea1253a37f314b270848067640bb",
      "tree": "f722e3da63c8f26ef7309653848ab7cea02e08cb",
      "parents": [
        "b010eb5103cfbe12ae6f08a4cdb3a748bf78c410"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Oct 08 08:29:33 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:39 2008 +0200"
      },
      "message": "KVM: ia64: Add intel iommu support for guests.\n\nWith intel iommu hardware, we can assign devices to kvm/ia64 guests.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a98f6648a2b0756d8f26d6c13332f5526355fec",
      "tree": "8df03d146d22082644df8078747e332f9b2aff1f",
      "parents": [
        "371c01b28e4049d1fbf60a9631cdad98f7cae030"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Oct 06 13:47:38 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:33 2008 +0200"
      },
      "message": "KVM: Move device assignment logic to common code\n\nTo share with other archs, this patch moves device assignment\nlogic to common parts.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62c476c7c7f25a5b245b9902a935636e6316e58c",
      "tree": "6584591c7c345fcbb3c6d437203dc7f4a628573a",
      "parents": [
        "387179464257921eb9aa3d15cc3ff194f6945a7c"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Sun Sep 14 03:48:28 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:04 2008 +0200"
      },
      "message": "KVM: Device Assignment with VT-d\n\nBased on a patch by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\n\nThis patch enables PCI device assignment based on VT-d support.\nWhen a device is assigned to the guest, the guest memory is pinned and\nthe mapping is updated in the VT-d IOMMU.\n\n[Amit: Expose KVM_CAP_IOMMU so we can check if an IOMMU is present\nand also control enable/disable from userspace]\n\nSigned-off-by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nAcked-by: Mark Gross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4d5c5d0fe89c921336b95f5e7e4f529a9df92f53",
      "tree": "7281955b46811fb25283a3b6abb7620630b2b26e",
      "parents": [
        "cbff90a7caa49507d399c9a55ba4a411e840bfb4"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Mon Jul 28 19:26:26 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:18 2008 +0200"
      },
      "message": "KVM: pci device assignment\n\nBased on a patch from: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nThis patch adds support for handling PCI devices that are assigned to\nthe guest.\n\nThe device to be assigned to the guest is registered in the host kernel\nand interrupt delivery is handled.  If a device is already assigned, or\nthe device driver for it is still loaded on the host, the device\nassignment is failed by conveying a -EBUSY reply to the userspace.\n\nDevices that share their interrupt line are not supported at the moment.\n\nBy itself, this patch will not make devices work within the guest.\nThe VT-d extension is required to enable the device to perform DMA.\nAnother alternative is PVDMA.\n\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3b4bd7969f7b61a1ab455bff084ee4f0a2411055",
      "tree": "019b375e8981e70e8b60dd43d0d9ae6927f76724",
      "parents": [
        "31711f2294b38d8334efaf7dbac6da4781fd151e"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:04 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: trace powerpc instruction emulation\n\nThis patch adds a trace point for the instruction emulation on embedded powerpc\nutilizing the KVM_TRACE interface.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "31711f2294b38d8334efaf7dbac6da4781fd151e",
      "tree": "0e60487f9c79113f1f0c9cbc094d9a167d5c3f46",
      "parents": [
        "12f67556023389a6be929a56617142a8e8ab20fe"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Jul 14 14:00:03 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: adds trace points for ppc tlb activity\n\nThis patch adds trace points to track powerpc TLB activities using the\nKVM_TRACE infrastructure.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3f7f95c65ef6a89472a28da1b9436eaeee288831",
      "tree": "d453af46dceb3fcce512a110573cd2e8e4341cfa",
      "parents": [
        "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:01 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: kvmtrace: replace get_cycles with ktime_get v3\n\nThe current kvmtrace code uses get_cycles() while the interpretation would be\neasier using using nanoseconds. ktime_get() should give at least the same\naccuracy as get_cycles on all architectures (even better on 32bit archs) but\nat a better unit (e.g. comparable between hosts with different frequencies.\n\n[avi: avoid ktime_t in public header]\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707",
      "tree": "75329603864952437757705781520dc52906b51c",
      "parents": [
        "80e31d4f61f69d0e480ae092cda0e590d6a30aeb"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:00 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:14 2008 +0200"
      },
      "message": "KVM: kvmtrace: Remove use of bit fields in kvm trace structure\n\nThis patch fixes kvmtrace use on big endian systems. When using bit fields the\ncompiler will lay data out in the wrong order expected when laid down into a\nfile.\nThis fixes it by using one variable instead of using bit fields.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d98e6346350ac909f095768beb28b82368bd126f",
      "tree": "e0d1c78c08f0305f514ad69011a7b8701faf6f12",
      "parents": [
        "5fdbf9765b7ba6a45100851154768de703d51e76"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Tue Jul 01 16:23:49 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:12 2008 +0200"
      },
      "message": "KVM: Move KVM TRACE DEFINITIONS to common header\n\nMove KVM trace definitions from x86 specific kvm headers to common kvm\nheaders to create a cross-architecture numbering scheme for trace\nevents. This means the kvmtrace_format userspace tool won\u0027t need to know\nwhich architecture produced the log file being processed.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1327138e294ffda120a50c8f31d792addb196c79",
      "tree": "64ed2619cae4f2768b43f541ca5b73999d241646",
      "parents": [
        "cd5998ebfbc9e6cb44408efa217c15d7eea13675"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Aug 06 01:36:09 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Aug 25 17:28:25 2008 +0300"
      },
      "message": "KVM: fix userspace ABI breakage\n\nThe following part of commit 9ef621d3be56e1188300476a8102ff54f7b6793f\n(KVM: Support mixed endian machines) changed on the size of a struct\nthat is exported to userspace:\n\ninclude/linux/kvm.h:\n\n@@ -318,14 +318,14 @@ struct kvm_trace_rec {\n \t__u32 vcpu_id;\n \tunion {\n \t\tstruct {\n-\t\t\t__u32 cycle_lo, cycle_hi;\n+\t\t\t__u64 cycle_u64;\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} cycle;\n \t\tstruct {\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} nocycle;\n \t} u;\n-};\n+} __attribute__((packed));\n\nPacking a struct was the correct idea, but it packed the wrong struct.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ed8486243379ef3e6c61363df915882945c0eaec",
      "tree": "5504b545fc236d192be34a4a68de7b74c64f70e9",
      "parents": [
        "e930bffe95e1e886a1ede80726ea38df5838d067"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 11:30:57 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 12:34:02 2008 +0300"
      },
      "message": "KVM: Advertise synchronized mmu support to userspace\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9ef621d3be56e1188300476a8102ff54f7b6793f",
      "tree": "f5576d1365e726823c3eb4f772481cf5e4d1d0c7",
      "parents": [
        "25be46080f1a446cb2bda3daadbd22a5682b955e"
      ],
      "author": {
        "name": "Tan, Li",
        "email": "li.tan@intel.com",
        "time": "Fri May 23 14:54:09 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:32 2008 +0300"
      },
      "message": "KVM: Support mixed endian machines\n\nCurrently kvmtrace is not portable. This will prevent from copying a\ntrace file from big-endian target to little-endian workstation for analysis.\nIn the patch, kernel outputs metadata containing a magic number to trace\nlog, and changes 64-bit words to be u64 instead of a pair of u32s.\n\nSigned-off-by: Tan Li \u003cli.tan@intel.com\u003e\nAcked-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5f94c1741bdc7a336553122036e8a779e616ccbf",
      "tree": "fb0dc4edf0c346dc266eb2ee2d433cb2678a0bc4",
      "parents": [
        "92760499d01ef91518119908eb9b8798b6c9bd3f"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri May 30 16:05:54 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:31 2008 +0300"
      },
      "message": "KVM: Add coalesced MMIO support (common part)\n\nThis patch adds all needed structures to coalesce MMIOs.\nUntil an architecture uses it, it is not compiled.\n\nCoalesced MMIO introduces two ioctl() to define where are the MMIO zones that\ncan be coalesced:\n\n- KVM_REGISTER_COALESCED_MMIO registers a coalesced MMIO zone.\n  It requests one parameter (struct kvm_coalesced_mmio_zone) which defines\n  a memory area where MMIOs can be coalesced until the next switch to\n  user space. The maximum number of MMIO zones is KVM_COALESCED_MMIO_ZONE_MAX.\n\n- KVM_UNREGISTER_COALESCED_MMIO cancels all registered zones inside\n  the given bounds (bounds are also given by struct kvm_coalesced_mmio_zone).\n\nThe userspace client can check kernel coalesced MMIO availability by asking\nioctl(KVM_CHECK_EXTENSION) for the KVM_CAP_COALESCED_MMIO capability.\nThe ioctl() call to KVM_CAP_COALESCED_MMIO will return 0 if not supported,\nor the page offset where will be stored the ring buffer.\nThe page offset depends on the architecture.\n\nAfter an ioctl(KVM_RUN), the first page of the KVM memory mapped points to\na kvm_run structure. The offset given by KVM_CAP_COALESCED_MMIO is\nan offset to the coalesced MMIO ring expressed in PAGE_SIZE relatively\nto the address of the start of th kvm_run structure. The MMIO ring buffer\nis defined by the structure kvm_coalesced_mmio_ring.\n\n[akio: fix oops during guest shutdown]\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Akio Takebe \u003ctakebe_akio@jp.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b2312f059c893833de58876c74290511846cd208",
      "tree": "6164572aeaf0761412af0ce860b031e126cebcba",
      "parents": [
        "4baacfb0de53b05428c87d377fc8a3def4dc10e7"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Apr 16 23:28:07 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:37 2008 +0300"
      },
      "message": "KVM: ppc: Add DCR access information to struct kvm_run\n\nDevice Control Registers are essentially another address space found on PowerPC\n4xx processors, analogous to PIO on x86. DCRs are always 32 bits, and can be\nidentified by a 32-bit number. We forward most DCR accesses to userspace for\nemulation (with the exception of CPR0 registers, which can be read directly\nfor simplicity in timebase frequency determination).\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62d9f0dbc92d7e398fde53fc6021338393522e68",
      "tree": "028e62807ead3db11f15694323743b90c8211ef8",
      "parents": [
        "a45352908b88d383bc40e1e4d1a6cc5bbcefc895"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 11 13:24:45 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:16 2008 +0300"
      },
      "message": "KVM: add ioctls to save/store mpstate\n\nSo userspace can save/restore the mpstate during migration.\n\n[avi: export the #define constants describing the value]\n[christian: add s390 stubs]\n[avi: ditto for ia64]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2714d1d3d6be882b97cd0125140fccf9976a460a",
      "tree": "57b654cafff076ae95b62b7763113b1ef8511eb5",
      "parents": [
        "53371b5098543ab09dcb0c7ce31da887dbe58c62"
      ],
      "author": {
        "name": "Feng (Eric) Liu",
        "email": "eric.e.liu@intel.com",
        "time": "Thu Apr 10 15:31:10 2008 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:01:19 2008 +0300"
      },
      "message": "KVM: Add trace markers\n\nTrace markers allow userspace to trace execution of a virtual machine\nin order to monitor its performance.\n\nSigned-off-by: Feng (Eric) Liu \u003ceric.e.liu@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e28acfea5dd9dbc67c2594cbefc140129dbd0e3f",
      "tree": "2f66c3afcf18fd938bae1460f1c5d35ccbf75550",
      "parents": [
        "5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:34 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:46 2008 +0300"
      },
      "message": "KVM: s390: intercepts for diagnose instructions\n\nThis patch introduces interpretation of some diagnose instruction intercepts.\nDiagnose is our classic architected way of doing a hypercall. This patch\nfeatures the following diagnose codes:\n- vm storage size, that tells the guest about its memory layout\n- time slice end, which is used by the guest to indicate that it waits\n  for a lock and thus cannot use up its time slice in a useful way\n- ipl functions, which a guest can use to reset and reboot itself\n\nIn order to implement ipl functions, we also introduce an exit reason that\ncauses userspace to perform various resets on the virtual machine. All resets\nare described in the principles of operation book, except KVM_S390_RESET_IPL\nwhich causes a reboot of the machine.\n\nAcked-by: Martin Schwidefsky \u003cmartin.schwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ba5c1e9b6ceebdc39343cc03eb39f077abd3c571",
      "tree": "ab07e763ad7d9aad2ef189def5537e73a50c7503",
      "parents": [
        "8f2abe6a1e525e878bdf58f68ccd146d543fde84"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:26 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:44 2008 +0300"
      },
      "message": "KVM: s390: interrupt subsystem, cpu timer, waitpsw\n\nThis patch contains the s390 interrupt subsystem (similar to in kernel apic)\nincluding timer interrupts (similar to in-kernel-pit) and enabled wait\n(similar to in kernel hlt).\n\nIn order to achieve that, this patch also introduces intercept handling\nfor instruction intercepts, and it implements load control instructions.\n\nThis patch introduces an ioctl KVM_S390_INTERRUPT which is valid for both\nthe vm file descriptors and the vcpu file descriptors. In case this ioctl is\nissued against a vm file descriptor, the interrupt is considered floating.\nFloating interrupts may be delivered to any virtual cpu in the configuration.\n\nThe following interrupts are supported:\nSIGP STOP       - interprocessor signal that stops a remote cpu\nSIGP SET PREFIX - interprocessor signal that sets the prefix register of a\n                  (stopped) remote cpu\nINT EMERGENCY   - interprocessor interrupt, usually used to signal need_reshed\n                  and for smp_call_function() in the guest.\nPROGRAM INT     - exception during program execution such as page fault, illegal\n                  instruction and friends\nRESTART         - interprocessor signal that starts a stopped cpu\nINT VIRTIO      - floating interrupt for virtio signalisation\nINT SERVICE     - floating interrupt for signalisations from the system\n                  service processor\n\nstruct kvm_s390_interrupt, which is submitted as ioctl parameter when injecting\nan interrupt, also carrys parameter data for interrupts along with the interrupt\ntype. Interrupts on s390 usually have a state that represents the current\noperation, or identifies which device has caused the interruption on s390.\n\nkvm_s390_handle_wait() does handle waitpsw in two flavors: in case of a\ndisabled wait (that is, disabled for interrupts), we exit to userspace. In case\nof an enabled wait we set up a timer that equals the cpu clock comparator value\nand sleep on a wait queue.\n\n[christian: change virtio interrupt to 0x2603]\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8f2abe6a1e525e878bdf58f68ccd146d543fde84",
      "tree": "5f52959474a16847c740fb8668ebd9d6cbc75d07",
      "parents": [
        "b0c632db637d68ad39d9f97f452ce176253f5f4e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:23 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:43 2008 +0300"
      },
      "message": "KVM: s390: sie intercept handling\n\nThis path introduces handling of sie intercepts in three flavors: Intercepts\nare either handled completely in-kernel by kvm_handle_sie_intercept(),\nor passed to userspace with corresponding data in struct kvm_run in case\nkvm_handle_sie_intercept() returns -ENOTSUPP.\nIn case of partial execution in kernel with the need of userspace support,\nkvm_handle_sie_intercept() may choose to set up struct kvm_run and return\n-EREMOTE.\n\nThe trivial intercept reasons are handled in this patch:\nhandle_noop() just does nothing for intercepts that don\u0027t require our support\n  at all\nhandle_stop() is called when a cpu enters stopped state, and it drops out to\n  userland after updating our vcpu state\nhandle_validity() faults in the cpu lowcore if needed, or passes the request\n  to userland\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b0c632db637d68ad39d9f97f452ce176253f5f4e",
      "tree": "770d68c17cbcabc1543d1e9125669130fcf4fee4",
      "parents": [
        "8a88ac6183975c73c65b45f365f6f3b875c1348b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Mar 25 18:47:20 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:42 2008 +0300"
      },
      "message": "KVM: s390: arch backend for the kvm kernel module\n\nThis patch contains the port of Qumranet\u0027s kvm kernel module to IBM zSeries\n (aka s390x, mainframe) architecture. It uses the mainframe\u0027s virtualization\ninstruction SIE to run virtual machines with up to 64 virtual CPUs each.\nThis port is only usable on 64bit host kernels, and can only run 64bit guest\nkernels. However, running 31bit applications in guest userspace is possible.\n\nThe following source files are introduced by this patch\narch/s390/kvm/kvm-s390.c    similar to arch/x86/kvm/x86.c, this implements all\n                            arch callbacks for kvm. __vcpu_run calls back into\n                            sie64a to enter the guest machine context\narch/s390/kvm/sie64a.S      assembler function sie64a, which enters guest\n                            context via SIE, and switches world before and after                            that\ninclude/asm-s390/kvm_host.h contains all vital data structures needed to run\n                            virtual machines on the mainframe\ninclude/asm-s390/kvm.h      defines kvm_regs and friends for user access to\n                            guest register content\narch/s390/kvm/gaccess.h     functions similar to uaccess to access guest memory\narch/s390/kvm/kvm-s390.h    header file for kvm-s390 internals, extended by\n                            later patches\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97646202bc3f190dfcb48a3d506ea2445717d392",
      "tree": "0715fd746a29360522154e0a15f91da94a243555",
      "parents": [
        "1e977aa12dd4f80688b1f243762212e75c6d7fe8"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Mar 12 18:10:45 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:32 2008 +0300"
      },
      "message": "KVM: kvm.h: __user requires compiler.h\n\ninclude/linux/kvm.h defines struct kvm_dirty_log to\n\t[...]\n\tunion {\n\t\tvoid __user *dirty_bitmap; /* one bit per page */\n\t\t__u64 padding;\n\t};\n\n__user requires compiler.h to compile. Currently, this works on x86\nonly coincidentally due to other include files. This patch makes\nkvm.h compile in all cases.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2f333bcb4edd8daef99dabe4e7df8277af73cff1",
      "tree": "c984466e7756e0910bf470a094558b52bd10df33",
      "parents": [
        "9f81128591ca1e9907f2e7a7b195e33232167d60"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:37 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:27 2008 +0300"
      },
      "message": "KVM: MMU: hypercall based pte updates and TLB flushes\n\nHypercall based pte updates are faster than faults, and also allow use\nof the lazy MMU mode to batch operations.\n\nDon\u0027t report the feature if two dimensional paging is enabled.\n\n[avi:\n - one mmu_op hypercall instead of one per op\n - allow 64-bit gpa on hypercall\n - don\u0027t pass host errors (-ENOMEM) to guest]\n\n[akpm: warning fix on i386]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a28e4f5a621289fe0d9c8a461b0c256f9e17f3bc",
      "tree": "dfa62426cf55dfb2fad66e924eab34e9840bff12",
      "parents": [
        "308b0f239e8d6754b8b903d279e5b5b987e257ac"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:36 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:24 2008 +0300"
      },
      "message": "KVM: add basic paravirt support\n\nAdd basic KVM paravirt support. Avoid vm-exits on IO delays.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e0f63cb9277b64850854aee301762beeeb463473",
      "tree": "ae10bac92ee6cc1a658b479a311fac67ebd3524c",
      "parents": [
        "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Tue Mar 04 00:50:59 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:22 2008 +0300"
      },
      "message": "KVM: Add save/restore supporting of in kernel PIT\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a",
      "tree": "37a89d5c10869a9ada59df75b49d685708661434",
      "parents": [
        "4fcaa98267efc4d39ded9b0bc33c6b4a2f62fecd"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Mon Jan 28 05:10:22 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:21 2008 +0300"
      },
      "message": "KVM: In kernel PIT model\n\nThe patch moves the PIT model from userspace to kernel, and increases\nthe timer accuracy greatly.\n\n[marcelo: make last_injected_time per-guest]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nTested-and-Acked-by: Alex Davis \u003calex14641@yahoo.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a988b910ef816ed57e1cecbec14e98e906453f91",
      "tree": "ff76b7c516db08bb5adafd87d895f53356144d0d",
      "parents": [
        "edbe6c325da48e707a3b31310c5ff5783cf6c0be"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:59:20 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API for determining the number of supported memory slots\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f725230af9ea03f6cc6f4a90e87aa428df46ec19",
      "tree": "dcbeae15414805505a71b25c0ee989d698522ea4",
      "parents": [
        "7a95727567f0991751c2db774a110b4f8080de7f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:53:16 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API to retrieve the number of supported vcpus per vm\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "18068523d3a0b41fcee5b53cdb437a0ab4d65e4b",
      "tree": "cbedbd4371cb57c34728137988a7433ae736d79a",
      "parents": [
        "24e09cbf480a72f9c952af4ca77b159503dca44b"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Feb 15 17:52:47 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "KVM: paravirtualized clocksource: host part\n\nThis is the host part of kvm clocksource implementation. As it does\nnot include clockevents, it is a fairly simple implementation. We\nonly have to register a per-vcpu area, and start writing to it periodically.\n\nThe area is binary compatible with xen, as we use the same shadow_info\nstructure.\n\n[marcelo: fix bad_page on MSR_KVM_SYSTEM_TIME]\n[avi: save full value of the msr, even if enable bit is clear]\n[avi: clear previous value of time_page]\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "674eea0fc4d1d693250b5d3ddad42ca931c87dfd",
      "tree": "a7995dd52f6715081cac74484a84351003e48480",
      "parents": [
        "d730616384211436cfc84e6c2c1aa45351706a96"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 11 18:37:23 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 03 11:22:25 2008 +0200"
      },
      "message": "KVM: Make the supported cpuid list a host property rather than a vm property\n\nOne of the use cases for the supported cpuid list is to create a \"greatest\ncommon denominator\" of cpu capabilities in a server farm.  As such, it is\nuseful to be able to get the list without creating a virtual machine first.\n\nSince the code does not depend on the vm in any way, all that is needed is\nto move it to the device ioctl handler.  The capability identifier is also\nchanged so that binaries made against -rc1 will fail gracefully.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6f723c7911e7827091586ae63f4040874eeb75e5",
      "tree": "fd048c1c6cfd47131fc03e97a55520562d1f152b",
      "parents": [
        "571008daccc17c03ccec810922c2bcaed86b15c1"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Tue Jan 08 08:04:50 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:22 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_fpu to asm-x86/kvm.h\n\nThis patch moves kvm_fpu asm-x86/kvm.h to allow every architecture to\ndefine an own representation used for KVM_GET_FPU/KVM_SET_FPU.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b93463aa59d67b21b4921e30bd5c5dcc7c35ffbd",
      "tree": "8de9a2789624d27155d8a94c93a23c01f473fea7",
      "parents": [
        "b209749f528488c4c0d20a42c0fbcbf49e6933b3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 25 16:52:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:20 2008 +0200"
      },
      "message": "KVM: Accelerated apic support\n\nThis adds a mechanism for exposing the virtual apic tpr to the guest, and a\nprotocol for letting the guest update the tpr without causing a vmexit if\nconditions allow (e.g. there is no interrupt pending with a higher priority\nthan the new tpr).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b209749f528488c4c0d20a42c0fbcbf49e6933b3",
      "tree": "0e0a24225a5c6bca1c1986cc0daaf8753424cfe6",
      "parents": [
        "565f1fbd9d2f766dcfed5db90b89ef80afe8b49a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Oct 22 16:50:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:20 2008 +0200"
      },
      "message": "KVM: local APIC TPR access reporting facility\n\nAdd a facility to report on accesses to the local apic tpr even if the\nlocal apic is emulated in the kernel.  This is basically a hack that\nallows userspace to patch Windows which tends to bang on the tpr a lot.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ec10f4750db5e810cafef114a592428f8242b640",
      "tree": "940178c10eaf4f9cba65da77537b9c82ed0a739b",
      "parents": [
        "5736199afba8a8bb60a1ea282ab72857d6b16400"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Dec 17 20:27:27 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 18:01:19 2008 +0200"
      },
      "message": "KVM: Expose ioapic to ia64 save/restore APIs\n\nIA64 also needs to see ioapic structure in irqchip.\n\nSigned-off-by: xiantao.zhang@intel.com \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "51e296258cba41759ff0de5da110d8d52675ee67",
      "tree": "97675b88559d9bab5674fb2c497be17e0b7d5be9",
      "parents": [
        "d7e5117a2568f7407e98ca85155511ecfe4f0631"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 26 08:33:53 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:15 2008 +0200"
      },
      "message": "KVM: Add ifdef in irqchip struct for x86 only structures\n\nThis patch fixes a small issue where sturctures:\n\tkvm_pic_state\n\tkvm_ioapic_state\n\nare defined inside x86 specific code and may or may not\nbe defined in anyway for other architectures. The problem\ncaused is one cannot compile userspace apps (ex. libkvm)\nfor other archs since a size cannot be determined for these\nstructures.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0771671749b59a507b6da4efb931c44d9691e248",
      "tree": "8d73e81194c7522ad9c0754201c5199b79e2bb98",
      "parents": [
        "6d4e4c4fca5be806b888d606894d914847e82d78"
      ],
      "author": {
        "name": "Dan Kenigsberg",
        "email": "danken@qumranet.com",
        "time": "Wed Nov 21 17:10:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:13 2008 +0200"
      },
      "message": "KVM: Enhance guest cpuid management\n\nThe current cpuid management suffers from several problems, which inhibit\npassing through the host feature set to the guest:\n\n - No way to tell which features the host supports\n\n  While some features can be supported with no changes to kvm, others\n  need explicit support.  That means kvm needs to vet the feature set\n  before it is passed to the guest.\n\n - No support for indexed or stateful cpuid entries\n\n  Some cpuid entries depend on ecx as well as on eax, or on internal\n  state in the processor (running cpuid multiple times with the same\n  input returns different output).  The current cpuid machinery only\n  supports keying on eax.\n\n - No support for save/restore/migrate\n\n  The internal state above needs to be exposed to userspace so it can\n  be saved or migrated.\n\nThis patch adds extended cpuid support by means of three new ioctls:\n\n - KVM_GET_SUPPORTED_CPUID: get all cpuid entries the host (and kvm)\n   supports\n\n - KVM_SET_CPUID2: sets the vcpu\u0027s cpuid table\n\n - KVM_GET_CPUID2: gets the vcpu\u0027s cpuid table, including hidden state\n\n[avi: fix original KVM_SET_CPUID not removing nx on non-nx hosts as it did\n      before]\n\nSigned-off-by: Dan Kenigsberg \u003cdanken@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a162dd58736d446f52ca45b170508c3a5868807b",
      "tree": "dce2f29ccde737dba386d14986bfd77a9ec42456",
      "parents": [
        "244d57ece94b56692c61f2d507d1251b5844c550"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:37 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move cpuid structures to \u003casm/kvm.h\u003e\n\nThis patch moves structures:\n\tkvm_cpuid_entry\n\tkvm_cpuid\n\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "244d57ece94b56692c61f2d507d1251b5844c550",
      "tree": "69db4777d504c4af95432a464fd82b3fb2f7f100",
      "parents": [
        "3a56b20104f51bd6caf07e49fa1e3c09bee222e5"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:36 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_sregs and msr structures to \u003casm/kvm.h\u003e\n\nMove structures:\n\tkvm_sregs\n\tkvm_msr_entry\n\tkvm_msrs\n\tkvm_msr_list\n\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3a56b20104f51bd6caf07e49fa1e3c09bee222e5",
      "tree": "b0cb4975142644942361c17196c2470aae9fb4a0",
      "parents": [
        "d9ecf9281069c4c8dd429e1eb61cb7e0f3dda6b4"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:35 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_segment \u0026 kvm_dtable structure to  \u003casm/kvm.h\u003e\n\nThis patch moves structures:\n\tkvm_segment\n\tkvm_dtable\nfrom include/linux/kvm.h to include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d9ecf9281069c4c8dd429e1eb61cb7e0f3dda6b4",
      "tree": "c42f56ee70b8ac62288fa5d05cac2966992451e8",
      "parents": [
        "19d30b164417e7580d7f8c495a03137e1a45d4a7"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:34 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:08 2008 +0200"
      },
      "message": "KVM: Portability: Move structure lapic_state to \u003casm/kvm.h\u003e\n\nThis patch moves structure lapic_state from include/linux/kvm.h\nto include/asm-x86/kvm.h\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "19d30b164417e7580d7f8c495a03137e1a45d4a7",
      "tree": "a6ec84b1298540c9e75ea1a437d7e3060ea57b60",
      "parents": [
        "da1386a5bc43fa0faf17089a68c2991cf1d526c8"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:33 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_regs to \u003casm/kvm.h\u003e\n\nThis patch moves structure kvm_regs to include/asm-x86/kvm.h.\nEach architecture will need to create there own version of this\nstructure.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "da1386a5bc43fa0faf17089a68c2991cf1d526c8",
      "tree": "f8b14c46567ce4dd81bdc513a0bb81422099fe03",
      "parents": [
        "f6a40e3bdf5fe0a7d7d7f2dbc5b10158fbdad968"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:32 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 pic strutctures\n\nThis patch moves structures:\n\tkvm_pic_state\n\tkvm_ioapic_state\n\nto inclue/asm-x86/kvm.h.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f6a40e3bdf5fe0a7d7d7f2dbc5b10158fbdad968",
      "tree": "79dbcdf9cefcfa3757a94bd8f129968e2cc423a0",
      "parents": [
        "7faa8f6fcc119ce680a90a5f011841b466b1e161"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Nov 19 17:06:31 2007 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:07 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_memory_alias to asm/kvm.h\n\nThis patch moves sturct kvm_memory_alias from include/linux/kvm.h\nto include/asm-x86/kvm.h. Also have include/linux/kvm.h include\ninclude/asm/kvm.h.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cbc9402297b9a233981f74587786364cda21c771",
      "tree": "35ba97693ffc506bb08f6bafa9e61a260bc8189f",
      "parents": [
        "e0d62c7f48605119a7f9fa632e77561c89928963"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Oct 25 00:29:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: Add ioctl to tss address from userspace,\n\nCurrently kvm has a wart in that it requires three extra pages for use\nas a tss when emulating real mode on Intel.  This patch moves the allocation\ninternally, only requiring userspace to tell us where in the physical address\nspace we can place the tss.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6fc138d2278078990f597cb1f62fde9e5b458f96",
      "tree": "176026316843a4e47b8271f0e84a03f8807ecb64",
      "parents": [
        "d77c26fce93d07802db97498959587eb9347b31d"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 09 19:20:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Support assigning userspace memory to the guest\n\nInstead of having the kernel allocate memory to the guest, let userspace\nallocate it and pass the address to the kernel.\n\nThis is required for s390 support, but also enables features like memory\nsharing and using hugetlbfs backed memory.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "82ce2c96831f049a37118733ced5c8f7c8848102",
      "tree": "609fed010ebbb1ced6f0f24698148e69a72da5fd",
      "parents": [
        "195aefde9cc2cee38dd54ef92a866721fba4413e"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 02 18:52:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Allow dynamic allocation of the mmu shadow cache size\n\nThe user is now able to set how many mmu pages will be allocated to the guest.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a45450d0a559912873428077908f9bc1411042c",
      "tree": "9f643a1c6d58fcdaf9b3555131c4258d860793d2",
      "parents": [
        "0967b7bf1c22b55777aba46ff616547feed0b141"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 10 14:03:16 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:29 2007 +0200"
      },
      "message": "KVM: Replace enum by #define\n\nEasier for existence test (#ifdef) in userspace.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "96ad2cc6132479aa0aea485d0838a13fda765bd5",
      "tree": "dc3596b92981332cee0749004b7076a7d52a90b1",
      "parents": [
        "6bf9e962d14deb9e460afbbfd83ea2f450325c2d"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Thu Sep 06 12:22:56 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: in-kernel LAPIC save and restore support\n\nThis patch adds a new vcpu-based IOCTL to save and restore the local\napic registers for a single vcpu. The kernel only copies the apic page as\na whole, extraction of registers is left to userspace side. On restore, the\nAPIC timer is restarted from the initial count, this introduces a little\ndelay, but works fine.\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": "6bf9e962d14deb9e460afbbfd83ea2f450325c2d",
      "tree": "050b2be2fcded255afbb2512ed9c07adbd3f5b0f",
      "parents": [
        "c52fb35a8b5dada749d35fbe15ac1f9857b22896"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Sun Aug 05 10:49:16 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: in-kernel IOAPIC save and restore support\n\nThis patch adds support for in-kernel ioapic save and restore (to\nand from userspace). It uses the same get/set_irqchip ioctl as\nin-kernel PIC.\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6ceb9d791eeeb0a5493958f5d6d4dc7d91e59cf7",
      "tree": "8cef21acf9346fdbea36075029dc007fe969b51e",
      "parents": [
        "9cf98828d12285d1fb43e774c8c100a55f8f34e1"
      ],
      "author": {
        "name": "He, Qing",
        "email": "qing.he@intel.com",
        "time": "Thu Jul 26 11:05:18 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:25 2007 +0200"
      },
      "message": "KVM: Add get/set irqchip ioctls for in-kernel PIC live migration support\n\nThis patch adds two new ioctls to dump and write kernel irqchips for\nsave/restore and live migration. PIC s/r and l/m is implemented in this\npatch.\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": "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": "253abdee5ec2edd0a7f6dc2358bef42e3fdf1f39",
      "tree": "a9823774dcf3fa7a66c1895b78528d3239eaa71b",
      "parents": [
        "7e66f350cfc853043bfa71b281581dd6f92fa347"
      ],
      "author": {
        "name": "Yang, Sheng",
        "email": "sheng.yang@intel.com",
        "time": "Thu Aug 16 13:01:00 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:23 2007 +0200"
      },
      "message": "KVM: Communicate cr8 changes to userspace\n\nThis allows running 64-bit Windows.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "519ef35341b4f360f072ea74e398b70a5a2fc270",
      "tree": "aabebcfaea5ed195dfa106863361c6e8c24269f7",
      "parents": [
        "1c3d14fe0ab75337a3f6c06b6bc18bcbc2b3d0bc"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Jul 16 15:24:47 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:20 2007 +0200"
      },
      "message": "KVM: add hypercall nr to kvm_run\n\nAdd the hypercall number to kvm_run and initialize it.  This changes the ABI,\nbut as this particular ABI was unusable before this no users are affected.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9eb829ced8c6f2e43a3a644ddf1279ffeee38a33",
      "tree": "ea8360405de41110dd0063a9838447c5a7ab2632",
      "parents": [
        "66aee91aaab8f998d28a61ed7733be17ad8e6d8f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jul 18 13:05:58 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:18 2007 +0200"
      },
      "message": "KVM: Trivial: Use standard BITMAP macros, open-code userspace-exposed header\n\nCreating one\u0027s own BITMAP macro seems suboptimal: if we use manual\narithmetic in the one place exposed to userspace, we can use standard\nmacros elsewhere.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "dea8caee7b6971ae90e9d303b5d98dbf2dafed53",
      "tree": "64a6e284fa5ae8a7699937ef19c8994a5b7b49a1",
      "parents": [
        "65619eb5a88dae3dadbb1050f957ed357aa54a50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 23:12:26 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:17 2007 +0200"
      },
      "message": "KVM: Trivial: /dev/kvm interface is no longer experimental.\n\nKVM interface is no longer experimental.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "24cbc7e9cb0488095e4e144a762276c85ff55f9b",
      "tree": "edcd9287db085d197fd9935a4c29817bbcd6b3f9",
      "parents": [
        "dad3795d2baa4e02cbfd161d9089c73dea16b4ba"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 17 11:45:55 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sat Oct 13 10:18:17 2007 +0200"
      },
      "message": "KVM: Future-proof the exit information union ABI\n\nNote that as the size of struct kvm_run is not part of the ABI, we can add\nthings at the end.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2ff81f70b56dc1cdd3bf2f08414608069db6ef1a",
      "tree": "e0db2209f7a3a0284240e8245b12c7e72a5760b8",
      "parents": [
        "02c83209726270ddf9597deabc45e08f6fc3942c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 16:25:49 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Remove unused \u0027instruction_length\u0027\n\nAs we no longer emulate in userspace, this is meaningless.  We don\u0027t\ncompute it on SVM anyway.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "02c83209726270ddf9597deabc45e08f6fc3942c",
      "tree": "570c2d96c1daba96ae2891e63b1e55b3959e9aba",
      "parents": [
        "e7df56e4a00358b6975fae3b70dc9df1282d427a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 29 15:02:17 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:32 2007 +0300"
      },
      "message": "KVM: Don\u0027t require explicit indication of completion of mmio or pio\n\nIt is illegal not to return from a pio or mmio request without completing\nit, as mmio or pio is an atomic operation.  Therefore, we can simplify\nthe userspace interface by avoiding the completion indication.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b8836737d92c139be770eae3d6574e33d1224caf",
      "tree": "9c03b429fda12e6fbdc97469eb039076aa397744",
      "parents": [
        "e8207547d2f7b2f557bdb73015c1f74c32474438"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 01 16:34:31 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Add fpu get/set operations\n\nThese are really helpful when migrating an floating point app to another\nmachine.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e8207547d2f7b2f557bdb73015c1f74c32474438",
      "tree": "7e5c15bec5cf9ef45a81227b009e6449f5c6d47c",
      "parents": [
        "954bbbc236afe23b368abdf4942f313a5f6e1d50"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Mar 30 16:54:30 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:28 2007 +0300"
      },
      "message": "KVM: Add physical memory aliasing feature\n\nWith this, we can specify that accesses to one physical memory range will\nbe remapped to another.  This is useful for the vga window at 0xa0000 which\nis used as a movable window into the (much larger) framebuffer.\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": "07c45a366d89f8eaec5d9890e810171b408f9a52",
      "tree": "2f54f8c4ba795a1432ee6ac2e8042a472b87550a",
      "parents": [
        "1961d276c877b99f5f16aaf36377c75e0e191c3a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 07 13:05:38 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Allow kernel to select size of mmap() buffer\n\nThis allows us to store offsets in the kernel/user kvm_run area, and be\nsure that userspace has them mapped.  As offsets can be outside the\nkvm_run struct, userspace has no way of knowing how much to mmap.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1961d276c877b99f5f16aaf36377c75e0e191c3a",
      "tree": "4ea92fc2821bd0f9013ee567ee2f11c6cc532d79",
      "parents": [
        "6722c51c51518af9581ab6cd9b6aec93774334a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 05 19:46:05 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add guest mode signal mask\n\nAllow a special signal mask to be used while executing in guest mode.  This\nallows signals to be used to interrupt a vcpu without requiring signal\ndelivery to a userspace handler, which is quite expensive.  Userspace still\nreceives -EINTR and can get the signal via sigwait().\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": "b4e63f560beb187cffdaf706e534a1e2f9effb66",
      "tree": "1fe1a640530af04d1d722e0c99c8086b0e13f1e7",
      "parents": [
        "5d308f4550d9dc4c236e08b0377b610b9578577b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 13:59:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Allow userspace to process hypercalls which have no kernel handler\n\nThis is useful for paravirtualized graphics devices, for example.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5d308f4550d9dc4c236e08b0377b610b9578577b",
      "tree": "c19005059de37403db7962bcfa7bac657331b052",
      "parents": [
        "739872c56f3322c38320c7a5a543ef6f56f174bc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 17:56:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:24 2007 +0300"
      },
      "message": "KVM: Add method to check for backwards-compatible API extensions\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "739872c56f3322c38320c7a5a543ef6f56f174bc",
      "tree": "1dbd6e3c541f14e9553fc32a1b1c1d4096a77858",
      "parents": [
        "2a4dac3952468157297b81ae0a29815c02ead179"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 17:20:13 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Renumber ioctls\n\nThe recent changes have left the ioctl numbers in complete disarray.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2a4dac3952468157297b81ae0a29815c02ead179",
      "tree": "d3ee5dcf749061cc588be792b0eeaa06f02e69a1",
      "parents": [
        "106b552b43beac2694df5fbafc8f125a72df5f65"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 16:47:06 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Remove minor wart from KVM_CREATE_VCPU ioctl\n\nThat ioctl does not transfer any data, so it should be an _IO rather than an\n_IOW.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "106b552b43beac2694df5fbafc8f125a72df5f65",
      "tree": "3d26f1f7148eaa4cb6e6d882418db283d9f2d29f",
      "parents": [
        "06465c5a3aa9948a7b00af49cd22ed8f235cdb0f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Mar 01 16:20:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Remove the \u0027emulated\u0027 field from the userspace interface\n\nWe no longer emulate single instructions in userspace.  Instead, we service\nmmio or pio requests.\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": "9a2bb7f486dc639a1cf2ad803bf2227f0dc0809d",
      "tree": "db323e11ae5a5286a1e344b444162be53bc4d9fc",
      "parents": [
        "1ea252afcd4b264b71d9c3f55358ff5ba4c04f1b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Feb 22 12:58:31 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 03 10:52:23 2007 +0300"
      },
      "message": "KVM: Use a shared page for kernel/user communication when runing a vcpu\n\nInstead of passing a \u0027struct kvm_run\u0027 back and forth between the kernel and\nuserspace, allocate a page and allow the user to mmap() it.  This reduces\nneedless copying and makes the interface expandable by providing lots of\nfree space.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f7e6a45ad9224dfe9f0d76a45c43be7ccafe0b82",
      "tree": "70a99de2820f90186facd2caf41c14b7e2504e1c",
      "parents": [
        "bccf2150fe62dda5fb09efa2f64d2a234694eb48"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 19:47:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Bump API version\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bccf2150fe62dda5fb09efa2f64d2a234694eb48",
      "tree": "b5e6fc6440b864ddd1c32c4cee1916a0c5484c63",
      "parents": [
        "c5ea76600653b1a242321734435cb1c54778941a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 18:04:26 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Per-vcpu inodes\n\nAllocate a distinct inode for every vcpu in a VM.  This has the following\nbenefits:\n\n - the filp cachelines are no longer bounced when f_count is incremented on\n   every ioctl()\n - the API and internal code are distinctly clearer; for example, on the\n   KVM_GET_REGS ioctl, there is no need to copy the vcpu number from\n   userspace and then copy the registers back; the vcpu identity is derived\n   from the fd used to make the call\n\nRight now the performance benefits are completely theoretical since (a) we\ndon\u0027t support more than one vcpu per VM and (b) virtualization hardware\ninefficiencies completely everwhelm any cacheline bouncing effects.  But\nboth of these will change, and we need to prepare the API today.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f17abe9a44425ff9c9858bc1806cc09d6b5dad1c",
      "tree": "47b060818bbea16dfecf21b8008a99c978a5f0c3",
      "parents": [
        "37e29d906c6eb1ece907e509160518b2edc2c083"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 21 19:28:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 04 11:12:42 2007 +0200"
      },
      "message": "KVM: Create an inode per virtual machine\n\nThis avoids having filp-\u003ef_op and the corresponding inode-\u003ei_fop different,\nwhich is a little unorthodox.\n\nThe ioctl list is split into two: global kvm ioctls and per-vm ioctls.  A new\nioctl, KVM_CREATE_VM, is used to create VMs and return the VM fd.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8cd133073f9b5cd335c0b2e4740aceb025d50ca9",
      "tree": "9cbfc34b90769163c75788d15ded022127791ee5",
      "parents": [
        "26bb83a755593a53bd248e20d699b0c813f1e238"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:41 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 mismatch between 32-bit and 64-bit abi\n\nUnfortunately requiring a version bump.\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": "54810342f1372afdaf6cb9a6aea0c35df187db12",
      "tree": "97775733e60a5875f88f30c38a69ba278479299a",
      "parents": [
        "d92899a0014aa795c21d3cf726ef5ff7684399f4"
      ],
      "author": {
        "name": "Dor Laor",
        "email": "dor.laor@qumranet.com",
        "time": "Mon Feb 12 00:54:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] kvm: Two-way apic tpr synchronization\n\nWe report the value of cr8 to userspace on an exit.  Also let userspace change\ncr8 when we re-enter the guest.  The lets 64-bit guest code maintain the tpr\ncorrectly.\n\nThanks for Yaniv Kamay for the idea.\n\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "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": "0b76e20b27d20f7cb240e6b1b2dbebaa1b7f9b60",
      "tree": "409d8ca0f46500b5998aca9400c3419f9ebb789f",
      "parents": [
        "0f8e3d365a30a8788d4c348e2885bac9640bf4d0"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Dec 22 01:06:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:46 2006 -0800"
      },
      "message": "[PATCH] KVM: API versioning\n\nAdd compile-time and run-time API versioning.\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"
    }
  ]
}
