On 08.09.2008 05:54, ron minnich wrote:
On Sun, Sep 7, 2008 at 5:06 PM, Kevin O'Connor kevin@koconnor.net wrote:
Why can't the code use a new stack after CAR is disabled?
To be clear, I think moving the stack would be a bad idea. However, I don't see why the code can't just start using a new stack.
I don't want to revisit this if I don't have to :=)
This discussion of "use old stack"/"use new stack" went on for a bit, and we went with "use old stack" for a number of reasons. One big reason was that our production bios experts told us we really ought to be able to keep using the stack after disabling car, and we have shown with v3 that this is possible BUT BUT BUT:
we need to reserve 2x the active stack area (on entry to CAR) to properly use the old stack on K8. Just FYI.
Well, that's what the code requires now, but it is easy to change that without changing our working stack-backup-restore inline asm. We can back up the area clobbered by the stack backup before backing up the stack. The alternative of backing up the stack to a reserved area at the top of memory won't work due to inline asm peculiarities.
(NOT the whole CAR area, just the area of stack that is active when we call disaable_car).
This is easy but it's important to remember it.
For multiprocessor environments, these two are basically identical.
Regards, Carl-Daniel