<div><includetail><div>Are you&nbsp; Alessandro Rubini of LINUX DEVICE DRIVER?<br><br></div><div style="color: rgb(0, 0, 0);"><div style="padding: 2px 0pt; font-size: 12px; font-family: Arial Narrow;">------------------&nbsp;Original&nbsp;------------------</div><div style="font-size: 12px;"><div id="menu_sender"><b>From: </b>&nbsp;"Alessandro Rubini"&lt;rubini-list@gnudd.com&gt;;</div><div><b>Date: </b>&nbsp;Tue, Jan 19, 2010 04:21 PM</div><div><b>To: </b>&nbsp;"914059751"&lt;914059751@qq.com&gt;; </div><div><b>Cc: </b>&nbsp;"linux-arm-kernel"&lt;linux-arm-kernel@lists.infradead.org&gt;; </div><div><b>Subject: </b>&nbsp;Re: Query about loops_per_jiffy</div></div><div>&nbsp;</div>
&gt; (loops_per_jiffy * HZ)/1000,000&nbsp;&nbsp; will give a BogoMips value.<br><br>No, it will give a BogoLips (loops per second). A loop is two instructions,<br>in ./arch/arm/lib/delay.S (function __delay) called by init/calibrate.c .<br>To have bogomips you need to multiply by two.<br><br>&gt; then why calibrate_delay do it like the following:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; printk(KERN_CONT "%lu.%02lu BogoMIPS (lpj=%lu)\n",<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loops_per_jiffy/(500000/HZ),<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (loops_per_jiffy/(5000/HZ)) % 100, loops_per_jiffy);<br><br>It's correct, using normal integer aritmetics care.<br><br>/alessandro<br></div></includetail></div>