[PATCH, ARM] Low interrupt latency support (avoiding ldm/stm)

Paul Brook paul@codesourcery.com
Tue May 18 10:53:00 GMT 2010


> Paul Brook wrote:
> >> I'm fairly sure that LDM and STM are uninterruptible instructions on
> >> most/all current cores, both ARM's own and those from third parties.  An
> >> instruction like "stmia r0, {r0-r15}" will take at least 16 cycles on
> >> most processors and interrupts are locked out for the duration.
> > 
> > It appears the feature I was thinking of[1] was only standardised in
> > ARMv6, and may not be present on earlier cores. It's definitely present
> > on arm11 and cortex-a8/r4/m3 based cores.
> 
> OK, so Paul, where does that leave us?  If Phil is right that this is in
> fact pretty universal (and not unique to Marvell Feroceon for which this
> patch was originally developed, IIRC), do you still object to it going
> in?  (I have no opinion the name; if you prefer -mavoid-ldm, that seems
> OK, though of course it also applies to STM.)

I think the documentation needs improving. i.e. explain when it should be used 
and, more importantly, when it provides no benefit (Cortex-M[34], most armv6+ 
cores in low latency mode). Other than that it looks ok.  I don't care enough 
to argue about the name.

Paul



More information about the Gcc-patches mailing list