Driver or hardware issues? Low performance of OMAP processor


I am trying/benchmarking some tasks on the beagle board to evaluate the use of the board in different projects. I am running the latest 2.6.29 kernel from git with a custom Angstrom image.

Up to now, the results are disappointing. As the OMAP lacks fast interfaces ( eg. IDE/SATA ), I would need to use the SD/MMC and USB interfaces. I only have the RevB Beagle right now, so I am using the OTG port for USB testing. My projects involve capturing images from an USB camera, displaying a live image and/or writing the images to some permanent storage.

First try to measure the USB speed was to connect a USB hard-disk and do:

dd if=/dev/zero of=/media/sda1/zero bs=128000 count=4000

This gives at least 20MB/sec on even slow PCs but on the Beagle I only get about 6-8MB/sec. Read is a bit better but still slow at about 15MB/sec.

Then I tried to use an USB camera ( using unicap / UCView ). The cameras are UVC compliant ones using the uvcvideo driver. The only camera I was able to get to run was a Logitech QuickCam Pro at a resolution of 320x240 @ ~5FPS. Any higher resolution did not provide an image - probably the driver was not even able to start the device. Other cameras I tried did not work at all - and the program hang when I tried to lower the frame rate ( USB errors? ).

Finally I benchmarked the SDIO interface to see if I could use that for mass storage. Again I used:

dd if=/dev/zero of-/media/mmcblk0p2/zero bs=128000 count=4000

which gave about 8 MB/sec but used 100% CPU time. The same card could be written to @ 15 MB/sec on a desktop machine. As the write uses 100% cpu time, it would not beusable as a mass storage in my projects :frowning:

I would be very happy if anybody could answer one or more of these questions:

Is the low USB performance due to immature and inefficient drivers or is it an issue of the MUSB core?
Can I expect more performance from the USB host port - probably the full USB performance?
Is the high CPU utilization of the SDIO operation due to inefficient drivers or due to a hardware limitation?



Arne, you may want to stay with 2.6.28 for a little bit longer:

voodoo@debian-armel:~$ cat /proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 568.23
Features : swp half thumb fastmult vfp edsp
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc08
CPU revision : 2

Hardware : OMAP3 Beagle Board
Revision : 0020
Serial : 0000000000000000

voodoo@debian-armel:~$ dd if=/dev/zero of=/mnt/drive/chroot/zero.txt
bs=128000 count=4000
4000+0 records in
4000+0 records out
512000000 bytes (512 MB) copied, 30.0532 s, 17.0 MB/s

Bus 002 Device 003: ID 1058:0901 Western Digital Technologies, Inc.
MyBook External HDD