[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 6/6] x86/boot: Ensure the BSS is aligned on an 8 byte boundary



At 18:26 +0100 on 07 Apr (1428431180), Andrew Cooper wrote:
> --- a/xen/arch/x86/boot/head.S
> +++ b/xen/arch/x86/boot/head.S
> @@ -127,7 +127,8 @@ __start:
>          mov     $sym_phys(__bss_end),%ecx
>          sub     %edi,%ecx
>          xor     %eax,%eax
> -        rep     stosb
> +        shr     $2,%ecx
> +        rep     stosl

Should this be shr $3 and stosq?  You are aligning to 8 bytes in the
linker runes.

>  
>          /* Interrogate CPU extended features via CPUID. */
>          mov     $0x80000000,%eax
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 4699a04..b1926e3 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -163,6 +163,7 @@ SECTIONS
>    __init_end = .;
>  
>    .bss : {                     /* BSS */
> +       . = ALIGN(8);

Here, we're already aligned to STACK_SIZE, which the
.bss.stack_aligned just below is relying on.  So on the one hand this
new alignment comment is sort-of-harmless, but on the other hand it
distracts from the larger and more important alignment.

Cheers,

Tim.

>         __bss_start = .;
>         *(.bss.stack_aligned)
>         . = ALIGN(PAGE_SIZE);
> @@ -175,6 +176,7 @@ SECTIONS
>         *(.bss.percpu.read_mostly)
>         . = ALIGN(SMP_CACHE_BYTES);
>         __per_cpu_data_end = .;
> +       . = ALIGN(8);
>         __bss_end = .;
>    } :text
>    _end = . ;
> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.