2010-06-14 06:34:16

by Jeffrey Merkey

[permalink] [raw]
Subject: 4K Pageable Stacks a MUST

I have been running down bugs on the MDB Debugger on a 4 processor AMD
Opteron System and have discovered that processors 1-X (other than 0)
use a buttload of stack space when all the spinlock debgguging checks
are turned on -- way too much memory and the systenter_past_esp panic
shows up a lot. NetWare at one point instrumented the ability to page
map an extra 4K of memory up to 16K (then release it when the stack
shrunk back to a smaller usage footprint). I think for debugging and
just general usage you should enable a 16K pagable limit with 4K
stacks for debuggers and such or just to stop a lot of dump traps.

It's getting to the point where 8K wont be enough when people need to
debug spinlocks and rcu locks and other types of breakage. Would not
be hard to instrument.

Jeff


2010-06-14 06:37:45

by Jeffrey Merkey

[permalink] [raw]
Subject: Re: 4K Pageable Stacks a MUST

What I am talking about here is setting up the page fault handler to
map an extra 4K when the stack runs off the end then freeing the page
when the stack shrinks and create a 16K max window. Would fix some
issues. Based upon what I saw in NetWare 16K seems to be about as big
as you would ever need and you could still use 4K for most things.
Doing stack probes is braindead and the problem is getting worse from
what I have seen on newer distros.

Jeff

On Mon, Jun 14, 2010 at 12:34 AM, Jeffrey Merkey <[email protected]> wrote:
> I have been running down bugs on the MDB Debugger on a 4 processor AMD
> Opteron System and have discovered that processors 1-X (other than 0)
> use a buttload of stack space when all the spinlock debgguging checks
> are turned on -- way too much memory and the systenter_past_esp panic
> shows up a lot. ?NetWare at one point instrumented the ability to page
> map an extra 4K of memory up to 16K (then release it when the stack
> shrunk back to a smaller usage footprint). ?I think for debugging and
> just general usage you should enable a 16K pagable limit with 4K
> stacks for debuggers and such or just to stop a lot of dump traps.
>
> It's getting to the point where 8K wont be enough when people need to
> debug spinlocks and rcu locks and other types of breakage. ?Would not
> be hard to instrument.
>
> Jeff
>