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