)]}'
{
  "commit": "10474ae8945ce08622fd1f3464e55bd817bf2376",
  "tree": "d390843b5107e600fbbf745eb24d85d745fe449f",
  "parents": [
    "e8b3433a5c062e94e34cadb6144c10689a497bc3"
  ],
  "author": {
    "name": "Alexander Graf",
    "email": "agraf@suse.de",
    "time": "Tue Sep 15 11:37:46 2009 +0200"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Thu Dec 03 09:32:10 2009 +0200"
  },
  "message": "KVM: Activate Virtualization On Demand\n\nX86 CPUs need to have some magic happening to enable the virtualization\nextensions on them. This magic can result in unpleasant results for\nusers, like blocking other VMMs from working (vmx) or using invalid TLB\nentries (svm).\n\nCurrently KVM activates virtualization when the respective kernel module\nis loaded. This blocks us from autoloading KVM modules without breaking\nother VMMs.\n\nTo circumvent this problem at least a bit, this patch introduces on\ndemand activation of virtualization. This means, that instead\nvirtualization is enabled on creation of the first virtual machine\nand disabled on destruction of the last one.\n\nSo using this, KVM can be easily autoloaded, while keeping other\nhypervisors usable.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6471c8826671f67e4613fb030149f923d41d384",
      "old_mode": 33188,
      "old_path": "arch/ia64/kvm/kvm-ia64.c",
      "new_id": "5fdeec5fddcf60db5d6a96dd5f5d86e533f2b0f1",
      "new_mode": 33188,
      "new_path": "arch/ia64/kvm/kvm-ia64.c"
    },
    {
      "type": "modify",
      "old_id": "95af62217b6b85de45863ab2bc2ce497455493a9",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kvm/powerpc.c",
      "new_id": "5902bbc2411e7db65097d006666254c9bc2b4edd",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kvm/powerpc.c"
    },
    {
      "type": "modify",
      "old_id": "00e2ce8e91f5e988ec0ec0121cf8a04890b28276",
      "old_mode": 33188,
      "old_path": "arch/s390/kvm/kvm-s390.c",
      "new_id": "544505893c9fd8befb48b2f8943819ffb13d3ea6",
      "new_mode": 33188,
      "new_path": "arch/s390/kvm/kvm-s390.c"
    },
    {
      "type": "modify",
      "old_id": "a46e2dd9aca827e6de6de4f97327e9c5fd088035",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/kvm_host.h",
      "new_id": "295c7c4d9c90091b394f76a09f7544b5cf28eb6e",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/kvm_host.h"
    },
    {
      "type": "modify",
      "old_id": "f54c4f9d28657ba80e53edb4d5a75e01508c1872",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/svm.c",
      "new_id": "59fe4d54da113e7d062e55af0b2c7855c85a92d4",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/svm.c"
    },
    {
      "type": "modify",
      "old_id": "73cb5dd960cf5073ea1c56dd803cd544c8ca5ca4",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/vmx.c",
      "new_id": "a187570e48379d6aa3fb170c3a7094e31023a287",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/vmx.c"
    },
    {
      "type": "modify",
      "old_id": "829e3063e2ab275b5088de0b3701266b3ce77086",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/x86.c",
      "new_id": "3d83de8bcbf442775222f1ba7d49296ff1ae78f0",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/x86.c"
    },
    {
      "type": "modify",
      "old_id": "c0a1cc35f080f4fd72c8204c7596c69930b40f1d",
      "old_mode": 33188,
      "old_path": "include/linux/kvm_host.h",
      "new_id": "b985a29d8175fcf4a8d6e823687b740e6ffb27a2",
      "new_mode": 33188,
      "new_path": "include/linux/kvm_host.h"
    },
    {
      "type": "modify",
      "old_id": "38e4d2c34ac1201f9006a568da36847dd46e2738",
      "old_mode": 33188,
      "old_path": "virt/kvm/kvm_main.c",
      "new_id": "70c8cbea0a99ad986503846aaf043f0ec20ff41c",
      "new_mode": 33188,
      "new_path": "virt/kvm/kvm_main.c"
    }
  ]
}
