)]}'
{
  "commit": "b9e5dc8d4511e6a00862a795319569e7fe7f60f4",
  "tree": "1be01a8d13e2e5023c22db4a7dd87518f14af5b3",
  "parents": [
    "8d26cf7b40b1648c39e77a113dac07ad31363120"
  ],
  "author": {
    "name": "Christian Borntraeger",
    "email": "borntraeger@de.ibm.com",
    "time": "Wed Jan 11 11:20:30 2012 +0100"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Mon Mar 05 14:52:22 2012 +0200"
  },
  "message": "KVM: provide synchronous registers in kvm_run\n\nOn some cpus the overhead for virtualization instructions is in the same\nrange as a system call. Having to call multiple ioctls to get set registers\nwill make certain userspace handled exits more expensive than necessary.\nLets provide a section in kvm_run that works as a shared save area\nfor guest registers.\nWe also provide two 64bit flags fields (architecture specific), that will\nspecify\n1. which parts of these fields are valid.\n2. which registers were modified by userspace\n\nEach bit for these flag fields will define a group of registers (like\ngeneral purpose) or a single register.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a67fb35993fa9eabde0d6ea061b6518d41f48c98",
      "old_mode": 33188,
      "old_path": "Documentation/virtual/kvm/api.txt",
      "new_id": "7ca696227d3a6bf915b221ea2cc5c950804d507e",
      "new_mode": 33188,
      "new_path": "Documentation/virtual/kvm/api.txt"
    },
    {
      "type": "modify",
      "old_id": "bc90c75adf6716f8423fe92935fa9fbd7be89cf2",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/asm/kvm.h",
      "new_id": "b9f82c84f0932cff844ca97d09c3a6291c92e908",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/asm/kvm.h"
    },
    {
      "type": "modify",
      "old_id": "f7727d91ac6b91d26325fdbbae46cc9e7698cba2",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/kvm.h",
      "new_id": "7d9d4de057ef36e80ef08ebfc6a6403ec27c2e21",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/kvm.h"
    },
    {
      "type": "modify",
      "old_id": "82b32a100c7ddc18f69547ca40ec946e873852c6",
      "old_mode": 33188,
      "old_path": "arch/s390/include/asm/kvm.h",
      "new_id": "325560afb77e838b1c5bfd4bfaefd59688b5f28c",
      "new_mode": 33188,
      "new_path": "arch/s390/include/asm/kvm.h"
    },
    {
      "type": "modify",
      "old_id": "4d8dcbdfc1205956c3b90b6f13d6bff021b63860",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/kvm.h",
      "new_id": "e7d1c194d27280381ae302f9d1aac2d69a872b2e",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/kvm.h"
    },
    {
      "type": "modify",
      "old_id": "6cf048d9604bef8a03e637984b0ef25af090383c",
      "old_mode": 33188,
      "old_path": "include/linux/kvm.h",
      "new_id": "245bcb3a0fcd08305fdfb0c6ace86c627adf116b",
      "new_mode": 33188,
      "new_path": "include/linux/kvm.h"
    }
  ]
}
