)]}'
{
  "commit": "743eeb0b01d2fbf4154bf87bff1ebb6fb18aeb7a",
  "tree": "5392464930f7e77131d65f32ba96ce4665307629",
  "parents": [
    "0d460ffc0956d2dbe12ca9f5f6aa0f8701ea9d73"
  ],
  "author": {
    "name": "Sasha Levin",
    "email": "levinsasha928@gmail.com",
    "time": "Wed Jul 27 16:00:48 2011 +0300"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Sun Sep 25 19:17:59 2011 +0300"
  },
  "message": "KVM: Intelligent device lookup on I/O bus\n\nCurrently the method of dealing with an IO operation on a bus (PIO/MMIO)\nis to call the read or write callback for each device registered\non the bus until we find a device which handles it.\n\nSince the number of devices on a bus can be significant due to ioeventfds\nand coalesced MMIO zones, this leads to a lot of overhead on each IO\noperation.\n\nInstead of registering devices, we now register ranges which points to\na device. Lookup is done using an efficient bsearch instead of a linear\nsearch.\n\nPerformance test was conducted by comparing exit count per second with\n200 ioeventfds created on one byte and the guest is trying to access a\ndifferent byte continuously (triggering usermode exits).\nBefore the patch the guest has achieved 259k exits per second, after the\npatch the guest does 274k exits per second.\n\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "efad7238505888866900fd19d6a101acecef2a51",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/i8254.c",
      "new_id": "76e3f1cd03696997964db7814de98a578a9eb4a7",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/i8254.c"
    },
    {
      "type": "modify",
      "old_id": "19fe855e79536e3c8f6e7aa733a41ce98bf5e192",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/i8259.c",
      "new_id": "6b869ce0cc195313eba95d968d435249c3923b7d",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/i8259.c"
    },
    {
      "type": "modify",
      "old_id": "53e2d084bffb5bad24ca4fe36534467a239ff6fb",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/irq.h",
      "new_id": "2086f2bfba33db1d11a119ef57fa82aa01763804",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/irq.h"
    },
    {
      "type": "modify",
      "old_id": "6cb353c83a12b4aae654e4fbb753ebbfd4e2948e",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/x86.c",
      "new_id": "d28dff749dfdb98e00564efc42846192938e0765",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/x86.c"
    },
    {
      "type": "modify",
      "old_id": "ff4d4062af9d84fb92dd9f50697fb6d4f260461c",
      "old_mode": 33188,
      "old_path": "include/linux/kvm_host.h",
      "new_id": "d0e42f30edf67909900533ab4ab1af20c73fc929",
      "new_mode": 33188,
      "new_path": "include/linux/kvm_host.h"
    },
    {
      "type": "modify",
      "old_id": "2316ec1aadc48420cb6a86f467cf90a2a8fe0fb5",
      "old_mode": 33188,
      "old_path": "virt/kvm/coalesced_mmio.c",
      "new_id": "a6ec206f36ba2f16f43c90680535ff6bcc45d56f",
      "new_mode": 33188,
      "new_path": "virt/kvm/coalesced_mmio.c"
    },
    {
      "type": "modify",
      "old_id": "73358d256fa2d0e1dca075f0947fc187faf5089d",
      "old_mode": 33188,
      "old_path": "virt/kvm/eventfd.c",
      "new_id": "f59c1e8de7a2e62b5977d90ab992e1c2240e80f5",
      "new_mode": 33188,
      "new_path": "virt/kvm/eventfd.c"
    },
    {
      "type": "modify",
      "old_id": "8df1ca104a7f11ac0b78c820d9519cd2f2fe1a15",
      "old_mode": 33188,
      "old_path": "virt/kvm/ioapic.c",
      "new_id": "3eed61eb48675a63dd1f31b0095217ab6bc5f646",
      "new_mode": 33188,
      "new_path": "virt/kvm/ioapic.c"
    },
    {
      "type": "modify",
      "old_id": "aefdda390f5e73f297897db863da1ee9e129a6a8",
      "old_mode": 33188,
      "old_path": "virt/kvm/kvm_main.c",
      "new_id": "d9cfb782cb81a87fc5ef4f1734df1a308a55539b",
      "new_mode": 33188,
      "new_path": "virt/kvm/kvm_main.c"
    }
  ]
}
