On Sat, Jul 27, 2013 at 05:10:56AM +0100, Paul Walmsley wrote: > > Tonight I put on a Jon Hopkins album, in recollection of my UK ARM Linux > colleagues perhaps, and started testing, and eventually wound up with this > one: > > commit 621a0147d5c921f4cc33636ccd0602ad5d7cbfbc > Author: Will Deacon <will.deacon@xxxxxxx> Oh, great... > Date: Wed Jun 12 12:25:56 2013 +0100 > > ARM: 7757/1: mm: don't flush icache in switch_mm with hardware broadcasting > > When scheduling an mm on a CPU where it hasn't previously been used, we > flush the icache on that CPU so that any code loaded previously on > a different core can be safely executed. > > For cores with hardware broadcasting of cache maintenance operations, > this is clearly unnecessary, since the inner-shareable invalidation in > __sync_icache_dcache will affect all CPUs. > > This patch conditionalises the icache flush in switch_mm based on > cache_ops_need_broadcast(). > > Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx> > Reported-by: Albin Tonnerre <albin.tonnerre@xxxxxxx> > Signed-off-by: Will Deacon <will.deacon@xxxxxxx> > Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> > > ... > > v3.11-rc2 boots with it reverted. What also works is v3.11-rc2 with the > below patch applied. That's very odd -- I *suspect* your bootloader is up to no good (iirc, we've had issues with the bootloader on this machine in the past, since it enters the kernel in ABT mode or something). > Would be pleased to boot-test anything you'd care to send my way, as long > as you can tolerate response latency jitter. Can you try this quick hack please? It clobbers the I-cache as soon as we enter the kernel, so it should tell us whether my theory is correct. Cheers, Will --->8 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 9cf6063..d74c64c 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -83,6 +83,9 @@ ENTRY(stext) THUMB( .thumb ) @ switch to Thumb now. THUMB(1: ) + mov r9, #0 + mcr p15, 0, r9, c7, c5, 0 + #ifdef CONFIG_ARM_VIRT_EXT bl __hyp_stub_install #endif -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html