)]}'
{
  "log": [
    {
      "commit": "f78e0e2ee498e8f847500b565792c7d7634dcf54",
      "tree": "dfd8f35883b40939a1ec013e27e6303af06d3e77",
      "parents": [
        "a03490ed29d2771c675d4d9c0ffe22e19a1757f3"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Mon Oct 29 09:40:42 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: VMX: Enable memory mapped TPR shadow (FlexPriority)\n\nThis patch based on CR8/TPR patch, and enable the TPR shadow (FlexPriority)\nfor 32bit Windows.  Since TPR is accessed very frequently by 32bit\nWindows, especially SMP guest, with FlexPriority enabled, we saw significant\nperformance gain.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a03490ed29d2771c675d4d9c0ffe22e19a1757f3",
      "tree": "d4ed168cbb506282d4d6dddf922a3bdea0ae2ca7",
      "parents": [
        "6866b83ed7240bf4a7c50836ee10f61c8534503f"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Mon Oct 29 16:09:35 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: Portability: Move control register helper functions to x86.c\n\nThis patch moves the definitions of CR0_RESERVED_BITS,\nCR4_RESERVED_BITS, and CR8_RESERVED_BITS along with the following\nfunctions from kvm_main.c to x86.c:\nset_cr0(), set_cr3(), set_cr4(), set_cr8(), get_cr8(), lmsw(),\nload_pdptrs()\nThe static function wrapper inject_gp is duplicated in kvm_main.c and\nx86.c for now, the version in kvm_main.c should disappear once the last\nuser of it is gone too.\nThe function load_pdptrs is no longer static, and now defined in x86.h\nfor the time being, until the last user of it is gone from kvm_main.c.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6866b83ed7240bf4a7c50836ee10f61c8534503f",
      "tree": "ca4ca86b554537998ff0ee7c78d00ea723c3f537",
      "parents": [
        "5fb76f9be1a050a25e21a44ab2003c9d36a72a77"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Mon Oct 29 16:09:10 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: Portability: move get/set_apic_base to x86.c\n\nThis patch moves the implementation of get_apic_base and set_apic_base\nfrom kvm_main.c to x86.c\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5fb76f9be1a050a25e21a44ab2003c9d36a72a77",
      "tree": "fa5a184ade52e55746efb1bab59fa283ee3535ed",
      "parents": [
        "1fe779f8eccd16e527315e1bafd2b3a876ff2489"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Mon Oct 29 16:08:51 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: Portability: Move memory segmentation to x86.c\n\nThis patch moves the definition of segment_descriptor_64 for AMD64 and\nEM64T from kvm_main.c to segment_descriptor.h. It also adds a proper\n#ifndef...#define...#endif around that header file.\nThe implementation of segment_base is moved from kvm_main.c to x86.c.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1fe779f8eccd16e527315e1bafd2b3a876ff2489",
      "tree": "1af54558db85a9dcb8c9a78861849c2798d86cf5",
      "parents": [
        "b733bfb524af69612f85c36a511f0109c5e3fe8d"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Mon Oct 29 16:08:35 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: Portability: Split kvm_vm_ioctl v3\n\nThis patch splits kvm_vm_ioctl into archtecture independent parts, and\nx86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c.\nThe patch is unchanged since last submission.\n\nCommon ioctls for all architectures are:\nKVM_CREATE_VCPU, KVM_GET_DIRTY_LOG, KVM_SET_USER_MEMORY_REGION\n\nx86 specific ioctls are:\nKVM_SET_MEMORY_REGION,\nKVM_GET/SET_NR_MMU_PAGES, KVM_SET_MEMORY_ALIAS, KVM_CREATE_IRQCHIP,\nKVM_CREATE_IRQ_LINE, KVM_GET/SET_IRQCHIP\nKVM_SET_TSS_ADDR\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b733bfb524af69612f85c36a511f0109c5e3fe8d",
      "tree": "7d9920070b78d7d84f7def39501bb211dc8de602",
      "parents": [
        "3067714cf59bd4a6dbf788b709485bc62c1ff845"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 28 18:52:05 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: MMU: Topup the mmu memory preallocation caches before emulating an insn\n\nEmulation may cause a shadow pte to be instantiated, which requires\nmemory resources.  Make sure the caches are filled to avoid an oops.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3067714cf59bd4a6dbf788b709485bc62c1ff845",
      "tree": "4cdfba475258886666150e638568e6ad5e8c0e2f",
      "parents": [
        "c7e75a3db4ecd952e7a5562cea1b27007bf0c01c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 28 18:48:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: Move page fault processing to common code\n\nThe code that dispatches the page fault and emulates if we failed to map\nis duplicated across vmx and svm.  Merge it to simplify further bugfixing.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c7e75a3db4ecd952e7a5562cea1b27007bf0c01c",
      "tree": "a83547a4a40ff4c05a62ab5eb112d4417462d235",
      "parents": [
        "fe7935d49fbe33308c1b5f0e35137989da851010"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 28 16:34:25 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: x86 emulator: don\u0027t depend on cr2 for mov abs emulation\n\nThe \u0027mov abs\u0027 instruction family (opcodes 0xa0 - 0xa3) still depends on cr2\nprovided by the page fault handler.  This is wrong for several reasons:\n\n- if an instruction accessed misaligned data that crosses a page boundary,\n  and if the fault happened on the second page, cr2 will point at the\n  second page, not the data itself.\n\n- if we\u0027re emulating in real mode, or due to a FlexPriority exit, there\n  is no cr2 generated.\n\nSo, this change adds decoding for this instruction form and drops reliance\non cr2.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fe7935d49fbe33308c1b5f0e35137989da851010",
      "tree": "9adf908a42aafda09e1d100072bcb332611c8b85",
      "parents": [
        "54a08c0449683f763dc69e653d17e8c120e16299"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 25 14:18:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:57 2008 +0200"
      },
      "message": "KVM: SVM: Let gcc to choose which registers to save (i386)\n\nThis patch lets GCC to determine which registers to save when we\nswitch to/from a VCPU in the case of AMD i386\n\n* Original code saves following registers:\n\n    ebx, ecx, edx, esi, edi, ebp\n\n* Patched code:\n\n  - informs GCC that we modify following registers\n    using the clobber description:\n\n    ebx, ecx, edx, esi, edi\n\n  - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber\n    description.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "54a08c0449683f763dc69e653d17e8c120e16299",
      "tree": "959fd4654d64837d2eeb87d37fe1506a295f5cb7",
      "parents": [
        "ff593e5abebd899b0b41c11280e2fbeff4103375"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 25 14:18:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: SVM: Let gcc to choose which registers to save (x86_64)\n\nThis patch lets GCC to determine which registers to save when we\nswitch to/from a VCPU in the case of AMD x86_64.\n\n* Original code saves following registers:\n\n    rbx, rcx, rdx, rsi, rdi, rbp,\n    r8, r9, r10, r11, r12, r13, r14, r15\n\n* Patched code:\n\n  - informs GCC that we modify following registers\n    using the clobber description:\n\n    rbx, rcx, rdx, rsi, rdi\n    r8, r9, r10, r11, r12, r13, r14, r15\n\n  - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber\n    description.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ff593e5abebd899b0b41c11280e2fbeff4103375",
      "tree": "d4ebafad5ab7a358114e82acd251379d01ba6855",
      "parents": [
        "c20363006af64cf397519da5e984b18e6bdffd82"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 25 14:18:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: VMX: Let gcc to choose which registers to save (i386)\n\nThis patch lets GCC to determine which registers to save when we\nswitch to/from a VCPU in the case of intel i386.\n\n* Original code saves following registers:\n\n    eax, ebx, ecx, edx, edi, esi, ebp (using popa)\n\n* Patched code:\n\n  - informs GCC that we modify following registers\n    using the clobber description:\n\n    ebx, edi, rsi\n\n  - doesn\u0027t save eax because it is an output operand (vmx-\u003efail)\n\n  - cannot put ecx in clobber description because it is an input operand,\n    but as we modify it and we want to keep its value (vcpu), we must\n    save it (pop/push)\n\n  - ebp is saved (pop/push) because GCC seems to ignore its use the clobber\n    description.\n\n  - edx is saved (pop/push) because it is reserved by GCC (REGPARM) and\n    cannot be put in the clobber description.\n\n  - line \"mov (%%esp), %3 \\n\\t\" has been removed because %3\n    is ecx and ecx is restored just after.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c20363006af64cf397519da5e984b18e6bdffd82",
      "tree": "630c69b29c57900499e291d0e01d2010812e7ae0",
      "parents": [
        "cbc9402297b9a233981f74587786364cda21c771"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 25 14:18:52 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: VMX: Let gcc to choose which registers to save (x86_64)\n\nThis patch lets GCC to determine which registers to save when we\nswitch to/from a VCPU in the case of intel x86_64.\n\n* Original code saves following registers:\n\n    rax, rbx, rcx, rdx, rsi, rdi, rbp,\n    r8, r9, r10, r11, r12, r13, r14, r15\n\n* Patched code:\n\n  - informs GCC that we modify following registers\n    using the clobber description:\n\n    rbx, rdi, rsi,\n    r8, r9, r10, r11, r12, r13, r14, r15\n\n  - doesn\u0027t save rax because it is an output operand (vmx-\u003efail)\n\n  - cannot put rcx in clobber description because it is an input operand,\n    but as we modify it and we want to keep its value (vcpu), we must\n    save it (pop/push)\n\n  - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber\n    description.\n\n  - rdx is saved (pop/push) because it is reserved by GCC (REGPARM) and\n    cannot be put in the clobber description.\n\n  - line \"mov (%%rsp), %3 \\n\\t\" has been removed because %3\n    is rcx and rcx is restored just after.\n\n  - line ASM_VMX_VMWRITE_RSP_RDX() is moved out of the ifdef/else/endif\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\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": "e0d62c7f48605119a7f9fa632e77561c89928963",
      "tree": "eb11b29780f12433897a720a7c9db719663152cf",
      "parents": [
        "210c7c4d7f200f00ec34960a8c96bb990cbd266d"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Wed Oct 24 23:57:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: Add kernel-internal memory slots\n\nReserve a few memory slots for kernel internal use.  This is good for case\nyou have to register memory region and you want to be sure it was not\nregistered from userspace, and for case you want to register a memory region\nthat won\u0027t be seen from userspace.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "210c7c4d7f200f00ec34960a8c96bb990cbd266d",
      "tree": "fa6b1b15d4b3db3a55c42ec991ad413278a7654a",
      "parents": [
        "80b14b5b32cb0a98234283daf9b5a6643e1a1ef3"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Wed Oct 24 23:52:57 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:56 2008 +0200"
      },
      "message": "KVM: Export memory slot allocation mechanism\n\nRemove kvm memory slot allocation mechanism from the ioctl\nand put it to exported function.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "80b14b5b32cb0a98234283daf9b5a6643e1a1ef3",
      "tree": "1abf719d18e5bcbb6ba7fd5b517bb70ebb8b1776",
      "parents": [
        "5f43238d036fb30e73563e81e42d9c6f1de5551a"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Oct 25 11:54:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Unmap kernel-allocated memory on slot destruction\n\nkvm_vm_ioctl_set_memory_region() is able to remove memory in addition to\nadding it.  Therefore when using kernel swapping support for old userspaces,\nwe need to munmap the memory if the user request to remove it\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5f43238d036fb30e73563e81e42d9c6f1de5551a",
      "tree": "5188b44c4c34b75ae61eca7465df23aa448546a2",
      "parents": [
        "8c392696e749171531d155ea5cefdfc1c970fd18"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Oct 11 15:34:17 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Per-architecture hypercall definitions\n\nCurrently kvm provides hypercalls only for x86* architectures. To\nprovide hypercall infrastructure for other kvm architectures I split\nkvm_para.h into a generic header file and architecture specific\ndefinitions.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8c392696e749171531d155ea5cefdfc1c970fd18",
      "tree": "36b97e721b3423b3272c9866ed32b06251db8b09",
      "parents": [
        "2fcceae145645ec6a4fab0a806bb674d7484d97b"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Oct 10 12:15:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Split IOAPIC reset function and export for kernel RESET\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2fcceae145645ec6a4fab0a806bb674d7484d97b",
      "tree": "1b17bb063940bcef205a7d21dbb820ffca7adc38",
      "parents": [
        "60395224d94945544f1f9dce5566981844bf0e77"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Oct 10 12:14:25 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Export PIC reset for kernel device reset\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "60395224d94945544f1f9dce5566981844bf0e77",
      "tree": "d86339167d7bfbd5c62bc85c27679c0b8639a2e4",
      "parents": [
        "e00c8cf29b9798eb9918469b0cce1766e0ae40d7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 21 11:03:36 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Add a might_sleep() annotation to gfn_to_page()\n\nThis will help trap accesses to guest memory in atomic context.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e00c8cf29b9798eb9918469b0cce1766e0ae40d7",
      "tree": "2824cf4bfffc96faeda6981a790295c2e4f49690",
      "parents": [
        "34c16eecf78ed4cf01f39ac7211f5b57942ec899"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 21 11:00:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup()\n\nSplit guest reset code out of vmx_vcpu_setup().  Besides being cleaner, this\nmoves the realmode tss setup (which can sleep) outside vmx_vcpu_setup()\n(which is executed with preemption enabled).\n\n[izik: remove unused variable]\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "34c16eecf78ed4cf01f39ac7211f5b57942ec899",
      "tree": "9a9d6192db411cc3c7ff665cc94a8797eb55aa80",
      "parents": [
        "8d4e1288ebb753d3140d81cb349f22b0a6829a4a"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sat Oct 20 15:34:38 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1)\n\nFirst step to split kvm_vcpu.  Currently, we just use an macro to define\nthe common fields in kvm_vcpu for all archs, and all archs need to define\nits own kvm_vcpu struct.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8d4e1288ebb753d3140d81cb349f22b0a6829a4a",
      "tree": "3fb754321abd1da8fa107f500dedd4a56f94ac0a",
      "parents": [
        "e56a7a28e21aa2d1af659d8f38952411ce9ae40e"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Thu Oct 18 09:59:34 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Allocate userspace memory for older userspace\n\nAllocate a userspace buffer for older userspaces.  Also eliminate phys_mem\nbuffer.  The memset() in kvmctl really kills initial memory usage but swapping\nworks even with old userspaces.\n\nA side effect is that maximum guest side is reduced for older userspace on\ni386.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e56a7a28e21aa2d1af659d8f38952411ce9ae40e",
      "tree": "ef8899484d5c805cf71d9138a705ef649487751d",
      "parents": [
        "8a7ae055f3533b520401c170ac55e30628b34df5"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Oct 18 14:39:10 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Use virtual cpu accounting if available for guest times.\n\nppc and s390 offer the possibility to track process times precisely\nby looking at cpu timer on every context switch, irq, softirq etc.\nWe can use that infrastructure as well for guest time accounting.\nWe need to account the used time before we change the state.\nThis patch adds a call to account_system_vtime to kvm_guest_enter\nand kvm_guest exit. If CONFIG_VIRT_CPU_ACCOUNTING is not set,\naccount_system_vtime is defined in hardirq.h as an empty function,\nwhich means this patch does not change the behaviour on other\nplatforms.\n\nI compile tested this patch on x86 and function tested the patch on\ns390.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a7ae055f3533b520401c170ac55e30628b34df5",
      "tree": "f9654746dc92fa18ef66e49e12537dc6cb1d32e6",
      "parents": [
        "cea7bb21280e3a825e64b54740edc5d3e6e4193c"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 18 11:09:33 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Partial swapping of guest memory\n\nThis allows guest memory to be swapped.  Pages which are currently mapped\nvia shadow page tables are pinned into memory, but all other pages can\nbe freely swapped.\n\nThe patch makes gfn_to_page() elevate the page\u0027s reference count, and\nintroduces kvm_release_page() that pairs with it.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cea7bb21280e3a825e64b54740edc5d3e6e4193c",
      "tree": "d9714d8c13491a433951b83a176f2a04f6521009",
      "parents": [
        "9647c14c98687d0abf5197e74b9d1448ab6ebb95"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 17 19:17:48 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Make gfn_to_page() always safe\n\nIn case the page is not present in the guest memory map, return a dummy\npage the guest can scribble on.\n\nThis simplifies error checking in its users.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9647c14c98687d0abf5197e74b9d1448ab6ebb95",
      "tree": "6bd61ace880d9428c38ebe45858793d689ca4f4b",
      "parents": [
        "98348e9507ace5fda95432ff8ca23f13e7f66176"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 16 14:43:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Keep a reverse mapping of non-writable translations\n\nThe current kvm mmu only reverse maps writable translation.  This is used\nto write-protect a page in case it becomes a pagetable.\n\nBut with swapping support, we need a reverse mapping of read-only pages as\nwell:  when we evict a page, we need to remove any mapping to it, whether\nwritable or not.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "98348e9507ace5fda95432ff8ca23f13e7f66176",
      "tree": "14c63420c4af00a7956e7cfc8b1c8c07d5e79566",
      "parents": [
        "b284be576471b1521dd04c0845beedb790cbb9d7"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 16 14:42:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b284be576471b1521dd04c0845beedb790cbb9d7",
      "tree": "12449fe425d72c15d2664956cd8a718e9429d44f",
      "parents": [
        "42bf3f0a1f5a25be26e6bb53162cdee82410310d"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Tue Oct 16 18:23:27 2007 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: x86 emulator: cmc, clc, cli, sti\n\nInstruction: cmc, clc, cli, sti\nopcodes: 0xf5, 0xf8, 0xfa, 0xfb respectively.\n\n[avi: fix reference to EFLG_IF which is not defined anywhere]\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "42bf3f0a1f5a25be26e6bb53162cdee82410310d",
      "tree": "f134c24823081e6461f02f396d664e2f43e36486",
      "parents": [
        "d77a25074a8f845401f0eb786ebb8996e45d9e22"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 17 12:18:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: MMU: Simplify page table walker\n\nSimplify the walker level loop not to carry so much information from one\nloop to the next.  In addition to being complex, this made kmap_atomic()\ncritical sections difficult to manage.\n\nAs a result of this change, kmap_atomic() sections are limited to actually\ntouching the guest pte, which allows the other functions called from the\nwalker to do sleepy operations.  This will happen when we enable swapping.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d77a25074a8f845401f0eb786ebb8996e45d9e22",
      "tree": "54729328075c2b822ebbb9266b9a23d4eeefd92c",
      "parents": [
        "3176bc3e59cc4e30ac10888f08124b31969a7a88"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Fri Oct 12 17:40:33 2007 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: x86 emulator: Implement emulation of instruction: inc \u0026 dec\n\nInstructions:\n\tinc r16/r32 (opcode 0x40-0x47)\n\tdec r16/r32 (opcode 0x48-0x4f)\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3176bc3e59cc4e30ac10888f08124b31969a7a88",
      "tree": "a5f7bb276f3b553fffc286bcb28714d478776eb9",
      "parents": [
        "ab6ef34b906546d85d92dbc3e0fb4e01cce05f62"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Oct 16 17:22:08 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH\n\nWe now have a new namespace, KVM_REQ_*, for bits in vcpu-\u003erequests.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ab6ef34b906546d85d92dbc3e0fb4e01cce05f62",
      "tree": "7d6d5211b2e6b1cb0f66fe429e5f1d114017b0c2",
      "parents": [
        "e25e3ed56fce591e09477b0ce043d90f97988f37"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Oct 16 16:23:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Move apic timer interrupt backlog processing to common code\n\nBeside the obvious goodness of making code more common, this prevents\na livelock with the next patch which moves interrupt injection out of the\ncritical section.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e25e3ed56fce591e09477b0ce043d90f97988f37",
      "tree": "bf71477e427298f59cb12978e3ddfa9d5b90993c",
      "parents": [
        "e4d47f404b59adf22f639fedc943db99f090f9ee"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri Oct 12 11:01:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Add some \\n in ioapic_debug()\n\nAdd new-line at end of debug strings.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4d47f404b59adf22f639fedc943db99f090f9ee",
      "tree": "f9a4912f78242055d7a40f18f0f4887db36619fe",
      "parents": [
        "313a3dc75da20630e549441932a7654223f8d72a"
      ],
      "author": {
        "name": "Qing He",
        "email": "qing.he@intel.com",
        "time": "Mon Sep 24 17:39:41 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: apic round robin cleanup\n\nIf no apic is enabled in the bitmap of an interrupt delivery with delivery\nmode of lowest priority, a warning should be reported rather than select\na fallback vcpu\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Eddie (Yaozu) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "313a3dc75da20630e549441932a7654223f8d72a",
      "tree": "96af61f06c198834d49c886476ed30b418d853c0",
      "parents": [
        "c4fcc2724628c6548748ec80a90b548fc300e81f"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Oct 11 19:16:52 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: Portability: split kvm_vcpu_ioctl\n\nThis patch splits kvm_vcpu_ioctl into archtecture independent parts, and\nx86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c.\n\nCommon ioctls for all architectures are:\nKVM_RUN, KVM_GET/SET_(S-)REGS, KVM_TRANSLATE, KVM_INTERRUPT,\nKVM_DEBUG_GUEST, KVM_SET_SIGNAL_MASK, KVM_GET/SET_FPU\nNote that some PPC chips don\u0027t have an FPU, so we might need an #ifdef\naround KVM_GET/SET_FPU one day.\n\nx86 specific ioctls are:\nKVM_GET/SET_LAPIC, KVM_SET_CPUID, KVM_GET/SET_MSRS\n\nAn interresting aspect is vcpu_load/vcpu_put. We now have a common\nvcpu_load/put which does the preemption stuff, and an architecture\nspecific kvm_arch_vcpu_load/put. In the x86 case, this one calls the\nvmx/svm function defined in kvm_x86_ops.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nReviewed-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c4fcc2724628c6548748ec80a90b548fc300e81f",
      "tree": "30bfbb4b8624636270a6921a4c8fdbcef054bff0",
      "parents": [
        "5df34a86f917024b67f9e7c850153390973cdfe3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:30:21 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: When updating the dirty bit, inform the mmu about it\n\nSince the mmu uses different shadow pages for dirty large pages and clean\nlarge pages, this allows the mmu to drop ptes that are now invalid.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5df34a86f917024b67f9e7c850153390973cdfe3",
      "tree": "39a15beafdaa46145fed511ed7126cbef2c7f294",
      "parents": [
        "6bfccdc9ae55bb2e0be2e015d7d1ba061f4071c5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:22:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Move dirty bit updates to a separate function\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6bfccdc9ae55bb2e0be2e015d7d1ba061f4071c5",
      "tree": "ab390a7bd0803d7535bea6c28cbb4e26d4dd8e87",
      "parents": [
        "cc70e7374df1e3a56d718e8ca330619f316511a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:13:49 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Instantiate real-mode shadows as user writable shadows\n\nThis is consistent with real-mode permissions.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cc70e7374df1e3a56d718e8ca330619f316511a6",
      "tree": "6746e9724eb51486104800be264e6baa64c8fefd",
      "parents": [
        "c22e3514fceb2f514093ce1d19a2f660ac7347ae"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:12:24 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Disable write access on clean large pages\n\nBy forcing clean huge pages to be read-only, we have separate roles\nfor the shadow of a clean large page and the shadow of a dirty large\npage.  This is necessary because different ptes will be instantiated\nfor the two cases, even for read faults.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c22e3514fceb2f514093ce1d19a2f660ac7347ae",
      "tree": "7df0ec47014030c2dd126d25be868306ea87a7ec",
      "parents": [
        "e3c5e7ec9efe0ebd47fa812cc86f01c51905edf6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:08:41 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: Fix nx access bit for huge pages\n\nWe must set the bit before the shift, otherwise the wrong bit gets set.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e3c5e7ec9efe0ebd47fa812cc86f01c51905edf6",
      "tree": "b049d19c4a1a417977a286781d98301b39bea4f2",
      "parents": [
        "4a4c99248713e878e1e2880015d01049aec805f3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 12:32:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Move guest pte dirty bit management to the guest pagetable walker\n\nThis is more consistent with the accessed bit management, and makes the dirty\nbit available earlier for other purposes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4a4c99248713e878e1e2880015d01049aec805f3",
      "tree": "a847d398faafef4ccbd44de13cfe5d1040fd1df1",
      "parents": [
        "f67a46f4aa1212b38696ac6b6a82b4323cea61aa"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Wed Oct 10 20:08:41 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: More struct kvm_vcpu -\u003e struct kvm cleanups\n\nThis time, the biggest change is gpa_to_hpa. The translation of GPA to HPA does\nnot depend on the VCPU state unlike GVA to GPA so there\u0027s no need to pass in\nthe kvm_vcpu.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f67a46f4aa1212b38696ac6b6a82b4323cea61aa",
      "tree": "7d9b86dda5a4b4196f0cbd11ef395d7e1c78fbb4",
      "parents": [
        "043405e10001fe7aae60c46a57189515f13a6468"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Wed Oct 10 19:25:50 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: Clean up MMU functions to take struct kvm when appropriate\n\nSome of the MMU functions take a struct kvm_vcpu even though they affect all\nVCPUs.  This patch cleans up some of them to instead take a struct kvm.  This\nmakes things a bit more clear.\n\nThe main thing that was confusing me was whether certain functions need to be\ncalled on all VCPUs.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "043405e10001fe7aae60c46a57189515f13a6468",
      "tree": "a2f2e56117b200aeed70a853489b8e669a48fe15",
      "parents": [
        "6fc138d2278078990f597cb1f62fde9e5b458f96"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Oct 10 17:16:19 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Move x86 msr handling to new files x86.[ch]\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.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": "d77c26fce93d07802db97498959587eb9347b31d",
      "tree": "ed49397152d9a8c2ce3dda751a235283f07ef220",
      "parents": [
        "7e620d16b8838bc0ad5b27d2dd55796270cd588c"
      ],
      "author": {
        "name": "Mike Day",
        "email": "ncmike@ncultra.org",
        "time": "Mon Oct 08 09:02:08 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: CodingStyle cleanup\n\nSigned-off-by: Mike D. Day \u003cncmike@ncultra.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7e620d16b8838bc0ad5b27d2dd55796270cd588c",
      "tree": "84d755dd2214324c43b49a13c0340b534c3f3138",
      "parents": [
        "76fafa5e22bd82e92d2734852ba23f17322d675a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:55:29 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Remove gratuitous casts from lapic.c\n\nSince vcpu-\u003eapic is of the correct type, there\u0027s not need to cast.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "76fafa5e22bd82e92d2734852ba23f17322d675a",
      "tree": "f7b81035e86b5b26cbb2d2d13958c805f4990589",
      "parents": [
        "d589444e924bc72e42fa94853f9096589d69374d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:50:48 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Hoist kvm_create_lapic() into kvm_vcpu_init()\n\nMove kvm_create_lapic() into kvm_vcpu_init(), rather than having svm\nand vmx do it.  And make it return the error rather than a fairly\nrandom -ENOMEM.\n\nThis also solves the problem that neither svm.c nor vmx.c actually\nhandles the error path properly.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d589444e924bc72e42fa94853f9096589d69374d",
      "tree": "4150b8e1274288911687fe6f4b2dff7f7d052d2b",
      "parents": [
        "82ce2c96831f049a37118733ced5c8f7c8848102"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:48:30 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Add kvm_free_lapic() to pair with kvm_create_lapic()\n\nInstead of the asymetry of kvm_free_apic, implement kvm_free_lapic().\nAnd guess what?  I found a minor bug: we don\u0027t need to hrtimer_cancel()\nfrom kvm_main.c, because we do that in kvm_free_apic().\n\nAlso:\n1) kvm_vcpu_uninit should be the reverse order from kvm_vcpu_init.\n2) Don\u0027t set apic-\u003eregs_page to zero before freeing apic.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "195aefde9cc2cee38dd54ef92a866721fba4413e",
      "tree": "e9d7f47e8a462ee193a53cc4c21e5b3c7254956c",
      "parents": [
        "290fc38da8187b53b78dd4d5ab27a20b88ef8b61"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Oct 01 22:14:18 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Add general accessors to read and write guest memory\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "290fc38da8187b53b78dd4d5ab27a20b88ef8b61",
      "tree": "983b2b4cecbe489f7b84391c5eed34aa9f073da0",
      "parents": [
        "f566e09fc2c9f4164e1f0017c8c1c7a18bad7d72"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Sep 27 14:11:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Remove the usage of page-\u003eprivate field by rmap\n\nWhen kvm uses user-allocated pages in the future for the guest, we won\u0027t\nbe able to use page-\u003eprivate for rmap, since page-\u003ermap is reserved for\nthe filesystem.  So we move the rmap base pointers to the memory slot.\n\nA side effect of this is that we need to store the gfn of each gpte in\nthe shadow pages, since the memory slot is addressed by gfn, instead of\nhfn like struct page.\n\nSigned-off-by: Izik Eidus \u003cizik@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f566e09fc2c9f4164e1f0017c8c1c7a18bad7d72",
      "tree": "54ceab38b9426c02b1cf5bb4138eb5426cc9650f",
      "parents": [
        "eae5ecb5b9043812968fae7ad9d74bf5e7a50245"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 30 11:02:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: VMX: Simplify vcpu_clear()\n\nNow that smp_call_function_single() knows how to call a function on the\ncurrent cpu, there\u0027s no need to check explicitly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "eae5ecb5b9043812968fae7ad9d74bf5e7a50245",
      "tree": "68af0cc24f0e878240109ab2b3f1dfa27b3f80ff",
      "parents": [
        "b4c6abfef400c0f74d9b86a149a6719706cfdbbc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 30 10:50:12 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: VMX: Don\u0027t clear the vmcs if the vcpu is not loaded on any processor\n\nNoted by Eddie Dong.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b4c6abfef400c0f74d9b86a149a6719706cfdbbc",
      "tree": "f524e25db195f40aa70b7abf9f87ccabf137354b",
      "parents": [
        "a22436b7b8ec9b14a0451d9ac0fdc9d370bd7800"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 25 13:36:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its effect\n\nThis patch modifies the management of REX prefix according behavior\nI saw in Xen 3.1.  In Xen, this modification has been introduced by\nJan Beulich.\n\nhttp://lists.xensource.com/archives/html/xen-changelog/2007-01/msg00081.html\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a22436b7b8ec9b14a0451d9ac0fdc9d370bd7800",
      "tree": "b96486abefb623cde2c0af4b82c459b9d811865f",
      "parents": [
        "e4f8e03956de4b1a1dc4bbbdefa9c973d01ee91f"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Sep 24 17:00:58 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: Purify x86_decode_insn() error case management\n\nThe only valid case is on protected page access, other cases are errors.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4f8e03956de4b1a1dc4bbbdefa9c973d01ee91f",
      "tree": "968160b42240396d44c94105b5923d57b73a5d8d",
      "parents": [
        "a01af5ec5163cdc51c00f6dcb22d7766199377cf"
      ],
      "author": {
        "name": "Qing He",
        "email": "qing.he@intel.com",
        "time": "Mon Sep 24 17:22:13 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: x86_emulator: no writeback for bt\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a01af5ec5163cdc51c00f6dcb22d7766199377cf",
      "tree": "36ff10826f39b643736542957a980c37c4ad6fb1",
      "parents": [
        "05f086f87ef17da70d5f4e9b063e9ea31ab20f28"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Sep 24 11:10:56 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: x86 emulator: Remove no_wb, use dst.type \u003d OP_NONE instead\n\nRemove no_wb, use dst.type \u003d OP_NONE instead, idea stollen from xen-3.1\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "05f086f87ef17da70d5f4e9b063e9ea31ab20f28",
      "tree": "e55091bf167c72631ea29b5d3a32045097dd779a",
      "parents": [
        "8cdbd2c9bf3108c41563eef586f22fa8b5174de0"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Sep 24 11:10:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:48 2008 +0200"
      },
      "message": "KVM: x86 emulator: remove _eflags and use directly ctxt-\u003eeflags.\n\nRemove _eflags and use directly ctxt-\u003eeflags. Caching eflags is not needed as\nit is restored to vcpu by kvm_main.c:emulate_instruction() from ctxt-\u003eeflags\nonly if emulation doesn\u0027t fail.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8cdbd2c9bf3108c41563eef586f22fa8b5174de0",
      "tree": "d64daf3bf5b9a85c667c016399352151726ba723",
      "parents": [
        "217648638ccb62dfeea5ac5fe768539cdee61ed0"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Sep 24 11:10:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:48 2008 +0200"
      },
      "message": "KVM: x86 emulator: split some decoding into functions for readability\n\nTo improve readability, move push, writeback, and grp 1a/2/3/4/5/9 emulation\nparts into functions.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "217648638ccb62dfeea5ac5fe768539cdee61ed0",
      "tree": "bb2ce51d75b95119f40e2385be7359a263bddd61",
      "parents": [
        "12b7d28fc102b772eb70f98491587ec5ee717baf"
      ],
      "author": {
        "name": "Ryan Harper",
        "email": "ryanh@us.ibm.com",
        "time": "Tue Sep 18 14:05:16 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:48 2008 +0200"
      },
      "message": "KVM: MMU: Ignore reserved bits in cr3 in non-pae mode\n\nThis patch removes the fault injected when the guest attempts to set reserved\nbits in cr3.  X86 hardware doesn\u0027t generate a fault when setting reserved bits.\nThe result of this patch is that vmware-server, running within a kvm guest,\nboots and runs memtest from an iso.\n\nSigned-off-by: Ryan Harper \u003cryanh@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "12b7d28fc102b772eb70f98491587ec5ee717baf",
      "tree": "679077d072c9c0195a962a16f805bb228070a87c",
      "parents": [
        "c7addb902054195b995114df154e061c7d604f69"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 23 14:10:49 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:48 2008 +0200"
      },
      "message": "KVM: MMU: Make flooding detection work when guest page faults are bypassed\n\nWhen we allow guest page faults to reach the guests directly, we lose\nthe fault tracking which allows us to detect demand paging.  So we provide\nan alternate mechnism by clearing the accessed bit when we set a pte, and\nchecking it later to see if the guest actually used it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c7addb902054195b995114df154e061c7d604f69",
      "tree": "985910a6c970957126c91e55c55b0e73ae877e0c",
      "parents": [
        "51c6cf662b4b361a09fbd324f4c67875d9bcfbea"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 16 18:58:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:48 2008 +0200"
      },
      "message": "KVM: Allow not-present guest page faults to bypass kvm\n\nThere are two classes of page faults trapped by kvm:\n - host page faults, where the fault is needed to allow kvm to install\n   the shadow pte or update the guest accessed and dirty bits\n - guest page faults, where the guest has faulted and kvm simply injects\n   the fault back into the guest to handle\n\nThe second class, guest page faults, is pure overhead.  We can eliminate\nsome of it on vmx using the following evil trick:\n - when we set up a shadow page table entry, if the corresponding guest pte\n   is not present, set up the shadow pte as not present\n - if the guest pte _is_ present, mark the shadow pte as present but also\n   set one of the reserved bits in the shadow pte\n - tell the vmx hardware not to trap faults which have the present bit clear\n\nWith this, normal page-not-present faults go directly to the guest,\nbypassing kvm entirely.\n\nUnfortunately, this trick only works on Intel hardware, as AMD lacks a\nway to discriminate among page faults based on error code.  It is also\na little risky since it uses reserved bits which might become unreserved\nin the future, so a module parameter is provided to disable it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "51c6cf662b4b361a09fbd324f4c67875d9bcfbea",
      "tree": "8b16dd35e100af2feec42306348896a6ef198a50",
      "parents": [
        "3427318fd2244737a466a06a93c5fe579852f871"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Aug 29 03:48:05 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:47 2008 +0200"
      },
      "message": "KVM: VMX: Further reduce efer reloads\n\nKVM avoids reloading the efer msr when the difference between the guest\nand host values consist of the long mode bits (which are switched by\nhardware) and the NX bit (which is emulated by the KVM MMU).\n\nThis patch also allows KVM to ignore SCE (syscall enable) when the guest\nis running in 32-bit mode.  This is because the syscall instruction is\nnot available in 32-bit mode on Intel processors, so the SCE bit is\neffectively meaningless.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3427318fd2244737a466a06a93c5fe579852f871",
      "tree": "7c6760dbbdd067498c470e6e4f711e5baeef491c",
      "parents": [
        "1be3aa47182e94944e57b176a5c4ee4e74f1ce33"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 18 11:27:37 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:47 2008 +0200"
      },
      "message": "KVM: Call x86_decode_insn() only when needed\n\nMove emulate_ctxt to kvm_vcpu to keep emulate context when we exit from kvm\nmodule. Call x86_decode_insn() only when needed. Modify x86_emulate_insn() to\nnot modify the context if it must be re-entered.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1be3aa47182e94944e57b176a5c4ee4e74f1ce33",
      "tree": "413c3e2c81aabd8fdcbfb21b994e600575a6949b",
      "parents": [
        "8b4caf6650808024c37ec4b29cf81b308af998b1"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 18 11:27:27 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:47 2008 +0200"
      },
      "message": "KVM: emulate_instruction() calls now x86_decode_insn() and x86_emulate_insn()\n\nemulate_instruction() calls now x86_decode_insn() and x86_emulate_insn().\nx86_emulate_insn() is x86_emulate_memop() without the decoding part.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8b4caf6650808024c37ec4b29cf81b308af998b1",
      "tree": "2179c0830c938ebfdbc3baa4b7c2eee4dc81a7ae",
      "parents": [
        "e4e03deda83b1f2fc37ccbfc1eef27e86e8ed4e9"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 18 11:27:19 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:47 2008 +0200"
      },
      "message": "KVM: x86 emulator: move all decoding process to function x86_decode_insn()\n\nSplit the decoding process into a new function x86_decode_insn().\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4e03deda83b1f2fc37ccbfc1eef27e86e8ed4e9",
      "tree": "5306b8f262bddcc4e5a59520f8628d85a5b4eaf7",
      "parents": [
        "a7ddce3afc8326870b9e5e02fa41e028bffb10a5"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 18 11:52:50 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:47 2008 +0200"
      },
      "message": "KVM: x86 emulator: move all x86_emulate_memop() to a structure\n\nMove all x86_emulate_memop() common variables between decode and execute to a\nstructure decode_cache.  This will help in later separating decode and\nemulate.\n\n            struct decode_cache {\n                u8 twobyte;\n                u8 b;\n                u8 lock_prefix;\n                u8 rep_prefix;\n                u8 op_bytes;\n                u8 ad_bytes;\n                struct operand src;\n                struct operand dst;\n                unsigned long *override_base;\n                unsigned int d;\n                unsigned long regs[NR_VCPU_REGS];\n                unsigned long eip;\n                /* modrm */\n                u8 modrm;\n                u8 modrm_mod;\n                u8 modrm_reg;\n                u8 modrm_rm;\n                u8 use_modrm_ea;\n                unsigned long modrm_ea;\n                unsigned long modrm_val;\n           };\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a7ddce3afc8326870b9e5e02fa41e028bffb10a5",
      "tree": "468940bff7a338892d4353fa12d82200504b3c7f",
      "parents": [
        "7aa81cc04781b5b99a0647ec04533599d78cd219"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 18 11:26:38 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:46 2008 +0200"
      },
      "message": "KVM: x86 emulator: remove unused functions\n\nRemove #ifdef functions never used\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7aa81cc04781b5b99a0647ec04533599d78cd219",
      "tree": "6ac8854faf3db2bc499e2c105fdfdab95df52170",
      "parents": [
        "aca7f96600b170e470b3056aba0ed8d7df8d330d"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Sep 17 14:57:50 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:46 2008 +0200"
      },
      "message": "KVM: Refactor hypercall infrastructure (v3)\n\nThis patch refactors the current hypercall infrastructure to better\nsupport live migration and SMP.  It eliminates the hypercall page by\ntrapping the UD exception that would occur if you used the wrong hypercall\ninstruction for the underlying architecture and replacing it with the right\none lazily.\n\nA fall-out of this patch is that the unhandled hypercalls no longer trap to\nuserspace.  There is very little reason though to use a hypercall to\ncommunicate with userspace as PIO or MMIO can be used.  There is no code\nin tree that uses userspace hypercalls.\n\n[avi: fix #ud injection on vmx]\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "aca7f96600b170e470b3056aba0ed8d7df8d330d",
      "tree": "bab4af6e6a0d013dbc74d1b772d55da287192d59",
      "parents": [
        "dd430ca20c40ecccd6954a7efd13d4398f507728"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Sep 17 14:57:49 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:46 2008 +0200"
      },
      "message": "KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3)\n\nAdd vmmcall/vmcall to x86_emulate.  Future patch will implement functionality\nfor these instructions.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "dd430ca20c40ecccd6954a7efd13d4398f507728",
      "tree": "b65089436d17b2bcc6054ede2e335a821b50007f",
      "parents": [
        "60e233172eabdd1f831bd48631b9626ce2279d9b",
        "afadcd788f37bfa62d92662e54a720c26c91becf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:40:09 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:40:09 2008 +1100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (890 commits)\n  x86: fix nodemap_size according to nodeid bits\n  x86: fix overlap between pagetable with bss section\n  x86: add PCI IDs to k8topology_64.c\n  x86: fix early_ioremap pagetable ops\n  x86: use the same pgd_list for PAE and 64-bit\n  x86: defer cr3 reload when doing pud_clear()\n  x86: early boot debugging via FireWire (ohci1394_dma\u003dearly)\n  x86: don\u0027t special-case pmd allocations as much\n  x86: shrink some ifdefs in fault.c\n  x86: ignore spurious faults\n  x86: remove nx_enabled from fault.c\n  x86: unify fault_32|64.c\n  x86: unify fault_32|64.c with ifdefs\n  x86: unify fault_32|64.c by ifdef\u0027d function bodies\n  x86: arch/x86/mm/init_32.c printk fixes\n  x86: arch/x86/mm/init_32.c cleanup\n  x86: arch/x86/mm/init_64.c printk fixes\n  x86: unify ioremap\n  x86: fixes some bugs about EFI memory map handling\n  x86: use reboot_type on EFI 32\n  ...\n"
    },
    {
      "commit": "60e233172eabdd1f831bd48631b9626ce2279d9b",
      "tree": "83e45dc7396b03fddf72f75f050e306d9d4e244f",
      "parents": [
        "44c45eb911845ec58fc3e26cc8994ba868ea2572"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:30:15 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:30:15 2008 +1100"
      },
      "message": "[net] Gracefully handle shared e1000/1000e driver PCI ID\u0027s\n\nBoth the old e1000 driver and the new e1000e driver can drive some\nPCI-Express e1000 cards, and we should avoid ambiguity about which\ndriver will pick up the support for those cards when both drivers are\nenabled.\n\nThis solves the problem by having the old driver support those cards if\nthe new driver isn\u0027t configured, but otherwise ceding support for PCI\nExpress versions of the e1000 chipset to the newer driver.  Thus\nallowing both legacy configurations where only the old driver is active\n(and handles all chips it knows about) and the new configuration with\nthe new driver handling the more modern PCIE variants.\n\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44c45eb911845ec58fc3e26cc8994ba868ea2572",
      "tree": "44138a5a2b3b7631f426170582e27f02bedaec2e",
      "parents": [
        "85004cc367abc000aa36c0d0e270ab609a68b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:26:10 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 00:26:10 2008 +1100"
      },
      "message": "Make !NETFILTER_ADVANCED enable IP6_NF_MATCH_IPV6HEADER\n\nWe want IPV6HEADER matching for the non-advanced default netfilter\nconfiguration, since it\u0027s part of the standard netfilter setup of at\nleast some distributions (eg Fedora).\n\nOtherwise NETFILTER_ADVANCED loses much of its point, since even\nnon-advanced users would have to enable all the advanced options just to\nget a working IPv6 netfilter setup.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afadcd788f37bfa62d92662e54a720c26c91becf",
      "tree": "077515fe2b5a90351b035ad3769093f5280fc661",
      "parents": [
        "9198715763e8d0fd7fb7578c07916a5313e28b9d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "message": "x86: fix nodemap_size according to nodeid bits\n\nmemnode.map is s16 array because of nodeid is 16 bit now.\n\nso need to increase the nodemap_size according to that bits.\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@sun.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9198715763e8d0fd7fb7578c07916a5313e28b9d",
      "tree": "cb316de62589a45a3b95e8fe1d0601ca45baaae5",
      "parents": [
        "bb4a1d644a84e7e9d1d1fa9d1c7d1017b02e0947"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "message": "x86: fix overlap between pagetable with bss section\n\none early crash on one 8 node 256g machine:\n\nCommand line: console\u003duart8250,io,0x3f8,115200n8 initrd\u003dkernel.org/mydisk11_x86_64.gz rw root\u003d/dev/ram0 debug initcall_debug apic\u003ddebug acpi.debug_level\u003d0x0000000f pci\u003drouteirq ip\u003ddhcp load_ramdisk\u003d1 ramdisk_size\u003d131072 BOOT_IMAGE\u003dkernel.org/bzImage_2.6.25_k8.1\nBIOS-provided physical RAM map:\n BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)\n BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)\n BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)\n BIOS-e820: 0000000000100000 - 00000000dffe0000 (usable)\n BIOS-e820: 00000000dffe0000 - 00000000dffee000 (ACPI data)\n BIOS-e820: 00000000dffee000 - 00000000dffff050 (ACPI NVS)\n BIOS-e820: 00000000dffff050 - 00000000e0000000 (reserved)\n BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)\n BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)\n BIOS-e820: 00000000ff700000 - 0000000100000000 (reserved)\n BIOS-e820: 0000000100000000 - 0000004020000000 (usable)\nEarly serial console at I/O port 0x3f8 (options \u0027115200n8\u0027)\nconsole [uart0] enabled\nend_pfn_map \u003d 67239936\nKernel panic - not syncing: Duplicated early reservation d40000-e42000\n\nPid: 0, comm: swapper Not tainted 2.6.24-smp-g5a514e21-dirty #3\n\nCall Trace:\n [\u003cffffffff80221545\u003e] lapic_get_maxlvt+0x0/0x10\n [\u003cffffffff80221657\u003e] clear_local_APIC+0x5/0xcf\n [\u003cffffffff80221726\u003e] disable_local_APIC+0x5/0x17\n [\u003cffffffff8021fe16\u003e] smp_send_stop+0x46/0x4c\n [\u003cffffffff80235293\u003e] panic+0x94/0x13e\n [\u003cffffffff80bc3b03\u003e] sctp_eps_proc_init+0x12/0x34\n [\u003cffffffff80b9f1c5\u003e] reserve_early+0x30/0x6c\n [\u003cffffffff80803925\u003e] init_memory_mapping+0x2cd/0x2dc\n [\u003cffffffff80b9dc01\u003e] setup_arch+0x21f/0x44e\n [\u003cffffffff80b978be\u003e] start_kernel+0x6f/0x2c7\n [\u003cffffffff80b971cc\u003e] _sinittext+0x1cc/0x1d3\n\nit turns out there is overlap between pgtable and bss...\n\nin System.map we have\nffffffff80d40420 b rsi_table\nffffffff80d40620 B krb5_seq_lock\nffffffff80d40628 b i.20437\nffffffff80d40630 b xprt_rdma_inline_write_padding\nffffffff80d40638 b sunrpc_table_header\nffffffff80d40640 b zero\nffffffff80d40644 b min_memreg\nffffffff80d40648 b rpcrdma_tk_lock_g\nffffffff80d40650 B sctp_assocs_id_lock\nffffffff80d40658 B proc_net_sctp\nffffffff80d40660 B sctp_assocs_id\nffffffff80d40680 B sysctl_sctp_mem\nffffffff80d40690 B sysctl_sctp_rmem\nffffffff80d406a0 B sysctl_sctp_wmem\nffffffff80d406b0 b sctp_ctl_socket\nffffffff80d406b8 b sctp_pf_inet6_specific\nffffffff80d406c0 b sctp_pf_inet_specific\nffffffff80d406c8 b sctp_af_v4_specific\nffffffff80d406d0 b sctp_af_v6_specific\nffffffff80d406d8 b sctp_rand.33270\nffffffff80d406dc b sctp_memory_pressure\nffffffff80d406e0 b sctp_sockets_allocated\nffffffff80d406e4 b sctp_memory_allocated\nffffffff80d406e8 b sctp_sysctl_header\nffffffff80d406f0 b zero\nffffffff80d406f4 A __bss_stop\nffffffff80d406f4 A _end\n\nneed to round up table_start to PAGE_SIZE.\n\nalso make the panic more informative.\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@sun.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bb4a1d644a84e7e9d1d1fa9d1c7d1017b02e0947",
      "tree": "b4edb770e21ae8459474836e6e2e14fb99e057af",
      "parents": [
        "f6df72e71eba621b2f5c49b3a763116fac748f6e"
      ],
      "author": {
        "name": "Joachim Deguara",
        "email": "joachim.deguara@amd.com",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:12 2008 +0100"
      },
      "message": "x86: add PCI IDs to k8topology_64.c\n\nThis just adds the PCI IDs of AMD\u0027s family 10h and 11h CPU\u0027s northbridges to\nk8topology discovery.\n\nSigned-off-by: Joachim Deguara \u003cjoachim.deguara@amd.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Yinghai Lu \u003cyinghai.lu@sun.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f6df72e71eba621b2f5c49b3a763116fac748f6e",
      "tree": "8f0ca692ba8380992004801a51ca6ec9947d7af1",
      "parents": [
        "e3ed910db221768f8fd6192b13373e17d61bcdf0"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: fix early_ioremap pagetable ops\n\nPut appropriate pagetable update hooks in so that paravirt knows\nwhat\u0027s going on in there.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e3ed910db221768f8fd6192b13373e17d61bcdf0",
      "tree": "67a5eed4709a4b1b38e952af5bfc0340f78703af",
      "parents": [
        "fa28ba21cec24d3fa1279bcae7e5d5ff6224635a"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: use the same pgd_list for PAE and 64-bit\n\nUse a standard list threaded through page-\u003elru for maintaining the pgd\nlist on PAE.  This is the same as 64-bit, and seems saner than using a\nnon-standard list via page-\u003eindex.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "fa28ba21cec24d3fa1279bcae7e5d5ff6224635a",
      "tree": "dda47a7faa85428753691a50f49b0404f78ea0ec",
      "parents": [
        "f212ec4b7b4d84290f12c9c0416cdea283bf5f40"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: defer cr3 reload when doing pud_clear()\n\nPAE mode requires that we reload cr3 in order to guarantee that\nchanges to the pgd will be noticed by the processor.  This means that\nin principle pud_clear needs to reload cr3 every time.  However,\nbecause reloading cr3 implies a tlb flush, we want to avoid it where\npossible.\n\npud_clear() is only used in a couple of places:\n - in free_pmd_range(), when pulling down a range of process address space, and\n - huge_pmd_unshare()\n\nIn both cases, the calling code will do a a tlb flush anyway, so\nthere\u0027s no need to do it within pud_clear().\n\nIn free_pmd_range(), the pud_clear is immediately followed by\npmd_free_tlb(); we can hook that to make the mmu_gather do an\nunconditional full flush to make sure cr3 gets reloaded.\n\nIn huge_pmd_unshare, it is followed by flush_tlb_range, which always\nresults in a full cr3-reload tlb flush.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f212ec4b7b4d84290f12c9c0416cdea283bf5f40",
      "tree": "9beb7e5b87bac80410767fd3aacd93f92ecb0c04",
      "parents": [
        "6194ba6ff6ccf8d5c54c857600843c67aa82c407"
      ],
      "author": {
        "name": "Bernhard Kaindl",
        "email": "bk@suse.de",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: early boot debugging via FireWire (ohci1394_dma\u003dearly)\n\nThis patch adds a new configuration option, which adds support for a new\nearly_param which gets checked in arch/x86/kernel/setup_{32,64}.c:setup_arch()\nto decide wether OHCI-1394 FireWire controllers should be initialized and\nenabled for physical DMA access to allow remote debugging of early problems\nlike issues ACPI or other subsystems which are executed very early.\n\nIf the config option is not enabled, no code is changed, and if the boot\nparamenter is not given, no new code is executed, and independent of that,\nall new code is freed after boot, so the config option can be even enabled\nin standard, non-debug kernels.\n\nWith specialized tools, it is then possible to get debugging information\nfrom machines which have no serial ports (notebooks) such as the printk\nbuffer contents, or any data which can be referenced from global pointers,\nif it is stored below the 4GB limit and even memory dumps of of the physical\nRAM region below the 4GB limit can be taken without any cooperation from the\nCPU of the host, so the machine can be crashed early, it does not matter.\n\nIn the extreme, even kernel debuggers can be accessed in this way. I wrote\na small kgdb module and an accompanying gdb stub for FireWire which allows\nto gdb to talk to kgdb using remote remory reads and writes over FireWire.\n\nAn version of the gdb stub fore FireWire is able to read all global data\nfrom a system which is running a a normal kernel without any kernel debugger,\nwithout any interruption or support of the system\u0027s CPU. That way, e.g. the\ntask struct and so on can be read and even manipulated when the physical DMA\naccess is granted.\n\nA HOWTO is included in this patch, in Documentation/debugging-via-ohci1394.txt\nand I\u0027ve put a copy online at\nftp://ftp.suse.de/private/bk/firewire/docs/debugging-via-ohci1394.txt\n\nIt also has links to all the tools which are available to make use of it\nanother copy of it is online at:\nftp://ftp.suse.de/private/bk/firewire/kernel/ohci1394_dma_early-v2.diff\n\nSigned-Off-By: Bernhard Kaindl \u003cbk@suse.de\u003e\nTested-By: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6194ba6ff6ccf8d5c54c857600843c67aa82c407",
      "tree": "657dd9f452b252260fcf59959c0586920b8fe4c3",
      "parents": [
        "fd40d6e3188b12c59696d6cb4a6f26333814d66f"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: don\u0027t special-case pmd allocations as much\n\nIn x86 PAE mode, stop treating pmds as a special case.  Previously\nthey were always allocated and freed with the pgd.  The modifies the\ncode to be the same as 64-bit mode, where they are allocated on\ndemand.\n\nThis is a step on the way to unifying 32/64-bit pagetable allocation\nas much as possible.\n\nThere is a complicating wart, however.  When you install a new\nreference to a pmd in the pgd, the processor isn\u0027t guaranteed to see\nit unless you reload cr3.  Since reloading cr3 also has the\nside-effect of flushing the tlb, this is an expense that we want to\navoid whereever possible.\n\nThis patch simply avoids reloading cr3 unless the update is to the\ncurrent pagetable.  Later patches will optimise this further.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "fd40d6e3188b12c59696d6cb4a6f26333814d66f",
      "tree": "501f109ea72beaf113b417feb71746afec18f7a0",
      "parents": [
        "5b727a3b0158a129827c21ce3bfb0ba997e8ddd0"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: shrink some ifdefs in fault.c\n\nThe change from current to tsk in do_page_fault is safe as\nthis is set at the very beginning of the function.\n\nRemoves a likely() annotation from the 64-bit version, this\ncould have instead been added to 32-bit.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5b727a3b0158a129827c21ce3bfb0ba997e8ddd0",
      "tree": "e0d43e258fa46e22ac6c4daf82c5005dc0e762c6",
      "parents": [
        "b406ac61e94875723540bd56e26f634afdeef489"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: ignore spurious faults\n\nWhen changing a kernel page from RO-\u003eRW, it\u0027s OK to leave stale TLB\nentries around, since doing a global flush is expensive and they pose\nno security problem.  They can, however, generate a spurious fault,\nwhich we should catch and simply return from (which will have the\nside-effect of reloading the TLB to the current PTE).\n\nThis can occur when running under Xen, because it frequently changes\nkernel pages from RW-\u003eRO-\u003eRW to implement Xen\u0027s pagetable semantics.\nIt could also occur when using CONFIG_DEBUG_PAGEALLOC, since it avoids\ndoing a global TLB flush after changing page permissions.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b406ac61e94875723540bd56e26f634afdeef489",
      "tree": "66efba6274ad0c3e45b8d42226a78725173c578c",
      "parents": [
        "c61e211d9989e4c112d3d58db12ad58f9016a3c8"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: remove nx_enabled from fault.c\n\nOn !PAE 32-bit, _PAGE_NX will be 0, making is_prefetch always\nreturn early.  The test is sufficient on PAE as __supported_pte_mask\nis updated in the same places as nx_enabled in init_32.c which also\ntakes disable_nx into account.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c61e211d9989e4c112d3d58db12ad58f9016a3c8",
      "tree": "17ac1e9220b9becda9bee059b4aa0bb129a56e1f",
      "parents": [
        "f8c2ee224d8397364835204c6c0130d08c2e644c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:11 2008 +0100"
      },
      "message": "x86: unify fault_32|64.c\n\nUnify includes in moved fault.c.\n\nModify Makefiles to pick up unified file.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f8c2ee224d8397364835204c6c0130d08c2e644c",
      "tree": "e23164ea2b8b6d9e212b7ee509e0bd2a620f1339",
      "parents": [
        "1156e098c5fc142ceaf091f0627109225a9db894"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: unify fault_32|64.c with ifdefs\n\nElimination of these ifdefs can be done in a unified file.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1156e098c5fc142ceaf091f0627109225a9db894",
      "tree": "8b338373eecb8ef085e110c3f2dfc6065b7396bd",
      "parents": [
        "d7d119d777d7ed22c4095915e9c985a8b75bfe5f"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: unify fault_32|64.c by ifdef\u0027d function bodies\n\nIt\u0027s about time to get on with unifying these files, elimination\nof the ugly ifdefs can occur in the unified file.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d7d119d777d7ed22c4095915e9c985a8b75bfe5f",
      "tree": "7612f89b51ad44fe2444f29fd6dafe37137ee847",
      "parents": [
        "8550eb99821b3f78cddfd19964f30e8bc4e429e0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: arch/x86/mm/init_32.c printk fixes\n\nprintk fixes. NOP in terms of functionality, but strings got\na bit larger due to the KERN_ markers that were added.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8550eb99821b3f78cddfd19964f30e8bc4e429e0",
      "tree": "0384ed8bb2aefead53201ab5499f3df15e21a10f",
      "parents": [
        "10f22dde556d1ed41d55355d1fb8ad495f9810c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: arch/x86/mm/init_32.c cleanup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "10f22dde556d1ed41d55355d1fb8ad495f9810c8",
      "tree": "8d9cc11f18ec88525cc0f21b2f6493f5be0b3a5a",
      "parents": [
        "14a62c34b134d24f7fedb8fd66028ecdcffb32c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: arch/x86/mm/init_64.c printk fixes\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "14a62c34b134d24f7fedb8fd66028ecdcffb32c8",
      "tree": "58198c293144cfad46f8ed0cd816d8a9e3867cb2",
      "parents": [
        "a3828064be4ed8e95907d3943e7af13cb709694d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: unify ioremap\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a3828064be4ed8e95907d3943e7af13cb709694d",
      "tree": "b5458f61681a0bf4c3640f28c51ccd0a24c0c6b5",
      "parents": [
        "bed23c67fe077b4d66cb3329263d7cfa33b3fd67"
      ],
      "author": {
        "name": "Huang, Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: fixes some bugs about EFI memory map handling\n\nThis patch fixes some bugs of EFI memory handing code.\n\n- On x86_64, it is possible that EFI memory map can not be mapped via\n  identity map, so efi_map_memmap is removed, just use early_ioremap.\n\n- On i386, the EFI memory map mapping take effect cross paging_init,\n  so it is not necessary to use efi_map_memmap.\n\n- EFI memory map is unmapped in efi_enter_virtual_mode to avoid\n  early_ioremap leak.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bed23c67fe077b4d66cb3329263d7cfa33b3fd67",
      "tree": "464fa88e8f813439a2e3946463089b84bee4dd14",
      "parents": [
        "19f0dda91e0dcb38c97bbfcff62b108a3bbc7907"
      ],
      "author": {
        "name": "Huang, Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: use reboot_type on EFI 32\n\nThis patch makes reboot_type of BOOT_EFI is used on i386 too. Because\ncorrepsonding reboot code of i386 and x86_64 is merged.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "19f0dda91e0dcb38c97bbfcff62b108a3bbc7907",
      "tree": "7b181ffbbc893f78e200c1c813fac1f0f4108ee6",
      "parents": [
        "b3279c7fd7acf807ab8395d16658514e8c222a37"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: unify page fault oops printing\n\nThis changes the oops dumping format for page faults to\nbe similar between X86_32 and 64.\n\nThis is the first user of printk_address on X86_32.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3279c7fd7acf807ab8395d16658514e8c222a37",
      "tree": "2ce674dc4a99ca594c7e1a40da3db1545bc8731c",
      "parents": [
        "35f3266ffbee7ff8ca0474dc8dfa3b73d5a1d1ef"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:10 2008 +0100"
      },
      "message": "x86: introduce show_fault_oops helper to fault_32|64.c\n\nThis will help when unifying the oops dumping code on 32/64\nbit.  No functional changes.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "35f3266ffbee7ff8ca0474dc8dfa3b73d5a1d1ef",
      "tree": "f0a49ce46433fb22a27e6cf2fa3215ac79c6569b",
      "parents": [
        "29caf2f98cdb266dffb50dfd412f951e8d46f719"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "message": "x86: add is_errata100 helper to fault_32|64.c\n\nFurther towards unifying these files, add another helper\nin same spirit as is_errata93.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "29caf2f98cdb266dffb50dfd412f951e8d46f719",
      "tree": "26f5acdb73635c4921b38a375c15f40a9e9ec3ee",
      "parents": [
        "9af993a92623e022c176459fa6607a564b9a7eaf"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "message": "x86: add is_f00f_bug helper to fault_32|64.c\n\nFurther towards unifying these files, add another helper\nin same spirit as is_errata93.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9af993a92623e022c176459fa6607a564b9a7eaf",
      "tree": "da13fbc9989fde0f8dddf7ae6dd60fc7e4dded6b",
      "parents": [
        "0879750f5d75dee0546316b7b0e83fb6cd258ad7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:09 2008 +0100"
      },
      "message": "x86: make ioremap() UC by default\n\nYes! A mere 120 c_p_a() fixing and rewriting patches later,\nwe are now confident that we can enable UC by default for\nioremap(), on x86 too.\n\nEvery other architectures was doing this already. Doing so\nmakes Linux more robust against MTRR mixups (which might go\nunnoticed if BIOS writers test other OSs only - where PAT\nmight override bad MTRRs defaults).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "0879750f5d75dee0546316b7b0e83fb6cd258ad7"
}
