[Barrelfish-users] About CPU performance

Simon Peter speter at inf.ethz.ch
Sat Feb 7 20:51:58 CET 2015

What I mean is that in order to measure performance in terms of 
execution time (as I can glance from your previous email that had 
results in it), you first need a notion of time. Barrelfish's notion of 
time is off on QEMU. Hence, you might be seeing wrong results.

We have compared Barrelfish to Linux performance on bare-metal hardware 
in various papers, such as our SOSP paper.

On 02/06/2015 07:02 PM, tomsun.0.7 wrote:
> I don't actually care about the measure of CPU speed, I want to know why
> Barrelfish performs worse on bare-metal than on QEMU with KVM.
> As my second reply demonstrated, I got worse performance while running
> applications on bare-metal than both QEMU with KVM and native Linux.
> I made sure that it doesn't result from CPU frequency, because I
> accessed the hardware performance registers directly within kernel and
> found it did run with full speed.
> Now, I'm suspecting that is it possible that the performance is
> influenced by some other factors like, device interrupts?
> Have you ever measured the performance of Barrelfish and compared it
> with Linux or other operating system?
> On Sat, Feb 7, 2015 at 3:47 AM, Simon Peter <speter at inf.ethz.ch
> <mailto:speter at inf.ethz.ch>> wrote:
>     I'm also suspecting that it might just be jittery CPU emulation
>     speed that's getting you different results. Barrelfish's usleep
>     ultimately uses sys_debug_get_tsc_per_ms, so your 2 ways might
>     actually be the same. Barrelfish measures CPU speed at bootup, but
>     it's very bad at figuring it out correctly on QEMU. I'm not sure
>     what the best way is to get accurate results on QEMU.
>     On 15-02-04 09:46 PM, tomsun.0.7 wrote:
>>     Hi,
>>     I started a network application who is dedicated to produce
>>     packets all the time. However, when I started it on bare-metal, I
>>     found the throughput is only a half of running in QEMU (of course,
>>     with KVM enabled).
>>     This application is only CPU-intensive, it just produces a lot of
>>     packets and then destroys them. So it's none of the devices'
>>     business. At first, I think it results from the low frequency of
>>     cores, so I measured this by two ways: 1. invoking native
>>     Barrelfish interface, sys_debug_get_tsc_per_ms, directly; 2.
>>     reading tsc and sleeping for 1 second using POSIX sleep (which is
>>     implemented by invoking Barrelfish's usleep as I know). However, I
>>     got the full-speed results under both conditions.
>>     So, I don't know whether it results from incorrect measure of
>>     frequency or some other CPU problems because I even tried to start
>>     it with PXE in QEMU, and got full performance.
>>     What can I do to get normal performance on bare-metal? Or, if it
>>     results from low frequency of CPUs, what can I do to tune up the
>>     frequency?
>>     Tom
>>     _______________________________________________
>>     Barrelfish-users mailing list
>>     Barrelfish-users at lists.inf.ethz.ch  <mailto:Barrelfish-users at lists.inf.ethz.ch>
>>     https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users

More information about the Barrelfish-users mailing list