)]}'
{
  "commit": "5312bd8b3152f8d4fcf9389ba54e32b09f4b4093",
  "tree": "5567d7386b6786b822e66b7a487c55f056124639",
  "parents": [
    "4346ae3e28fc19e01b3070de169ea9fcef5f54aa"
  ],
  "author": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Sun Feb 12 18:32:55 2012 +0200"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Wed Feb 29 13:44:43 2012 +0200"
  },
  "message": "memory: store MemoryRegionSection pointers in phys_map\n\nInstead of storing PhysPageDesc, store pointers to MemoryRegionSections.\nThe various offsets (phys_offset \u0026 ~TARGET_PAGE_MASK,\nPHYS_OFFSET \u0026 TARGET_PAGE_MASK, region_offset) can all be synthesized\nfrom the information in a MemoryRegionSection.  Adjust phys_page_find()\nto synthesize a PhysPageDesc.\n\nThe upshot is that phys_map now contains uniform values, so it\u0027s easier\nto generate and compress.\n\nThe end result is somewhat clumsy but this will be improved as we we\npropagate MemoryRegionSections throughout the code instead of transforming\nthem to PhysPageDesc.\n\nThe MemoryRegionSection pointers are stored as uint16_t offsets in an\narray.  This saves space (when we also compress node pointers) and is\nmore cache friendly.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "536e70f52c331aea2c327392694fe985d471c44e",
      "old_mode": 33188,
      "old_path": "exec.c",
      "new_id": "957bc6d5bff79eab16d7d64a7a57c271ad8eb21a",
      "new_mode": 33188,
      "new_path": "exec.c"
    }
  ]
}
