Hi all,

I have performance problems with applications on this kernel(uClinux 2.6.25-uc0).
First of all, I have custom made board with this features:
ColdFire 5274 @ 150 MHz
External Bus Frequency 75 MHz

uClinux 2.6.25 boot up and work perfectly stable, but very slow. For this board i have also 2.4.x kernel compiled, and it works more faster ( ~ 2-20 times faster, if different test application). After reading maillist, i find, that some people have equals problems, and their reason were - disabled cache. But in my case, cache enabled in start process normally.
Calibration delay calculate good value:
Calibrating delay loop... 98.71 BogoMIPS (lpj=493568)

Also, if i disabled cache in /include/asm-m68knommu/mcfcache.h, i got looks-like normal, with disabled cache, value:
Calibrating delay loop... 5.82 BogoMIPS
So, I have drawn a conclusion, that cache enables good.

Now, about performance. I test it with some applications.
1. Dhrystone test. With it, i have 4065 dhrystones/second, that critically small for this CPU. But i curious, that, when a disabled cache, the result same.. As though like cache at just flushed or worked incorrect. 2. Simple forever cycle with 1 value in memory incremented. This test, also show near ~5 real MISP performance. When i try to watch assess to external memory by CPU, i saw, that, it work with external RAM(where this application contain) everytime - but i think that, simple application with 5 command + 1 value memory must being in cache, and CPU must work with cache only. 3. Some real/work application. They do massive processing/moving data, working with peripheral, etc. I also have quite bad performance. Those applications runs at 2.4.x kernel at ~4 times faster.

So, conclusion with it.
1) I think, that i can't have problems with hardware - because, 2.4.x kernel work fast. 2) I have enabled cache at start process - 98 BogoMIPS good value for my CPU, also 2.4 kernel calculate same result.

Now i have question, maybe somebody have same problems at this kernel?
Maybe 2.6.xx so slow, and ways to speed up it use old kernel or modern/faster CPU?Maybe some bugs in poring it to ColdFire family?Etc? Maybe it problem with cache at working process? Some drivers, for example, can flush cache..anyone have equal problem? About it, i will check it with kernel build for 5275EVB, but i think, that result will be same, because, a removed all i can drivers/modules form kernel, that almost "empty" kernel starts, and after it i run Dhrystone test, and get same result. Maybe it's a toolchain problem? I use m68k-uclinux-tools-20061214.sh, they have some minor problems, maybe reason with they? But, my second test with simple application excludes this variant.

If someone had those problems I will be glad for any help.

And my kernel messages at result:

/> cat /proc/kmsg <5>Linux version 2.6.25-uc0 (wa...@arch) (gcc version 4.1.1) #36 Mon Jan 5 13:05:16 PST 9 <6> <4> <4>uClinux/COLDFIRE(m5274/5275) <6>COLDFIRE port done by Greg Ungerer, g...@snapgear.com <6>Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne <7>On node 0 totalpages: 8192 <7> DMA zone: 0 pages used for memmap <7> Normal zone: 64 pages used for memmap <7> Normal zone: 8128 pages, LIFO batch:0 <7> Movable zone: 0 pages used for memmap <4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 <5>Kernel command line: <6>Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) <6>Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) <6>Memory available: 29264k/32768k RAM, (1504k kernel code, 243k data) <7>Calibrating delay loop... 98.71 BogoMIPS (lpj=493568) <4>Mount-cache hash table entries: 512 <6>net_namespace: 144 bytes <6>NET: Registered protocol family 16 <6>NET: Registered protocol family 2 <6>IP route cache hash table entries: 1024 (order: 0, 4096 bytes) <6>TCP established hash table entries: 1024 (order: 1, 8192 bytes) <6>TCP bind hash table entries: 1024 (order: 0, 4096 bytes) <6>TCP: Hash tables configured (established 1024 bind 1024) <6>TCP reno registered <6>Installing knfsd (copyright (C) 1996 o...@monad.swb.de). <6>JFFS2 version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc. <6>io scheduler noop registered <6>io scheduler cfq registered (default) <4>ColdFire internal UART serial driver <6>ttyS0 at MMIO 0x40000200 (irq = 77) is a ColdFire UART <6>console [ttyS0] enabled <6>ttyS1 at MMIO 0x40000240 (irq = 78) is a ColdFire UART <6>ttyS2 at MMIO 0x40000280 (irq = 79) is a ColdFire UART <6>brd: module loaded <4>FEC ENET Version 0.2 <4>fec: PHY @ 0x1, ID 0x20005c90 -- DP83848 <4>eth0: ethernet 00:04:24:23:34:44 <4>uclinux[mtd]: RAM probe address=0x1d50f4 size=0x14d000 <5>Creating 1 MTD partitions on "RAM": <5>0x00000000-0x0014d000 : "ROMfs" <4>uclinux[mtd]: set ROMfs to be root filesystem <6>Physically mapped flash: Found 1 x16 devices at 0x0 in 16-bit bank <4> Intel/Sharp Extended Query Table at 0x010A <4> Intel/Sharp Extended Query Table at 0x010A <4> Intel/Sharp Extended Query Table at 0x010A <4> Intel/Sharp Extended Query Table at 0x010A <4> Intel/Sharp Extended Query Table at 0x010A <6>Using buffer write method <6>Using auto-unlock on power-up/resume <5>cfi_cmdset_0001: Erase suspend on write enabled <7>erase region 0: offset=0x0,size=0x8000,blocks=4 <7>erase region 1: offset=0x20000,size=0x20000,blocks=63 <6>TCP cubic registered <6>NET: Registered protocol family 1 <6>RPC: Registered udp transport module. <6>RPC: Registered tcp transport module. <6>NET: Registered protocol family 33 <4>VFS: Mounted root (romfs filesystem) readonly. <5>Freeing unused kernel memory: 52k freed (0x1a7000 - 0x1b3000) <4>eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.

--
Best regards,
Alexander Eremeenkov.
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to