On Fri, Feb 26, 2010 at 7:37 AM, Patrick Georgi <patrick@georgi-clan.de> wrote:
Am 26.02.2010 15:14, schrieb Myles Watson:
> I would like to double check this before it gets committed.  I only
> tried it once, and the difference was very large.  3M of stack doesn't
> seem right.
Those 3M are CONFIG_MAX_CPUS*CONFIG_STACK_SIZE, right?
Yep.  I didn't realize that CONFIG_MAX_CPUS was 48.
 
I think there is some code that assigns a local stack area for each CPU,
the 3M aren't meant for a single instance of code running (which would
indeed be huge).

For me, the only change that needs to be made is:

-           . = ((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN)&&(CONFIG_RAMBASE<0x100000)&&(CONFIG_RAMTOP>0x100000) ) ? CONFIG_STACK_SIZE : (CONFIG_MAX_CPUS*CONFIG_STACK_SIZE);

+           . += ((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN)&&(CONFIG_RAMBASE<0x100000)&&(CONFIG_RAMTOP>0x100000) ) ? CONFIG_STACK_SIZE : (CONFIG_MAX_CPUS*CONFIG_STACK_SIZE);

Removing the .stack construct makes no difference.

I like the idea of minimizing the change.

Thanks,

Myles