Hi Dave,

Dave Meador wrote:
Greg Ungerer wrote:
Dave Meador wrote:
I am stuck on a bug at bootup in kmem_cache_init(). Trying to tweak the uClinux-20080808 w/ 20090312 patch to boot on a 547x coldfire board. Upon attempt to "Init caches for array cache kmem_list3" the kernel panics upon running check_slabp() with the following error: slab: Internal list corruption detected in cache 'kmem_cache'(27), slabp 01c00000(0). Hexdump:...

I ran into a similar bug when using slub allocator, so I switched to slab and still get a crash in kmem_cache_init. Any help to resolve this would be greatly appreciated. Does anyone have any ideas on why I would be running into Internal list corruption?

Thanks,
-Dave

uClinux boot output:
---------------------snip---------------------snip---------------------snip---------------------snip--------------------- Linux version 2.6.26-uc0-svn29-dirty17 (x...@yyy) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-45) ) #60 Thu Apr 16 15:09:49 PDT 2009 uClinux/COLDFIRE(m547x)
                     ^^^^^
I am a little confused by this. There is no native 547x support in
the linux-2.6.x kernels in uClinux-dist-20080808 and later. They
won't report an m527x CPU type here...

Have you made changes to the code here?

(Note that the linux-2.4.x kernels in those source packages did
have native 547x support).


COLDFIRE port done by Greg Ungerer, g...@snapgear.com
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
KERNEL -> TEXT=0x002000-0x135bac DATA=0x135bac-0x143000
                 ^^^^^^^^
That seems like an unusually low address to start at on a
ColdFire dev board. Are you sure that is right?

(Most of the Freescale dev board start at offset 0x20000 into
RAM, some older ones at 0x10000 offset).

Maybe I need to take a step back :-)
Is this a Freescale dev board, or something else?
Yes, it is a Freescale dev board... I did change the address in the vmlinux.ld from 0x20000 to 0x2000. My loader is placed near the end of ram and then jumps to the kernel start address. Correct me if I am wrong, but I think that once the jump to kernel start occurs, the memory that the loader occupies can be reused.

Yep, that is right. It is safe to use that memory after starting the
kernel proper.


I was trying to conserve ram. But that is the least of my worries at the moment. Sorry for the unaligned log listing... something went wrong with my cut-n-paste.

:-)

The biggest problem I see in the linux-2.6.x code is that it doesn't
have the native 547x code that the linux-2.4.x code had...

Anyway, for this type of memory setup/init problems the most usual
cause I have seen is bad processor cache setup. Do you have the
processor cache enabled?

Regards
Greg




BSS=0x152000-0x15d070
start_mem is 0xf84000 virtual_end is 0x2000000 before free_area_init free_area_init -> start_mem is 0xf84000 virtual_end is 0x2000000 On node 0 totalpages: 8192 DMA zone: 64 pages used for memmap DMA zone: 0 pages reserved DMA zone: 8128 pages, LIFO batch:0 Normal zone: 0 pages used for memmap Movable zone: 0 pages used for memmap Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 Kernel command line: console=ttyS0,19200 debug PID hash table entries: 128 (order: 7, 512 bytes) console [ttyS0] enabled Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
mem_init()
Mem_init: start=f84000, end=2000000
Mem_init: enter start=f84000, end=2000000
Mem_init: free_bootmem
Mem_init: free_all_bootmem
free_all_bootmem_core( pgdat = 0x13beb8 )
free_all_bootmem_core: __free_pages_bootmem( pages... )
Mem_init: free_all_bootmem done
Mem_init: nr_free_pages() = 16982016
Memory available: 16584k/32768k RAM, (1230k kernel code, 157k data)
kmem_cache_init()
kmem_cache_init: kmem_list3_init
kmem_cache_init: set_up_list3s
kmem_cache_init: set_up_list3s done
kmem_cache_init: cache_estimate
kmem_cache_init: cache_estimate done
kmem_cache_init: Init caches for array cache kmem_list3
slab: Internal list corruption detected in cache 'kmem_cache'(27), slabp 01c00000(0). Hexdump:

000: 00 15 0b 1a 00 15 0b 1a 00 00 00 00 00 00 00 00
010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080: 00 00 00 00 00 00
BUG: failure at mm/slab.c:2997/check_slabp()!
Kernel panic - not syncing: BUG!
---------------------snip---------------------snip---------------------snip---------------------snip---------------------

_______________________________________________
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


--
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     g...@snapgear.com
SnapGear Group, McAfee                      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

Reply via email to