On 19.02.2013, at 15:41, Fabien Chouteau wrote: > The current elf loader uses too much memory. For example, I have a > executable with a bss section of 400 MB and I set the ram size to 512 > MB. Qemu uses about 780MB of RAM (which is fine), but there's a peak at > 1.6 GB during initialization (this is not fine). > > This patch fixes two things: > 1) do not allocate each elf program twice. > 2) do not allocate memory for areas that are only zeros. > > For this we need a new field in Rom: "datasize" which is the size of the > allocated data. If datasize is less than romsize, it means that the area > from datasize to romsize is filled with zeros. > > Signed-off-by: Fabien Chouteau <chout...@adacore.com>
In the long run, we should make the elf loader not use the rom framework at all, but instead provide its own reset functions. However, for now I think this is a valuable optimization. Thanks for looking into it :). Applied to ppc-next. Alex