<div dir="ltr">I made some progress on this problem.<br><div><br></div><div>It seems like the performance on bare-metal is exactly a half of running on QEMU even I wrote another application which calculated Fibonacci sequence. But when I <b>turned off hyper-threading</b> in BIOS, and got better performance. However it is still worse than the performance in QEMU. The detailed performance and platform information is here:</div><div><br></div><div>CPU: Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz</div><div><br></div><div>QEMU execution time:           5509153 us</div><div>Bare-metal execution time: 10802345 us</div><div>w/o hyper-threading:              6065235 us</div><div><br></div><div>code:</div><div><blockquote>#include &lt;stdio.h&gt;<br>#include &lt;sys/time.h&gt;<br>long fib(long a, long b, long depth)<br>{<br>    if (depth &gt; 0) {<br>        return fib(b, a + b, depth - 1);<br>    }<br>    return b;<br>}<br>int main(void)<br>{<br>    struct timeval start;<br>    gettimeofday(&amp;start, NULL);<br>    printf(&quot;fib: %ld\n&quot;, fib(1, 1, 10000000000));<br>    struct timeval end;<br>    gettimeofday(&amp;end, NULL);<br>    printf(&quot;time: %ld us\n&quot;, end.tv_usec - start.tv_usec + (end.tv_sec - start.tv_sec) * 10000\00);<br>    return 0;<br>}</blockquote></div><div>So, is it possible that Barrelfish missed some necessary configurations to initialize CPUs?</div></div>