Hi Greg, It is any possible to get earliest sources which implements D&I cache enabled?It was be on 2.4.x kernel?
I try to do minor patch for adding split cache support, but kernel don't start. Change in mcfcache.h: "movel #0x80400100, %%d0\n\t" to "movel #0x80000100, %%d0\n\t" /* Split cache enable */ Change in cacheflush.h: "movel #0x81400100, %%d0\n\t" to "movel #0x81000100, %%d0\n\t" /* Invalidate D&I cache */ Also add support to flush_icache_range & flush_dcache_range that invalidates needed parts of cache. I think that kernel don't want to start during incomplete implementation of flush_* functions. Or it's a additional place where need to patch? Or i do something wrong? 2009/1/12 Greg Ungerer <g...@snapgear.com> > > Hi Alex, > > Alex Eremeenkov wrote: > >> Thanks a lot. Problem were with cache flushing, how you say. >> But i have one more question. It is able to add support of split >> D-cache&I-cache by enbling it in mcfcache.h and writing additional functions >> for flushing each cache region (add support for functions __flush_icache_all >> and __flush_dcache_all)? Or for enable D-cache it need some serious patch to >> kernel? >> > > Its possible to do. It has been on my todo list for a while. > A long time back it broke things like te FEC ethernet driver > (which needs proper fixing). > > Regards > Greg > > > > 2008/10/5 Greg Ungerer <g...@snapgear.com <mailto:g...@snapgear.com>> >> >> Hi Alexander, >> >> >> Alexander Eremeenkov wrote: >> >> 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? >> >> >> There is no reason that application code performance (independant of >> use of kernel system calls) should give noticably different results >> on a 2.6 kernel vs a 2.4 kernel. >> >> >> >> 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. >> >> >> I recall a problem a little while back where the cache flush code >> was changing the cache configuration and not just flushing. (I think >> it was the 5282 cache support code that was broken). In this scenario >> the initial cache setup was good (so everything was fast), and after >> the first cache flush the setup was wrong. Now that would make >> something >> like the bogomips calculation look good, but later performance bad >> >> Looking at the 2 places this is done: >> >> linux-2.6.x/include/asm-m68knommu/mcfcache.h >> linux-2.6.x/include/asm-m68knommu/cacheflush.h >> >> I suspect this may have broken the cache support for the 527x >> series (so the 5270/5271 and 5274/5275). >> >> To verify if this is what you are seeing, can you change the cache >> flush code for CONFIG_M527x in cacheflush.h from: >> >> "movel #0x81000200, %%d0\n\t" >> >> to >> >> "movel #0x81400100, %%d0\n\t" >> >> This is just to prove this is the problem. A real fix would >> need the 528x and 527x cache flushing code separated out. >> >> Regards >> Greg >> >> >> >> >> 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 >> <mailto: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 <mailto: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. >> >> >> >> >> >> -- >> ------------------------------------------------------------------------ >> Greg Ungerer -- Principal Engineer EMAIL: >> g...@snapgear.com <mailto:g...@snapgear.com> >> SnapGear, a McAfee Company PHONE: +61 7 3435 >> 2888 >> 825 Stanley St, FAX: +61 7 3891 >> 3630 >> Woolloongabba, QLD, 4102, Australia WEB: >> http://www.SnapGear.com >> _______________________________________________ >> uClinux-dev mailing list >> uClinux-dev@uclinux.org <mailto:uClinux-dev@uclinux.org> >> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev >> This message was resent by uclinux-dev@uclinux.org >> <mailto:uclinux-dev@uclinux.org> >> To unsubscribe see: >> http://mailman.uclinux.org/mailman/options/uclinux-dev >> >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> 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 >> > > > -- > ------------------------------------------------------------------------ > Greg Ungerer -- Principal Engineer EMAIL: g...@snapgear.com > SnapGear, a McAfee Company PHONE: +61 7 3435 2888 > 825 Stanley St, FAX: +61 7 3891 3630 > Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com > _______________________________________________ > 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 >
_______________________________________________ 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