Query about: ARM11 MPCore: preemption/task migration cache coherency
Will Deacon
will.deacon at arm.com
Wed May 30 02:38:59 EDT 2012
On Tue, May 29, 2012 at 06:28:11AM +0100, bill4carson wrote:
> --- a/arch/arm/mm/cache-v6.S
> +++ b/arch/arm/mm/cache-v6.S
> @@ -170,6 +170,10 @@ ENDPROC(v6_coherent_kern_range)
> ENTRY(v6_flush_kern_dcache_area)
> add r1, r0, r1
> 1:
> +#ifdef CONFIG_SMP
> + ldr r2, [r0] @ read for ownership
> + str r2, [r0] @ write for ownership
> +#endif /* CONFIG_SMP */
> #ifdef HARVARD_CACHE
> mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line
> #else
I don't think the invalidation is needed here, so you probably don't need to
hack this function at all.
> But I have no idea on how to accomplish the v6_flush_kern_cache_all,
> maybe IPI is needed?
We could add an IPI to invalidate the I-caches on the other cores, however
I haven't checked to see if we could instead do something on the CPU
migration path which avoid the need for the broadcasting.
Will
More information about the linux-arm-kernel
mailing list