Message ID | 1461651308-894-1-git-send-email-zhoujie2011@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 26 April 2016 at 07:15, Zhou Jie <zhoujie2011@cn.fujitsu.com> wrote: > n8x0_init has a huge stack usage of 65536 bytes approx. > Moving large arrays to heap to reduce stack usage. > > Signed-off-by: Zhou Jie <zhoujie2011@cn.fujitsu.com> > --- > hw/arm/nseries.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c > index 5382505..c7068c0 100644 > --- a/hw/arm/nseries.c > +++ b/hw/arm/nseries.c > @@ -1364,7 +1364,7 @@ static void n8x0_init(MachineState *machine, > > if (option_rom[0].name && > (machine->boot_order[0] == 'n' || !machine->kernel_filename)) { > - uint8_t nolo_tags[0x10000]; > + uint8_t *nolo_tags = g_new(uint8_t, 0x10000); > /* No, wait, better start at the ROM. */ > s->mpu->cpu->env.regs[15] = OMAP2_Q2_BASE + 0x400000; > > @@ -1383,6 +1383,7 @@ static void n8x0_init(MachineState *machine, > > n800_setup_nolo_tags(nolo_tags); > cpu_physical_memory_write(OMAP2_SRAM_BASE, nolo_tags, 0x10000); > + g_free(nolo_tags); > } > } Thanks, applied to target-arm.next. -- PMM
diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c index 5382505..c7068c0 100644 --- a/hw/arm/nseries.c +++ b/hw/arm/nseries.c @@ -1364,7 +1364,7 @@ static void n8x0_init(MachineState *machine, if (option_rom[0].name && (machine->boot_order[0] == 'n' || !machine->kernel_filename)) { - uint8_t nolo_tags[0x10000]; + uint8_t *nolo_tags = g_new(uint8_t, 0x10000); /* No, wait, better start at the ROM. */ s->mpu->cpu->env.regs[15] = OMAP2_Q2_BASE + 0x400000; @@ -1383,6 +1383,7 @@ static void n8x0_init(MachineState *machine, n800_setup_nolo_tags(nolo_tags); cpu_physical_memory_write(OMAP2_SRAM_BASE, nolo_tags, 0x10000); + g_free(nolo_tags); } }
n8x0_init has a huge stack usage of 65536 bytes approx. Moving large arrays to heap to reduce stack usage. Signed-off-by: Zhou Jie <zhoujie2011@cn.fujitsu.com> --- hw/arm/nseries.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)