)]}'
{
  "log": [
    {
      "commit": "cb498ea2ce1d3f3c0bc0a2522241dca10263e437",
      "tree": "255eeaa3581a79ceb77772c1350faa95ce4706a6",
      "parents": [
        "e9b11c17552afe684e9e5d0444309a3ddf410116"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 14 20:39:31 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:02 2008 +0200"
      },
      "message": "KVM: Portability: Combine kvm_init and kvm_init_x86\n\nWill be called once arch module registers itself.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e9b11c17552afe684e9e5d0444309a3ddf410116",
      "tree": "f0905a61791645dbede13cbdf017ea458ffa54c5",
      "parents": [
        "97896d04a14669b146c17d779b81ec7a339deeb3"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 14 20:38:21 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:02 2008 +0200"
      },
      "message": "KVM: Portability: Add vcpu and hardware management arch hooks\n\nAdd the following hooks:\n\n  void decache_vcpus_on_cpu(int cpu);\n  int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);\n  void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu);\n  void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu);\n  void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);\n  void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);\n  struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id);\n  void kvm_arch_vcpu_destory(struct kvm_vcpu *vcpu);\n  int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu);\n  void kvm_arch_hardware_enable(void *garbage);\n  void kvm_arch_hardware_disable(void *garbage);\n  int kvm_arch_hardware_setup(void);\n  void kvm_arch_hardware_unsetup(void);\n  void kvm_arch_check_processor_compat(void *rtn);\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97896d04a14669b146c17d779b81ec7a339deeb3",
      "tree": "73853232d2f935fcc35ecf3cd21cfbb278e94be4",
      "parents": [
        "d825ed0a97b8e82597dd652bfe51fed3fa9b3c9a"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 14 20:09:30 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:02 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_x86_ops to x86.c\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d825ed0a97b8e82597dd652bfe51fed3fa9b3c9a",
      "tree": "643af5a996516d049437a6714c7adc8f9e9e9748",
      "parents": [
        "e0506bcba5992650b1190de9125f5963a30f32e2"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 14 20:08:51 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:02 2008 +0200"
      },
      "message": "KVM: Portability: Move some includes to x86.c\n\nMove some includes to x86.c from kvm_main.c, since the related functions\nhave been moved to x86.c\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e0506bcba5992650b1190de9125f5963a30f32e2",
      "tree": "5527a69e7f84afbe858adbc541ceb509b7c6254d",
      "parents": [
        "539cb6608ca804e7805d8e88c83377d991a552b1"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Sun Nov 11 22:10:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:02 2008 +0200"
      },
      "message": "KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user()\n\nThis changes kvm_write_guest_page/kvm_read_guest_page to use\ncopy_to_user/read_from_user, as a result we get better speed\nand better dirty bit tracking.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "539cb6608ca804e7805d8e88c83377d991a552b1",
      "tree": "eb91c4f86c84237a81e669e0f9279aa5d33a4da5",
      "parents": [
        "f9d46eb0e4a5b5e0926ca61c19f8c8bbb9496b28"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Sun Nov 11 22:05:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: introduce gfn_to_hva()\n\nConvert a guest frame number to the corresponding host virtual address.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f9d46eb0e4a5b5e0926ca61c19f8c8bbb9496b28",
      "tree": "891e954d8c650641792e415ec6962d81dead116d",
      "parents": [
        "1a6f4d7fbd11e539630cd5637311a4e55fae60ef"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Sun Nov 11 22:02:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: add kvm_is_error_hva()\n\nCheck for the \"error hva\", an address outside the user address space that\nsignals a bad gfn.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1a6f4d7fbd11e539630cd5637311a4e55fae60ef",
      "tree": "e5798c22c402c1e82f211b284758f991249876eb",
      "parents": [
        "906e608b05b87b650e509491e41c89575358df5e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 11 18:37:32 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "906e608b05b87b650e509491e41c89575358df5e",
      "tree": "0ec56997f7c5857cf82af1ed3bbce6f54e5b0660",
      "parents": [
        "e5edaa01c4cea5f60c617fac989c6458df0ecc4e"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Sun Nov 11 14:48:17 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: x86 emulator: remove 8 bytes operands emulator for call near instruction\n\nit is removed beacuse it isnt supported on a real host\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e5edaa01c4cea5f60c617fac989c6458df0ecc4e",
      "tree": "39f9d423a89e7447bfbe5c2aeb4704a0ccfbbfd1",
      "parents": [
        "8a70cc3d0f4877f862ac9cace2e61e4e5116b502"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Sun Nov 11 12:28:35 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: VMX: wbinvd exiting\n\nAdd wbinvd VM Exit support to prepare for pass-through\ndevice cache emulation and also enhance real time\nresponsiveness.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a70cc3d0f4877f862ac9cace2e61e4e5116b502",
      "tree": "3228bd31ca675c9673cc0a68a5529242cd933d24",
      "parents": [
        "9c8cba3761d4741cfd53ecc40604fac01f52128a"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Sun Nov 11 12:27:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: VMX: Comment VMX primary/secondary exec ctl definitions\n\nAdd comments for secondary/primary Processor-Based VM-execution controls.\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9c8cba3761d4741cfd53ecc40604fac01f52128a",
      "tree": "40d65ea2a0f000ebff9ce803bc2515c814bf1750",
      "parents": [
        "1155f76a8166ae6fc88e7d73eb6817eb9012d476"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 22 11:42:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:01 2008 +0200"
      },
      "message": "KVM: Fix faults during injection of real-mode interrupts\n\nIf vmx fails to inject a real-mode interrupt while fetching the interrupt\nredirection table, it fails to record this in the vectoring information\nfield.  So we detect this condition and do it ourselves.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1155f76a8166ae6fc88e7d73eb6817eb9012d476",
      "tree": "becc954dacc6098f9c60bc52d572ca8179e070e4",
      "parents": [
        "9c5623e3e42e94927d02a6693875badf15692970"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 22 11:30:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: VMX: Read \u0026 store IDT_VECTORING_INFO_FIELD\n\nWe\u0027ll want to write to it in order to fix real-mode irq injection problems,\nbut it is a read-only field.  Storing it in a variable solves that issue.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9c5623e3e42e94927d02a6693875badf15692970",
      "tree": "74ea5711aa9884aa5bee97282c52c32659aca53a",
      "parents": [
        "12264760e46077a65c1240ac0b27dfa34b402158"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 08 18:19:20 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: VMX: Use vmx to inject real-mode interrupts\n\nInstead of injecting real-mode interrupts by writing the interrupt frame into\nguest memory, abuse vmx by injecting a software interrupt.  We need to\npretend the software interrupt instruction had a length \u003e 0, so we have to\nadjust rip backward.\n\nThis lets us not to mess with writing guest memory, which is complex and also\nsleeps.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "12264760e46077a65c1240ac0b27dfa34b402158",
      "tree": "010fe8271c5d123aa4b334ff91ff0728248586a0",
      "parents": [
        "b6c7a5dccf9471f4891df722dbd0700ce56eb2e2"
      ],
      "author": {
        "name": "Dor Laor",
        "email": "dor.laor@qumranet.com",
        "time": "Wed Nov 07 16:20:06 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: Add make_page_dirty() to kvm_clear_guest_page()\n\nEvery write access to guest pages should be tracked.\n\nSigned-off-by: Dor Laor \u003cdor.laor@qumranet.com\u003e\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b6c7a5dccf9471f4891df722dbd0700ce56eb2e2",
      "tree": "cf7c15cb74b5949940f69df9fe9bc50161d880f5",
      "parents": [
        "d075206073286dca84768137af0a0bf3d11f0663"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Thu Nov 01 14:16:10 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 vcpu ioctl handlers to x86.c\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d075206073286dca84768137af0a0bf3d11f0663",
      "tree": "84d6883c16bba8344203df82c9cd1ee4ba013dfa",
      "parents": [
        "8776e5194f7bb847906e3561c4dba12ed66ebfb6"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Oct 31 17:24:25 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 FPU handling to x86.c\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8776e5194f7bb847906e3561c4dba12ed66ebfb6",
      "tree": "a6c23e44a89873abf711b73dfd7444673d5b6d1b",
      "parents": [
        "417bc3041f5e66df1ce7f03d8fc481c3b12f250a"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Oct 31 17:24:24 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:00 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 instruction emulation code to x86.c\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "417bc3041f5e66df1ce7f03d8fc481c3b12f250a",
      "tree": "6c09ddc5adadd3696aa78e6e3fc219a2e8e63bae",
      "parents": [
        "1c73ef66502311d9aff7fed7d7f970288329c6cb"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Oct 31 17:24:23 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: Portability: Make exported debugfs data architecture-specific\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1c73ef66502311d9aff7fed7d7f970288329c6cb",
      "tree": "1bafc99b5c6e0786670d9198fef2caf113fa820a",
      "parents": [
        "3b6fff198c2ae3ca87ee8c9103d52ac9e8f40dd5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 01 06:31:28 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: x86 emulator: Hoist modrm and abs decoding into separate functions\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3b6fff198c2ae3ca87ee8c9103d52ac9e8f40dd5",
      "tree": "e055c45fe6844d26539293708815c69c0268ef2d",
      "parents": [
        "9f1ef3f8f5f8ade2561d969181b152c225b82a3e"
      ],
      "author": {
        "name": "Uri Lublin",
        "email": "uril@qumranet.com",
        "time": "Tue Oct 30 10:42:09 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: Make mark_page_dirty() work for aliased pages too.\n\nRecommended by Izik Eidus.\n\nSigned-off-by: Uri Lublin \u003curil@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9f1ef3f8f5f8ade2561d969181b152c225b82a3e",
      "tree": "1070f885c4412ed9594809f55515f2d1b719dee4",
      "parents": [
        "33615aa956521923eab0552994b5961cd3034042"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 31 11:21:06 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: Simplify decode_register_operand() calling convention\n\nNow that rex_prefix is part of the decode cache, there is no need to pass\nit along.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "33615aa956521923eab0552994b5961cd3034042",
      "tree": "dae9983159614d9bdfed6d60201e60f1a72105f0",
      "parents": [
        "3c118e24af821d68dca0ba81e9499820c840c133"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 31 11:15:56 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: x86 emulator: centralize decoding of one-byte register access insns\n\nInstructions like \u0027inc reg\u0027 that have the register operand encoded\nin the opcode are currently specially decoded.  Extend\ndecode_register_operand() to handle that case, indicated by having\nDstReg or SrcReg without ModRM.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3c118e24af821d68dca0ba81e9499820c840c133",
      "tree": "7fbf595f037f37d75119f50f2638ac0098f2eb51",
      "parents": [
        "de7d789acd7f373268194bb48dc0690c975ab8e6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 31 10:27:04 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: x86 emulator: Extract the common code of SrcReg and DstReg\n\nShare the common parts of SrcReg and DstReg decoding.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "de7d789acd7f373268194bb48dc0690c975ab8e6",
      "tree": "c2e9c4e1bb8d127e7a53459f9ed83c711901f31d",
      "parents": [
        "bbd9b64e37aff5aa715ec5e168425790f5983bf1"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 30 18:44:25 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:59 2008 +0200"
      },
      "message": "KVM: Portability: Move pio emulation functions to x86.c\n\nThis patch moves implementation of the following functions from\nkvm_main.c to x86.c:\nfree_pio_guest_pages, vcpu_find_pio_dev, pio_copy_data, complete_pio,\nkernel_pio, pio_string_write, kvm_emulate_pio, kvm_emulate_pio_string\n\nThe function inject_gp, which was duplicated by yesterday\u0027s patch\nseries, is removed from kvm_main.c now because it is not needed anymore.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "bbd9b64e37aff5aa715ec5e168425790f5983bf1",
      "tree": "ad69fb6e400801430e7a69019bd8fc40599ff20d",
      "parents": [
        "15c4a6406f6c40632260861e1db7c539e79dcf1a"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 30 18:44:21 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 emulation and mmio device hook to x86.c\n\nThis patch moves the following functions to from kvm_main.c to x86.c:\nemulator_read/write_std, vcpu_find_pervcpu_dev, vcpu_find_mmio_dev,\nemulator_read/write_emulated, emulator_write_phys,\nemulator_write_emulated_onepage, emulator_cmpxchg_emulated,\nget_setment_base, emulate_invlpg, emulate_clts, emulator_get/set_dr,\nkvm_report_emulation_failure, emulate_instruction\n\nThe following data type is moved to x86.c:\nstruct x86_emulate_ops emulate_ops\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "15c4a6406f6c40632260861e1db7c539e79dcf1a",
      "tree": "1de5718d9bbdda7c2c14c757967de6b2b1587c07",
      "parents": [
        "aab61cc0d28f6fab0c2c9137d95dea54c7dbcf46"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 30 18:44:17 2007 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_get/set_msr[_common] to x86.c\n\nThis patch moves the implementation of the functions of kvm_get/set_msr,\nkvm_get/set_msr_common, and set_efer from kvm_main.c to x86.c. The\ndefinition of EFER_RESERVED_BITS is moved too.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "aab61cc0d28f6fab0c2c9137d95dea54c7dbcf46",
      "tree": "66352cc8d0791b83f9b1435465bc35c3126c4dad",
      "parents": [
        "f78e0e2ee498e8f847500b565792c7d7634dcf54"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Mon Oct 29 15:15:20 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:58 2008 +0200"
      },
      "message": "KVM: Fix gfn_to_page() acquiring mmap_sem twice\n\nKVM\u0027s nopage handler calls gfn_to_page() which acquires the mmap_sem when\ncalling out to get_user_pages().  nopage handlers are already invoked with the\nmmap_sem held though.  Introduce a __gfn_to_page() for use by the nopage\nhandler which requires the lock to already be held.\n\nThis was noticed by tglx.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "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": "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"
    }
  ],
  "next": "60e233172eabdd1f831bd48631b9626ce2279d9b"
}
