[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