)]}'
{
  "commit": "d60fa42e8bae39440f997ebfe8fe328269a57d16",
  "tree": "23e40a2deb58d4dac1c90bb75d3b5e3660746dd9",
  "parents": [
    "6bbd5dde9a10520eb069c4bff9f2e34b96b1cfee"
  ],
  "author": {
    "name": "Fabien Chouteau",
    "email": "chouteau@adacore.com",
    "time": "Tue Feb 19 04:41:11 2013 +0000"
  },
  "committer": {
    "name": "Alexander Graf",
    "email": "agraf@suse.de",
    "time": "Fri Mar 08 21:04:52 2013 +0100"
  },
  "message": "Save memory allocation in the elf loader\n\nThe current elf loader uses too much memory. For example, I have a\nexecutable with a bss section of 400 MB and I set the ram size to 512\nMB. Qemu uses about 780MB of RAM (which is fine), but there\u0027s a peak at\n1.6 GB during initialization (this is not fine).\n\nThis patch fixes two things:\n 1) do not allocate each elf program twice.\n 2) do not allocate memory for areas that are only zeros.\n\nFor this we need a new field in Rom: \"datasize\" which is the size of the\nallocated data. If datasize is less than romsize, it means that the area\nfrom datasize to romsize is filled with zeros.\n\nSigned-off-by: Fabien Chouteau \u003cchouteau@adacore.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "531a42553bf9b84d9d1a108599700c999f245f19",
      "old_mode": 33188,
      "old_path": "hw/elf_ops.h",
      "new_id": "acc701e3a4e36f7c278d8ddd376e560fbbe7369b",
      "new_mode": 33188,
      "new_path": "hw/elf_ops.h"
    },
    {
      "type": "modify",
      "old_id": "995edc3f981dde3734a1e91ba1dac9b8378bcb4f",
      "old_mode": 33188,
      "old_path": "hw/loader.c",
      "new_id": "bd2b52d14e7ca66dc77b17f1307eb76c910b4c60",
      "new_mode": 33188,
      "new_path": "hw/loader.c"
    },
    {
      "type": "modify",
      "old_id": "5e61c95b8474806fbb16767ace1569cbb095fc7b",
      "old_mode": 33188,
      "old_path": "hw/loader.h",
      "new_id": "0958f06934650e72caeb7e724b909276cdd9f4f0",
      "new_mode": 33188,
      "new_path": "hw/loader.h"
    }
  ]
}
