)]}'
{
  "log": [
    {
      "commit": "5bb064dcdeb7ab341e2f8a3e2fc34faa63b1662c",
      "tree": "abb976bd8e6f79fca02aeadad31269f281f71c16",
      "parents": [
        "9327fd1195b77e67b86db8c1c1c4c4f7db009b00"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sun Nov 18 20:29:43 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:05 2008 +0200"
      },
      "message": "KVM: Portability: Move kvm_vcpu_ioctl_get_dirty_log to arch-specific  file\n\nMeanwhile keep the interface in common, and leave as more logic in common\nas possible.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9327fd1195b77e67b86db8c1c1c4c4f7db009b00",
      "tree": "749d44bc2ed554280acd6f807d95569cd695c496",
      "parents": [
        "4cee576493b6abc95cc7447a65f1b9d2b40b8f20"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@qumranet.com",
        "time": "Thu Nov 15 18:38:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:05 2008 +0200"
      },
      "message": "KVM: Make unloading of FPU state when putting vcpu arch-independent\n\nInstead of having each architecture do it individually, we\ndo this in the arch-independent code (just x86 as of now).\n\n[avi: add svm to the mix, which was added to mainline during the\n 2.6.24-rc process]\n\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4cee576493b6abc95cc7447a65f1b9d2b40b8f20",
      "tree": "64235c288aaee838e7cebea4d129157935a26e75",
      "parents": [
        "ba1389b7a04de07e6231693b7ebb34f5b5d1a3e6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 18 16:37:07 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: MMU: Add some mmu statistics\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ba1389b7a04de07e6231693b7ebb34f5b5d1a3e6",
      "tree": "536139f6e1d3a918b13a9c44f2144c52366a55bb",
      "parents": [
        "f2b5756bb3fbdca912c4890e444c18650389d8ae"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 18 16:24:12 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Extend stats support for VM stats\n\nThis is in addition to the current virtual cpu statistics.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f2b5756bb3fbdca912c4890e444c18650389d8ae",
      "tree": "3583a8b6801ffcb1cf948e68ebede784022dcf78",
      "parents": [
        "f096ed8588b53bf802b84862c6c4d00d25d1ed72"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 18 15:17:51 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Add instruction emulation statistics\n"
    },
    {
      "commit": "f096ed8588b53bf802b84862c6c4d00d25d1ed72",
      "tree": "5050a7f7c00b47897c2f4e28c338673bc2dc8fa7",
      "parents": [
        "e1beb1d37c3187aa12c6463bd15ba594e9986761"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 18 13:54:33 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Add fpu_reload counter\n\nMeasure the number of times we switch the fpu state.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e1beb1d37c3187aa12c6463bd15ba594e9986761",
      "tree": "c2e6e84257f59f2194d7abfd768d724df649e494",
      "parents": [
        "d19a9cd275b0fdc793d1bb8b644b7aad0517e4bc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Nov 18 13:50:24 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Replace \u0027light_exits\u0027 stat with \u0027host_state_reload\u0027\n\nThis is a little more accurate (since it counts actual reloads, not potential\nreloads), and reverses the sense of the statistic to measure a bad event like\nmost of the other stats (e.g. we want to minimize all counters).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d19a9cd275b0fdc793d1bb8b644b7aad0517e4bc",
      "tree": "5dba36f58295f165e4fd3380742875d1867266f5",
      "parents": [
        "a16b043cc96db4a01abb337bef4a51cebcfcbb1b"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao@vtsmp-build32.los-vmm.org",
        "time": "Sun Nov 18 18:43:45 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Portability: Add two hooks to handle kvm_create and destroy vm\n\nAdd two arch hooks to handle kvm_create_vm and kvm destroy_vm. Now, just\nput io_bus init and destory in common.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a16b043cc96db4a01abb337bef4a51cebcfcbb1b",
      "tree": "0786a83deea1dc26a2a6d47165dba5b8912aa467",
      "parents": [
        "56919c5c97aa07b150311c5c9802af07872ee2b0"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Nov 16 14:38:21 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:04 2008 +0200"
      },
      "message": "KVM: Remove __init attributes for kvm_init_debug and kvm_init_msr_list\n\nSince their callers are not declared with __init.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "56919c5c97aa07b150311c5c9802af07872ee2b0",
      "tree": "287456543e7f6678c06af77eb0344a615c6e0b97",
      "parents": [
        "8b0067913d9d0439d4cf3c1f7314ba71fc7b2958"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 12 20:06:51 2007 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: Remove ptr comparisons to 0\n\nFix sparse warnings \"Using plain integer as NULL pointer\"\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8b0067913d9d0439d4cf3c1f7314ba71fc7b2958",
      "tree": "a8de1898124085d7f4157ee6812413f65900af37",
      "parents": [
        "e08aa78ae5747c6e1dc525e8a40f23c2ea61d757"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Fri Nov 16 13:05:55 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent\n\nMove kvm_vcpu_ioctl_translate to arch, since mmu would be put under arch.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e08aa78ae5747c6e1dc525e8a40f23c2ea61d757",
      "tree": "9500388b13c6365a39b89d0fa18d3d16c2ae872a",
      "parents": [
        "018d00d2fef27fc65f2917bec8f72b93615c18e1"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Nov 15 18:06:18 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: VMX: Consolidate register usage in vmx_vcpu_run()\n\nWe pass vcpu, vmx-\u003efail, and vmx-\u003elaunched to assembly code, but all three\nare fields within vmx.  Consolidate by only passing in vmx and offsets for\nthe rest.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "018d00d2fef27fc65f2917bec8f72b93615c18e1",
      "tree": "f2591e8da457287195e138a62e2d34a8bdfbe14c",
      "parents": [
        "a7e6c88a78b7c3d67491bf90b2b95e66437dbdb6"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Thu Nov 15 23:07:47 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: Portability: move KVM_CHECK_EXTENSION\n\nMake KVM_CHECK_EXTENSION code into a function, all archs can define its\ncapability independently.\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": "a7e6c88a78b7c3d67491bf90b2b95e66437dbdb6",
      "tree": "ca16a7c1c0d18d57b4a04d355d8aea8ade6536cf",
      "parents": [
        "f8c16bbaa9e14b309ffcf29cac0ea377a35b0dd2"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Thu Nov 15 14:52:28 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: x86 emulator: modify \u0027lods\u0027, and \u0027stos\u0027 not to depend on CR2\n\nThe current \u0027lods\u0027 and \u0027stos\u0027 is depending on incoming CR2 rather than decode\nmemory address from registers.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f8c16bbaa9e14b309ffcf29cac0ea377a35b0dd2",
      "tree": "fde560989f7c3aa77d0f869a90084369c72d7dc4",
      "parents": [
        "cb498ea2ce1d3f3c0bc0a2522241dca10263e437"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Nov 14 20:40:21 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:53:03 2008 +0200"
      },
      "message": "KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch()\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": "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": "5f43238d036fb30e73563e81e42d9c6f1de5551a",
      "tree": "5188b44c4c34b75ae61eca7465df23aa448546a2",
      "parents": [
        "8c392696e749171531d155ea5cefdfc1c970fd18"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Oct 11 15:34:17 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Per-architecture hypercall definitions\n\nCurrently kvm provides hypercalls only for x86* architectures. To\nprovide hypercall infrastructure for other kvm architectures I split\nkvm_para.h into a generic header file and architecture specific\ndefinitions.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8c392696e749171531d155ea5cefdfc1c970fd18",
      "tree": "36b97e721b3423b3272c9866ed32b06251db8b09",
      "parents": [
        "2fcceae145645ec6a4fab0a806bb674d7484d97b"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Oct 10 12:15:54 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Split IOAPIC reset function and export for kernel RESET\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2fcceae145645ec6a4fab0a806bb674d7484d97b",
      "tree": "1b17bb063940bcef205a7d21dbb820ffca7adc38",
      "parents": [
        "60395224d94945544f1f9dce5566981844bf0e77"
      ],
      "author": {
        "name": "Eddie Dong",
        "email": "eddie.dong@intel.com",
        "time": "Wed Oct 10 12:14:25 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Export PIC reset for kernel device reset\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "60395224d94945544f1f9dce5566981844bf0e77",
      "tree": "d86339167d7bfbd5c62bc85c27679c0b8639a2e4",
      "parents": [
        "e00c8cf29b9798eb9918469b0cce1766e0ae40d7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 21 11:03:36 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Add a might_sleep() annotation to gfn_to_page()\n\nThis will help trap accesses to guest memory in atomic context.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e00c8cf29b9798eb9918469b0cce1766e0ae40d7",
      "tree": "2824cf4bfffc96faeda6981a790295c2e4f49690",
      "parents": [
        "34c16eecf78ed4cf01f39ac7211f5b57942ec899"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Oct 21 11:00:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:55 2008 +0200"
      },
      "message": "KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup()\n\nSplit guest reset code out of vmx_vcpu_setup().  Besides being cleaner, this\nmoves the realmode tss setup (which can sleep) outside vmx_vcpu_setup()\n(which is executed with preemption enabled).\n\n[izik: remove unused variable]\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "34c16eecf78ed4cf01f39ac7211f5b57942ec899",
      "tree": "9a9d6192db411cc3c7ff665cc94a8797eb55aa80",
      "parents": [
        "8d4e1288ebb753d3140d81cb349f22b0a6829a4a"
      ],
      "author": {
        "name": "Zhang Xiantao",
        "email": "xiantao.zhang@intel.com",
        "time": "Sat Oct 20 15:34:38 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1)\n\nFirst step to split kvm_vcpu.  Currently, we just use an macro to define\nthe common fields in kvm_vcpu for all archs, and all archs need to define\nits own kvm_vcpu struct.\n\nSigned-off-by: Zhang Xiantao \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8d4e1288ebb753d3140d81cb349f22b0a6829a4a",
      "tree": "3fb754321abd1da8fa107f500dedd4a56f94ac0a",
      "parents": [
        "e56a7a28e21aa2d1af659d8f38952411ce9ae40e"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Thu Oct 18 09:59:34 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Allocate userspace memory for older userspace\n\nAllocate a userspace buffer for older userspaces.  Also eliminate phys_mem\nbuffer.  The memset() in kvmctl really kills initial memory usage but swapping\nworks even with old userspaces.\n\nA side effect is that maximum guest side is reduced for older userspace on\ni386.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e56a7a28e21aa2d1af659d8f38952411ce9ae40e",
      "tree": "ef8899484d5c805cf71d9138a705ef649487751d",
      "parents": [
        "8a7ae055f3533b520401c170ac55e30628b34df5"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Oct 18 14:39:10 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: Use virtual cpu accounting if available for guest times.\n\nppc and s390 offer the possibility to track process times precisely\nby looking at cpu timer on every context switch, irq, softirq etc.\nWe can use that infrastructure as well for guest time accounting.\nWe need to account the used time before we change the state.\nThis patch adds a call to account_system_vtime to kvm_guest_enter\nand kvm_guest exit. If CONFIG_VIRT_CPU_ACCOUNTING is not set,\naccount_system_vtime is defined in hardirq.h as an empty function,\nwhich means this patch does not change the behaviour on other\nplatforms.\n\nI compile tested this patch on x86 and function tested the patch on\ns390.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a7ae055f3533b520401c170ac55e30628b34df5",
      "tree": "f9654746dc92fa18ef66e49e12537dc6cb1d32e6",
      "parents": [
        "cea7bb21280e3a825e64b54740edc5d3e6e4193c"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 18 11:09:33 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Partial swapping of guest memory\n\nThis allows guest memory to be swapped.  Pages which are currently mapped\nvia shadow page tables are pinned into memory, but all other pages can\nbe freely swapped.\n\nThe patch makes gfn_to_page() elevate the page\u0027s reference count, and\nintroduces kvm_release_page() that pairs with it.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cea7bb21280e3a825e64b54740edc5d3e6e4193c",
      "tree": "d9714d8c13491a433951b83a176f2a04f6521009",
      "parents": [
        "9647c14c98687d0abf5197e74b9d1448ab6ebb95"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 17 19:17:48 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Make gfn_to_page() always safe\n\nIn case the page is not present in the guest memory map, return a dummy\npage the guest can scribble on.\n\nThis simplifies error checking in its users.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9647c14c98687d0abf5197e74b9d1448ab6ebb95",
      "tree": "6bd61ace880d9428c38ebe45858793d689ca4f4b",
      "parents": [
        "98348e9507ace5fda95432ff8ca23f13e7f66176"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 16 14:43:46 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Keep a reverse mapping of non-writable translations\n\nThe current kvm mmu only reverse maps writable translation.  This is used\nto write-protect a page in case it becomes a pagetable.\n\nBut with swapping support, we need a reverse mapping of read-only pages as\nwell:  when we evict a page, we need to remove any mapping to it, whether\nwritable or not.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "98348e9507ace5fda95432ff8ca23f13e7f66176",
      "tree": "14c63420c4af00a7956e7cfc8b1c8c07d5e79566",
      "parents": [
        "b284be576471b1521dd04c0845beedb790cbb9d7"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 16 14:42:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:54 2008 +0200"
      },
      "message": "KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b284be576471b1521dd04c0845beedb790cbb9d7",
      "tree": "12449fe425d72c15d2664956cd8a718e9429d44f",
      "parents": [
        "42bf3f0a1f5a25be26e6bb53162cdee82410310d"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Tue Oct 16 18:23:27 2007 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: x86 emulator: cmc, clc, cli, sti\n\nInstruction: cmc, clc, cli, sti\nopcodes: 0xf5, 0xf8, 0xfa, 0xfb respectively.\n\n[avi: fix reference to EFLG_IF which is not defined anywhere]\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "42bf3f0a1f5a25be26e6bb53162cdee82410310d",
      "tree": "f134c24823081e6461f02f396d664e2f43e36486",
      "parents": [
        "d77a25074a8f845401f0eb786ebb8996e45d9e22"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 17 12:18:47 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: MMU: Simplify page table walker\n\nSimplify the walker level loop not to carry so much information from one\nloop to the next.  In addition to being complex, this made kmap_atomic()\ncritical sections difficult to manage.\n\nAs a result of this change, kmap_atomic() sections are limited to actually\ntouching the guest pte, which allows the other functions called from the\nwalker to do sleepy operations.  This will happen when we enable swapping.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d77a25074a8f845401f0eb786ebb8996e45d9e22",
      "tree": "54729328075c2b822ebbb9266b9a23d4eeefd92c",
      "parents": [
        "3176bc3e59cc4e30ac10888f08124b31969a7a88"
      ],
      "author": {
        "name": "Nitin A Kamble",
        "email": "nitin.a.kamble@intel.com",
        "time": "Fri Oct 12 17:40:33 2007 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: x86 emulator: Implement emulation of instruction: inc \u0026 dec\n\nInstructions:\n\tinc r16/r32 (opcode 0x40-0x47)\n\tdec r16/r32 (opcode 0x48-0x4f)\n\nSigned-off-by: Nitin A Kamble \u003cnitin.a.kamble@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3176bc3e59cc4e30ac10888f08124b31969a7a88",
      "tree": "a5f7bb276f3b553fffc286bcb28714d478776eb9",
      "parents": [
        "ab6ef34b906546d85d92dbc3e0fb4e01cce05f62"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Oct 16 17:22:08 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH\n\nWe now have a new namespace, KVM_REQ_*, for bits in vcpu-\u003erequests.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ab6ef34b906546d85d92dbc3e0fb4e01cce05f62",
      "tree": "7d6d5211b2e6b1cb0f66fe429e5f1d114017b0c2",
      "parents": [
        "e25e3ed56fce591e09477b0ce043d90f97988f37"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Oct 16 16:23:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Move apic timer interrupt backlog processing to common code\n\nBeside the obvious goodness of making code more common, this prevents\na livelock with the next patch which moves interrupt injection out of the\ncritical section.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e25e3ed56fce591e09477b0ce043d90f97988f37",
      "tree": "bf71477e427298f59cb12978e3ddfa9d5b90993c",
      "parents": [
        "e4d47f404b59adf22f639fedc943db99f090f9ee"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri Oct 12 11:01:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:53 2008 +0200"
      },
      "message": "KVM: Add some \\n in ioapic_debug()\n\nAdd new-line at end of debug strings.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4d47f404b59adf22f639fedc943db99f090f9ee",
      "tree": "f9a4912f78242055d7a40f18f0f4887db36619fe",
      "parents": [
        "313a3dc75da20630e549441932a7654223f8d72a"
      ],
      "author": {
        "name": "Qing He",
        "email": "qing.he@intel.com",
        "time": "Mon Sep 24 17:39:41 2007 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: apic round robin cleanup\n\nIf no apic is enabled in the bitmap of an interrupt delivery with delivery\nmode of lowest priority, a warning should be reported rather than select\na fallback vcpu\n\nSigned-off-by: Qing He \u003cqing.he@intel.com\u003e\nSigned-off-by: Eddie (Yaozu) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "313a3dc75da20630e549441932a7654223f8d72a",
      "tree": "96af61f06c198834d49c886476ed30b418d853c0",
      "parents": [
        "c4fcc2724628c6548748ec80a90b548fc300e81f"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Oct 11 19:16:52 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: Portability: split kvm_vcpu_ioctl\n\nThis patch splits kvm_vcpu_ioctl into archtecture independent parts, and\nx86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c.\n\nCommon ioctls for all architectures are:\nKVM_RUN, KVM_GET/SET_(S-)REGS, KVM_TRANSLATE, KVM_INTERRUPT,\nKVM_DEBUG_GUEST, KVM_SET_SIGNAL_MASK, KVM_GET/SET_FPU\nNote that some PPC chips don\u0027t have an FPU, so we might need an #ifdef\naround KVM_GET/SET_FPU one day.\n\nx86 specific ioctls are:\nKVM_GET/SET_LAPIC, KVM_SET_CPUID, KVM_GET/SET_MSRS\n\nAn interresting aspect is vcpu_load/vcpu_put. We now have a common\nvcpu_load/put which does the preemption stuff, and an architecture\nspecific kvm_arch_vcpu_load/put. In the x86 case, this one calls the\nvmx/svm function defined in kvm_x86_ops.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nReviewed-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c4fcc2724628c6548748ec80a90b548fc300e81f",
      "tree": "30bfbb4b8624636270a6921a4c8fdbcef054bff0",
      "parents": [
        "5df34a86f917024b67f9e7c850153390973cdfe3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:30:21 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: When updating the dirty bit, inform the mmu about it\n\nSince the mmu uses different shadow pages for dirty large pages and clean\nlarge pages, this allows the mmu to drop ptes that are now invalid.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5df34a86f917024b67f9e7c850153390973cdfe3",
      "tree": "39a15beafdaa46145fed511ed7126cbef2c7f294",
      "parents": [
        "6bfccdc9ae55bb2e0be2e015d7d1ba061f4071c5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:22:59 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Move dirty bit updates to a separate function\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6bfccdc9ae55bb2e0be2e015d7d1ba061f4071c5",
      "tree": "ab390a7bd0803d7535bea6c28cbb4e26d4dd8e87",
      "parents": [
        "cc70e7374df1e3a56d718e8ca330619f316511a6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:13:49 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Instantiate real-mode shadows as user writable shadows\n\nThis is consistent with real-mode permissions.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cc70e7374df1e3a56d718e8ca330619f316511a6",
      "tree": "6746e9724eb51486104800be264e6baa64c8fefd",
      "parents": [
        "c22e3514fceb2f514093ce1d19a2f660ac7347ae"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:12:24 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:52 2008 +0200"
      },
      "message": "KVM: MMU: Disable write access on clean large pages\n\nBy forcing clean huge pages to be read-only, we have separate roles\nfor the shadow of a clean large page and the shadow of a dirty large\npage.  This is necessary because different ptes will be instantiated\nfor the two cases, even for read faults.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c22e3514fceb2f514093ce1d19a2f660ac7347ae",
      "tree": "7df0ec47014030c2dd126d25be868306ea87a7ec",
      "parents": [
        "e3c5e7ec9efe0ebd47fa812cc86f01c51905edf6"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 15:08:41 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: Fix nx access bit for huge pages\n\nWe must set the bit before the shift, otherwise the wrong bit gets set.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e3c5e7ec9efe0ebd47fa812cc86f01c51905edf6",
      "tree": "b049d19c4a1a417977a286781d98301b39bea4f2",
      "parents": [
        "4a4c99248713e878e1e2880015d01049aec805f3"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Oct 11 12:32:30 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Move guest pte dirty bit management to the guest pagetable walker\n\nThis is more consistent with the accessed bit management, and makes the dirty\nbit available earlier for other purposes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4a4c99248713e878e1e2880015d01049aec805f3",
      "tree": "a847d398faafef4ccbd44de13cfe5d1040fd1df1",
      "parents": [
        "f67a46f4aa1212b38696ac6b6a82b4323cea61aa"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Wed Oct 10 20:08:41 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: More struct kvm_vcpu -\u003e struct kvm cleanups\n\nThis time, the biggest change is gpa_to_hpa. The translation of GPA to HPA does\nnot depend on the VCPU state unlike GVA to GPA so there\u0027s no need to pass in\nthe kvm_vcpu.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f67a46f4aa1212b38696ac6b6a82b4323cea61aa",
      "tree": "7d9b86dda5a4b4196f0cbd11ef395d7e1c78fbb4",
      "parents": [
        "043405e10001fe7aae60c46a57189515f13a6468"
      ],
      "author": {
        "name": "Anthony Liguori",
        "email": "aliguori@us.ibm.com",
        "time": "Wed Oct 10 19:25:50 2007 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: MMU: Clean up MMU functions to take struct kvm when appropriate\n\nSome of the MMU functions take a struct kvm_vcpu even though they affect all\nVCPUs.  This patch cleans up some of them to instead take a struct kvm.  This\nmakes things a bit more clear.\n\nThe main thing that was confusing me was whether certain functions need to be\ncalled on all VCPUs.\n\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "043405e10001fe7aae60c46a57189515f13a6468",
      "tree": "a2f2e56117b200aeed70a853489b8e669a48fe15",
      "parents": [
        "6fc138d2278078990f597cb1f62fde9e5b458f96"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Oct 10 17:16:19 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Move x86 msr handling to new files x86.[ch]\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6fc138d2278078990f597cb1f62fde9e5b458f96",
      "tree": "176026316843a4e47b8271f0e84a03f8807ecb64",
      "parents": [
        "d77c26fce93d07802db97498959587eb9347b31d"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 09 19:20:39 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:51 2008 +0200"
      },
      "message": "KVM: Support assigning userspace memory to the guest\n\nInstead of having the kernel allocate memory to the guest, let userspace\nallocate it and pass the address to the kernel.\n\nThis is required for s390 support, but also enables features like memory\nsharing and using hugetlbfs backed memory.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d77c26fce93d07802db97498959587eb9347b31d",
      "tree": "ed49397152d9a8c2ce3dda751a235283f07ef220",
      "parents": [
        "7e620d16b8838bc0ad5b27d2dd55796270cd588c"
      ],
      "author": {
        "name": "Mike Day",
        "email": "ncmike@ncultra.org",
        "time": "Mon Oct 08 09:02:08 2007 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: CodingStyle cleanup\n\nSigned-off-by: Mike D. Day \u003cncmike@ncultra.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7e620d16b8838bc0ad5b27d2dd55796270cd588c",
      "tree": "84d755dd2214324c43b49a13c0340b534c3f3138",
      "parents": [
        "76fafa5e22bd82e92d2734852ba23f17322d675a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:55:29 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Remove gratuitous casts from lapic.c\n\nSince vcpu-\u003eapic is of the correct type, there\u0027s not need to cast.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "76fafa5e22bd82e92d2734852ba23f17322d675a",
      "tree": "f7b81035e86b5b26cbb2d2d13958c805f4990589",
      "parents": [
        "d589444e924bc72e42fa94853f9096589d69374d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:50:48 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Hoist kvm_create_lapic() into kvm_vcpu_init()\n\nMove kvm_create_lapic() into kvm_vcpu_init(), rather than having svm\nand vmx do it.  And make it return the error rather than a fairly\nrandom -ENOMEM.\n\nThis also solves the problem that neither svm.c nor vmx.c actually\nhandles the error path properly.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d589444e924bc72e42fa94853f9096589d69374d",
      "tree": "4150b8e1274288911687fe6f4b2dff7f7d052d2b",
      "parents": [
        "82ce2c96831f049a37118733ced5c8f7c8848102"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 10:48:30 2007 +1000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Add kvm_free_lapic() to pair with kvm_create_lapic()\n\nInstead of the asymetry of kvm_free_apic, implement kvm_free_lapic().\nAnd guess what?  I found a minor bug: we don\u0027t need to hrtimer_cancel()\nfrom kvm_main.c, because we do that in kvm_free_apic().\n\nAlso:\n1) kvm_vcpu_uninit should be the reverse order from kvm_vcpu_init.\n2) Don\u0027t set apic-\u003eregs_page to zero before freeing apic.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "82ce2c96831f049a37118733ced5c8f7c8848102",
      "tree": "609fed010ebbb1ced6f0f24698148e69a72da5fd",
      "parents": [
        "195aefde9cc2cee38dd54ef92a866721fba4413e"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Tue Oct 02 18:52:55 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Allow dynamic allocation of the mmu shadow cache size\n\nThe user is now able to set how many mmu pages will be allocated to the guest.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "195aefde9cc2cee38dd54ef92a866721fba4413e",
      "tree": "e9d7f47e8a462ee193a53cc4c21e5b3c7254956c",
      "parents": [
        "290fc38da8187b53b78dd4d5ab27a20b88ef8b61"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Oct 01 22:14:18 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Add general accessors to read and write guest memory\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "290fc38da8187b53b78dd4d5ab27a20b88ef8b61",
      "tree": "983b2b4cecbe489f7b84391c5eed34aa9f073da0",
      "parents": [
        "f566e09fc2c9f4164e1f0017c8c1c7a18bad7d72"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Sep 27 14:11:22 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:50 2008 +0200"
      },
      "message": "KVM: Remove the usage of page-\u003eprivate field by rmap\n\nWhen kvm uses user-allocated pages in the future for the guest, we won\u0027t\nbe able to use page-\u003eprivate for rmap, since page-\u003ermap is reserved for\nthe filesystem.  So we move the rmap base pointers to the memory slot.\n\nA side effect of this is that we need to store the gfn of each gpte in\nthe shadow pages, since the memory slot is addressed by gfn, instead of\nhfn like struct page.\n\nSigned-off-by: Izik Eidus \u003cizik@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f566e09fc2c9f4164e1f0017c8c1c7a18bad7d72",
      "tree": "54ceab38b9426c02b1cf5bb4138eb5426cc9650f",
      "parents": [
        "eae5ecb5b9043812968fae7ad9d74bf5e7a50245"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 30 11:02:53 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: VMX: Simplify vcpu_clear()\n\nNow that smp_call_function_single() knows how to call a function on the\ncurrent cpu, there\u0027s no need to check explicitly.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "eae5ecb5b9043812968fae7ad9d74bf5e7a50245",
      "tree": "68af0cc24f0e878240109ab2b3f1dfa27b3f80ff",
      "parents": [
        "b4c6abfef400c0f74d9b86a149a6719706cfdbbc"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Sep 30 10:50:12 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: VMX: Don\u0027t clear the vmcs if the vcpu is not loaded on any processor\n\nNoted by Eddie Dong.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b4c6abfef400c0f74d9b86a149a6719706cfdbbc",
      "tree": "f524e25db195f40aa70b7abf9f87ccabf137354b",
      "parents": [
        "a22436b7b8ec9b14a0451d9ac0fdc9d370bd7800"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Tue Sep 25 13:36:40 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its effect\n\nThis patch modifies the management of REX prefix according behavior\nI saw in Xen 3.1.  In Xen, this modification has been introduced by\nJan Beulich.\n\nhttp://lists.xensource.com/archives/html/xen-changelog/2007-01/msg00081.html\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a22436b7b8ec9b14a0451d9ac0fdc9d370bd7800",
      "tree": "b96486abefb623cde2c0af4b82c459b9d811865f",
      "parents": [
        "e4f8e03956de4b1a1dc4bbbdefa9c973d01ee91f"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Sep 24 17:00:58 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 30 17:52:49 2008 +0200"
      },
      "message": "KVM: Purify x86_decode_insn() error case management\n\nThe only valid case is on protected page access, other cases are errors.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ],
  "next": "e4f8e03956de4b1a1dc4bbbdefa9c973d01ee91f"
}
