linux内核从3.4切换到3.10后,BogoMIPS值比3.4下的小了一半。
虽然BogoMIPS没有多大意思,但是如果让客户发现差别也不好解释。
中间也比较了两边所用的delay的区别。最终发现原因是对齐的问题。
3.4的delay位于arch/arm/lib/delay.S
3.10的delay位于arch/arm/lib/delay-loop.S
3.4
Calibrating delay loop... 2383.87 BogoMIPS (lpj=1191936)
c02d4090 <__delay>:
c02d4090: e2500001 subs r0, r0, #1
c02d4094: 8afffffd bhi c02d4090 <__delay>
c02d4098: e1a0f00e mov pc, lr
3.10 初始
Calibrating delay loop... 1191.93 BogoMIPS (lpj=595968)
c02cf32c<__loop_delay>:
c02cf32c: e2500001 subs r0, r0, #1
c02cf330: 8afffffd
虽然BogoMIPS没有多大意思,但是如果让客户发现差别也不好解释。
中间也比较了两边所用的delay的区别。最终发现原因是对齐的问题。
3.4的delay位于arch/arm/lib/delay.S
3.10的delay位于arch/arm/lib/delay-loop.S
3.4
Calibrating delay loop... 2383.87 BogoMIPS (lpj=1191936)
c02d4090 <__delay>:
c02d4090: e2500001 subs r0, r0, #1
c02d4094: 8afffffd bhi c02d4090 <__delay>
c02d4098: e1a0f00e mov pc, lr
3.10 初始
Calibrating delay loop... 1191.93 BogoMIPS (lpj=595968)
c02cf32c<__loop_delay>:
c02cf32c: e2500001 subs r0, r0, #1
c02cf330: 8afffffd