)]}'
{
  "commit": "e6c980a37b064bdddbb4758187fee813aeb4ff16",
  "tree": "d54ae2cb1fdd55a916efe7482cd6a18f30f0b63e",
  "parents": [
    "5261bcfc854032f3ad28e79f4e6b9f27482467fc"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Thu Aug 17 15:13:41 2017 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Fri Aug 25 14:41:49 2017 -0400"
  },
  "message": "vmm: Add support for changing VMX controls\n\nThis adds internal support for changing pin-based, cpu-based, and secondary\ncpu-based VMX controls.  VMMs will want to change some of them on the fly,\nsuch as \"vmexit on halt.\"  It\u0027s not enough to set them once at startup\neither, since the 2LS\u0027s decision may depend on the number of cores\navailable dynamically.\n\nLater patches will add support for userspace to change the flags in\nvmx_vmm.  Once those bits are changed, the next time a GPC reloads, it will\nhave the new controls.  At a minimum, GPCs reload any time we run a VM and\nwere previously in userspace.  That should be sufficient for 2LSs.  The\nalternative is to set those VMCS fields on every pop, which will slightly\nslow down kernel vmexit handling.\n\nThe VMCS writes are only a few nsec each - basically the minimum cost of\nany similar instruction.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6f9cef73d184599427de49cb2b085a6ebd201e79",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/vmm/intel/vmx.c",
      "new_id": "863fec7655efff10dbcf27412b64cd30085e81a9",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/vmm/intel/vmx.c"
    },
    {
      "type": "modify",
      "old_id": "e6b50acf42f650d0f614fa08b9e4ab71570bd54c",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/vmm/intel/vmx.h",
      "new_id": "2b448f765addeddca69578bedb0321edbf6bbb3e",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/vmm/intel/vmx.h"
    },
    {
      "type": "modify",
      "old_id": "8f0acc8e22d06700cd9fafdc3399a8b71bc6fb75",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/vmm/vmm.c",
      "new_id": "f40625da5cd65464c846d9116f56cef7d34b1811",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/vmm/vmm.c"
    },
    {
      "type": "modify",
      "old_id": "9ae840d2537b9159c29d95029823bc4e0428e7e5",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/vmm/vmm.h",
      "new_id": "da62fe9cfc0e33c2b1f15185cf257f09a19b0437",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/vmm/vmm.h"
    }
  ]
}
