ARM11MPcore: tlb_ops_need_broadcast causes deadlock

Peter Waechtler pwaechtler at mac.com
Sun Mar 25 08:08:47 EDT 2012


Will Deacon <will.deacon <at> arm.com> writes:

> 
> > The cpuB executes some user code hitting that page and because the PTE
> > is marked "inaccessible", so that the attempt can be stored, it results
> > in a page fault.
> 
> Shouldn't this trigger a prefetch abort rather than a data abort?
> 

Yes, I think the abort part is not completely understood yet.

So it's a data abort, some code referenced a page resulting in a dabrt_usr.
Then the abort handler tries to read the instruction and gets another dabrt.

That would mean that the code page was marked as inaccessible in the
mean time.
Now how could that happen? Probably on the other cpu?

Weird stuff.

But Will, is that tlb_flush necessary at all? The ARM has only 3 permission
bits in the page table (APX and AP0 and AP1). The young/accessed bit is done
via software.


    Peter







More information about the linux-arm-kernel mailing list