All of lore.kernel.org
 help / color / mirror / Atom feed
* poor performance of OpenEmbedded on BeagleBoneBlack compared to Debian
@ 2014-09-04  1:59 Peter A. Bigot
  2014-09-04  2:46 ` Robert Nelson
  2014-09-04  5:39 ` Khem Raj
  0 siblings, 2 replies; 22+ messages in thread
From: Peter A. Bigot @ 2014-09-04  1:59 UTC (permalink / raw)
  To: meta-ti@yoctoproject.org

I've been trying to figure out why OpenEmbedded on beaglebone is three 
times slower than Debian on the ray-tracing application described at:

http://scruss.com/blog/2013/09/23/beaglebone-black-slow-as-a-dog/

Part of it is due to meta-yocto-bsp's beaglebone config not enabling CPU 
frequency control (CONFIG_GENERIC_CPUFREQ_CPU0, 
CONFIG_VOLTAGE_DOMAIN_OMAP, and some THERMAL options).  That can be 
fixed for linux-yocto, and isn't an issue with linux-ti-staging, but it 
doesn't eliminate the discrepancies.

With debian, the sample program described in that blog posting runs this 
fast:

   debian@beaglebone:~$ g++ -Ofast -mfloat-abi=hard -o card card.cpp
   debian@beaglebone:~$ time ./card > /dev/null
   real    4m54.846s
   user    4m54.627s
   sys     0m0.057s

With poky master + meta-ti it runs this fast:

   root@beaglebone:~# time ./card > /dev/null
   real    9m37.901s
   user    9m37.200s
   sys     0m0.150s

Still nearly twice as slow.  (With linux-yocto and the default kernel 
configuration it's up around 14m.)

One anomaly I've found is the CPU frequency range.  On debian we have:

   debian@beaglebone:~$ cat 
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
   300000 600000 800000 1000000

while on OE we have:

   root@beaglebone:~# cat 
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
   300000 600000 720000 800000

So OE isn't allowing the BeagleBoneBlack to run at its maximum speed.  
This isn't enough to explain a nearly 2x performance difference, but 
it's an issue I want resolved.

I've been unable to trace back where these frequencies come from. Could 
somebody tell me what configures the available frequencies for the 
AM335x in linux-ti-staging?

And if anybody has suggestions of where else to look for an explanation, 
I'd appreciate it.  I've tried all the gcc flags I can think of 
(-mcpu=cortex-a8, -mfpu=neon, -mfloat-abi=hard, etc), though I'm going 
to keep poking at it because I still suspect the problem is there.

Thanks.

Peter



^ permalink raw reply	[flat|nested] 22+ messages in thread
* Re: poor performance of OpenEmbedded on, BeagleBoneBlack compared to Debian
@ 2014-09-04 14:50 Mikhail Zakharov
  2014-09-04 15:00 ` Denys Dmytriyenko
  0 siblings, 1 reply; 22+ messages in thread
From: Mikhail Zakharov @ 2014-09-04 14:50 UTC (permalink / raw)
  To: pab@pabigot.com; +Cc: meta-ti@yoctoproject.org

On Wed, Sep 3, 2014 at 8:59 PM, Peter A. Bigot <pab@pabigot.com> wrote:

> One anomaly I've found is the CPU frequency range.  On debian we have:
>
>    debian@beaglebone:~$ cat 
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
>    300000 600000 800000 1000000
>
> while on OE we have:
>
>    root@beaglebone:~# cat 
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
>    300000 600000 720000 800000

Stock yocto-bsp is missing a few things that can be found in Robert
Nelson's patchset for 3.14 linux kernel.

You can find a fix in the following overlay:
https://github.com/mzakharo/meta-yocto-bone

The patches you are looking for are here:
https://github.com/mzakharo/meta-yocto-bone/blob/master/recipes-kernel/linux/files/dts/0002-arm-dts-am335x-boneblack-add-cpu0-opp-points.patch
https://github.com/mzakharo/meta-yocto-bone/blob/master/recipes-kernel/linux/files/misc/cpufreq.cfg


There are lots of other functionality that is missing from yocto-bsp 
kernel for Beaglebone. I suggest you take at the following repos and
scavenge for what you need :P
https://github.com/RobertBerger/meta-mainline/tree/daisy-training-v3.14.x/beagle-bone-black-ml/recipes-kernel/linux/linux-yocto-custom/patches
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.14/patches
https://github.com/RobertCNelson/ti-linux-kernel-dev/tree/ti-linux-3.14.y/patches





^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2014-09-04 19:49 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-04  1:59 poor performance of OpenEmbedded on BeagleBoneBlack compared to Debian Peter A. Bigot
2014-09-04  2:46 ` Robert Nelson
2014-09-04 10:46   ` Peter A. Bigot
2014-09-04  5:39 ` Khem Raj
2014-09-04 10:55   ` Peter A. Bigot
2014-09-04 12:33     ` Dmytriyenko, Denys
  -- strict thread matches above, loose matches on Subject: below --
2014-09-04 14:50 poor performance of OpenEmbedded on, " Mikhail Zakharov
2014-09-04 15:00 ` Denys Dmytriyenko
2014-09-04 15:37   ` Peter A. Bigot
2014-09-04 15:41     ` Peter A. Bigot
2014-09-04 17:50       ` Peter A. Bigot
2014-09-04 15:48     ` Denys Dmytriyenko
2014-09-04 15:55       ` Robert Nelson
2014-09-04 18:10         ` Denys Dmytriyenko
2014-09-04 19:03           ` Robert Nelson
2014-09-04 19:09             ` Denys Dmytriyenko
2014-09-04 19:04           ` Peter A. Bigot
2014-09-04 19:07             ` Robert Nelson
2014-09-04 19:09               ` Robert Nelson
2014-09-04 19:41                 ` Denys Dmytriyenko
2014-09-04 15:55       ` Peter A. Bigot
2014-09-04 19:48         ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.