Re: [patch 2/2] x86: lds - Use THREAD_SIZE instead of numeric constant

Cyrill Gorcunov
2008-02-17T20:07:32Z

[H. Peter Anvin - Sun, Feb 17, 2008 at 11:48:58AM -0800]
> Cyrill Gorcunov wrote:
>> Yes Sam, I've read Peter and Ingo comments on this patch
>> (actually I sent the same patch maybe week ago and Peter
>> and Ingo told me that we use %fs,%gs now for stack) but
>> as I pointed in comment - this alignment is still using
>> by Xen and lguest and even x86. So - it would be really
>> usefull for me if someone give me the last point - YES we
>> use such an alignment for stack, NO - we don't use it at all.
>> I was trying to hadle this myself - but I'm not a specialist
>> in this area you know ;)
>
> It bugs me quite a bit that paravirt clients contain this hack open-coded,
> but that's not *your* fault. There probably should be a macro to
> encapsulate the stack pointer location for a specific thread.
>
> -hpa
>

Thanks Peter for comments. Peter could you clarify for me a bit
more on the string:

x86/kernel/head_32.S:339

/* Set up the stack pointer */
lss stack_start,%esp

but stack_start is defined as head_32.S:647

.data
ENTRY(stack_start)
.long init_thread_union+THREAD_SIZE

so stack_start *must* be aligned with THREAD_SIZE in vmlinux.lds
at compiling time. There is no PDA at this booting time. Am I wrong?
If you're too busy - just reply me like "Read the code" ;)

- Cyrill -