RE: ACPI stack overflow

From: Stuart_Hayes
Date: Fri Mar 05 2004 - 17:40:17 EST


Richard B. Johnson wrote:
> On Fri, 5 Mar 2004 Stuart_Hayes@xxxxxxxx wrote:
>
>>
>> Hello...
>>
>> I think I am getting a stack overflow when Linux is parsing the ACPI
>> tables (initializing all the devices and running all the _STA
>> methods). I am using the x86_64 architecture. I would like to try
>> increasing the kernel stack size, but I'm not sure how to go about
>> doing this.
>> Could someone tell me how to increase the kernel stack size?
>> (And, has anyone else seen a problem with stack overflows with ACPI?)
>>
>
> Please fix your mailer. In Unix/Linux, we put in a [Enter] ('\n')
> every once in awhile, usually every 79 charcters so that a line
> of text does not exceed 80 characters. We do not let some indefinite
> screen "auto-wrap".
>
>> Thanks!
>> Stuart
>> stuart_hayes@xxxxxxxx
>
> There have been continual changes over the years to reduce the
> amount of kernel stack that the kernel uses because kernel stack-
> space is "expensive". It needs to be changed in pages. I think
> that if you have a stack-overflow, then you are writing poor
> kernel code. In the kernel, do not put arrays on the stack, i.e,
> in "local" space. Use kmalloc()/kfree() instead.
>
> Basically, do not increase the stack size. It just masks problems.
> It does not make them go away. If you need more stack, you
> are doing something wrong.
>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
> Note 96.31% of all statistics are fiction.

Thanks. Unfortunately, it isn't my code that's using so much stack
space--it's the ACPI "driver". It has many deep nested calls, and
I believe each call in x86_64 is taking more stack space than it would
in i386 because of the larger registers. But, what I really wanted
to do is increase the kernel size to verify that the problem is a
stack overflow (my other tests have led me to believe so). I wasn't
going to propose that as a solution.

Thanks!
Stuart

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/