> Stacks grow downwards/backwards in memory. The early_stack definition is
> immediately *before* the early_stack label.
>
>> b) what is function of ” mov $bootsym_phys(early_stack),%esp" ?
>> is this related with trampoline relocation ?
>
> The trampoline stack (early_stack) is now allocated within the trampoline
> code/data area, rather than being hard-coded at an address (e.g., 0x98000).
>
a) the Stack ,how to grow downwards ?
if device changed/added,the stack will grows much ?
what device or function code will use this stack ?
what time does this stack grow ?
Can this stack overwrite other things when grow downwards ? in
xen-4.1.0 , this stack top equals to trampoline_end ,will it overwrite
trampoline_code ?
I think maybe impossible ,because trampoline code has been moved to
BOOT_TRAMPOLINE .
why do I have such question ,please see my b)
b)
it seems that the core problem is the "early_stack" , in my case ,
Stack top is overlap P410i EBDA area when stack grows downwards,so
system can't boot again.
but But there is another question puzzled :
If 0x98000 value is wrong , we will think in any case , system will be
corrupted ,but if we disable or unplug FC card , system will boot
normally.
Very mystery.
Following is my guess:
I guess : 0x95400 ~ <------ 0x98000 (stack top) ~ 0xa0000
0x95400 … P410i_EBDA_start ….. P410i_EBDA_end …. 0x98000
We know stacks grow downwards/backwards in memory , so I guess P410i
EBDA area should be located in sub-area in 0x95400 ~0x98000.
I feel the stack size will change as device number.
Maybe ,if we plug FC card , the stack should be more larger ,
occasionally reach P410i EBDA area. If unplug FC card , the stack
will be so small that it can’t reach P410i EBDA . who knows , maybe
only P410i firmware guys and FC card firmware guys , because only they
know their EBDA area range.
I will consult our firmware guys to verify my idea.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|