ARM11 MPCore: Adding nop to __delay() doubles the BogoMIPS/lpj

Leif Lindholm leif.lindholm at
Fri Jan 29 07:17:18 EST 2010

> -----Original Message-----
> From: linux-arm-kernel-bounces at [mailto:linux-arm-
> kernel-bounces at] On Behalf Of Dirk Behme
> Sent: 27 January 2010 16:45

> On a 400MHz ARM11 MPCore system (NEC NaviEngine based) with kernel
> 2.6.32 we found that BogoMIPS/loops per jiffies ~doubles (see below
> [1]) by adding a nop to __delay():

The reason for this is that the ARM11 MPCore doesn't fold branch
instructions for busy-wait-style loops. Inserting the nop (or any other
non-branch instruction) removes the branch instruction from the
execution stream.

But as Catalin says, this makes no functional difference, even though it
might look "more impressive" :)


More information about the linux-arm-kernel mailing list