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

Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until paging enabled.



At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
> With enough warnings enabled the model seemed to be complaining that pages
> cached before paging was enabled had been mapped with to inconsistent sets of
> attributes. I'm not convinced that isn't a model issue, nor am I convinced
> this has really fixed anything, but it seems sensible enough.

This might be what breaks secondary CPU bringup: pagetables built by CPU
0 may not have been flushed all the way to RAM when CPU 1 comes up, and
CPU 1 isn't participating in cache coherence protocols when it
starts to need them.

OTOH, if that's the case, it's surprising that CPU 1 passes the boot
gate.  I'll look into it next week, x86/mm workload permitting. 

Cheers,

Tim.

> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  xen/arch/arm/head.S |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
> index 9a7714a..71197af 100644
> --- a/xen/arch/arm/head.S
> +++ b/xen/arch/arm/head.S
> @@ -148,10 +148,11 @@ hyp:
>        * Exceptions in LE ARM,
>        * Low-latency IRQs disabled,
>        * Write-implies-XN disabled (for now),
> -      * I-cache and d-cache enabled,
> +      * D-cache diabled (for now),
> +      * I-cache enabled,
>        * Alignment checking enabled,
>        * MMU translation disabled (for now). */
> -     ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
> +     ldr   r0, =(HSCTLR_BASE|SCTLR_A)
>       mcr   CP32(r0, HSCTLR)
>  
>       /* Write Xen's PT's paddr into the HTTBR */
> @@ -217,6 +218,10 @@ pt_ready:
>       mov   pc, r1                 /* Get a proper vaddr into PC */
>  paging:
>  
> +     mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
> +     orr   r0, r0, #(SCTLR_C)
> +     mcr   CP32(r0, HSCTLR)
> +
>  #ifdef EARLY_UART_ADDRESS
>       /* Recover the UART address in the new address space. */
>       lsl   r11, #11
> -- 
> 1.7.9.1
> 
> 
> _______________________________________________
> 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®.